text: Input::
  //// [/a/lib/lib.d.ts]
  /// <reference no-default-lib="true"/>
  interface Boolean {}
  interface Function {}
  interface CallableFunction {}
  interface NewableFunction {}
  interface IArguments {}
  interface Number { toExponential: any; }
  interface Object {}
  interface RegExp {}
  interface String { charAt: any; }
  interface Array<T> { length: number; [n: number]: T; }
  
  //// [/a/b/commonFile1.ts]
  let x = 1
  
  //// [/a/b/commonFile2.ts]
  let y = 1
  
  //// [/a/b/tsconfig.json]
  {}
  
  
  /a/lib/tsc.js -w -p /a/b/tsconfig.json
  Output::
  >> Screen clear
  [[90m12:00:17 AM[0m] Starting compilation in watch mode...
  
  [[90m12:00:22 AM[0m] Found 0 errors. Watching for file changes.
  
  
  
  Program root files: ["/a/b/commonFile1.ts","/a/b/commonFile2.ts"]
  Program options: {"watch":true,"project":"/a/b/tsconfig.json","configFilePath":"/a/b/tsconfig.json"}
  Program structureReused: Not
  Program files::
  /a/lib/lib.d.ts
  /a/b/commonFile1.ts
  /a/b/commonFile2.ts
  
  Semantic diagnostics in builder refreshed for::
  /a/lib/lib.d.ts
  /a/b/commonFile1.ts
  /a/b/commonFile2.ts
  
  WatchedFiles::
  
  FsWatches::
  
  FsWatchesRecursive::
  /a/b/node_modules/@types:
    {"directoryName":"/a/b/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
  /a/b:
    {"directoryName":"/a/b","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
  
  exitCode:: ExitStatus.undefined
  
  //// [/a/b/commonFile1.js]
  var x = 1;
  
  
  //// [/a/b/commonFile2.js]
  var y = 1;
  
  
  
  Change:: Make change to file but should detect as changed and schedule program update
  
  Input::
  //// [/a/b/commonFile1.ts]
  var zz30 = 100;
  
  
  Output::
  
  WatchedFiles::
  
  FsWatches::
  
  FsWatchesRecursive::
  /a/b/node_modules/@types:
    {"directoryName":"/a/b/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
  /a/b:
    {"directoryName":"/a/b","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
  
  exitCode:: ExitStatus.undefined
  
  
  Change:: Callbacks: queue and scheduled program update
  
  Input::
  
  Output::
  >> Screen clear
  [[90m12:00:26 AM[0m] File change detected. Starting incremental compilation...
  
  [[90m12:00:33 AM[0m] Found 0 errors. Watching for file changes.
  
  
  
  Program root files: ["/a/b/commonFile1.ts","/a/b/commonFile2.ts"]
  Program options: {"watch":true,"project":"/a/b/tsconfig.json","configFilePath":"/a/b/tsconfig.json"}
  Program structureReused: Completely
  Program files::
  /a/lib/lib.d.ts
  /a/b/commonFile1.ts
  /a/b/commonFile2.ts
  
  Semantic diagnostics in builder refreshed for::
  /a/lib/lib.d.ts
  /a/b/commonFile1.ts
  /a/b/commonFile2.ts
  
  WatchedFiles::
  
  FsWatches::
  
  FsWatchesRecursive::
  /a/b/node_modules/@types:
    {"directoryName":"/a/b/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
  /a/b:
    {"directoryName":"/a/b","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
  
  exitCode:: ExitStatus.undefined
  
  //// [/a/b/commonFile1.js]
  var zz30 = 100;
  
  
  //// [/a/b/commonFile2.js] file written with same contents
  