hunk.code_window:         // to be properly resolved.
           this._program = ts.createProgram(
             this._rootFilePath, this._compilerOptions, this._compilerHost, this._program);
         })
         .then(() => {
           if (this._typeCheck) {
             const diagnostics = this._program.getGlobalDiagnostics();
  
hunk.labels: keep keep keep add keep keep keep
hunk.after_edit:       .then(() => {
           // Re-diagnose changed files.
           const changedFilePaths = this._compilerHost.getChangedFilePaths();
           changedFilePaths.forEach(filePath => this.diagnose(filePath));
         })
  
hunk.file_path: packages/@ngtools/webpack/src/plugin.ts
hunk.type: add
file: import {JsonSchemaErrorBase} from './error';
  import {SchemaNode} from './node';
  export class InvalidStateError extends JsonSchemaErrorBase {}
  
  
  export interface WriterFn {
    (str: string): void;
  }
  
  export abstract class Serializer {
    abstract start(): void;
    abstract end(): void;
  
    abstract object(node: SchemaNode): void;
    abstract property(node: SchemaNode): void;
    abstract array(node: SchemaNode): void;
  
    abstract outputOneOf(node: SchemaNode): void;
    abstract outputEnum(node: SchemaNode): void;
  
    abstract outputString(node: SchemaNode): void;
    abstract outputNumber(node: SchemaNode): void;
    abstract outputBoolean(node: SchemaNode): void;
  
    // Fallback when the value does not have metadata.
    abstract outputValue(node: SchemaNode): void;
  }
  