Project

General

Profile

1
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/program.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AotCompiler, GeneratedFile, NgAnalyzedModules, createAotCompiler, getParseErrors, isSyntaxError, toTypeScript} from '@angular/compiler';\nimport {MetadataCollector, ModuleMetadata} from '@angular/tsc-wrapped';\nimport {writeFileSync} from 'fs';\nimport * as path from 'path';\nimport * as ts from 'typescript';\n\nimport {CompilerHost as AotCompilerHost, CompilerHostContext} from '../compiler_host';\nimport {TypeChecker} from '../diagnostics/check_types';\n\nimport {CompilerHost, CompilerOptions, Diagnostic, DiagnosticCategory, EmitFlags, Program} from './api';\nimport {getAngularEmitterTransformFactory} from './node_emitter_transform';\n\nconst GENERATED_FILES = /\\.ngfactory\\.js$|\\.ngstyle\\.js$|\\.ngsummary\\.js$/;\nconst SUMMARY_JSON_FILES = /\\.ngsummary.json$/;\n\nconst emptyModules: NgAnalyzedModules = {\n  ngModules: [],\n  ngModuleByPipeOrDirective: new Map(),\n  files: []\n};\n\nclass AngularCompilerProgram implements Program {\n  // Initialized in the constructor\n  private oldTsProgram: ts.Program|undefined;\n  private tsProgram: ts.Program;\n  private aotCompilerHost: AotCompilerHost;\n  private compiler: AotCompiler;\n  private srcNames: string[];\n  private collector: MetadataCollector;\n  // Lazily initialized fields\n  private _analyzedModules: NgAnalyzedModules|undefined;\n  private _structuralDiagnostics: Diagnostic[] = [];\n  private _stubs: GeneratedFile[]|undefined;\n  private _stubFiles: string[]|undefined;\n  private _programWithStubsHost: ts.CompilerHost|undefined;\n  private _programWithStubs: ts.Program|undefined;\n  private _generatedFiles: GeneratedFile[]|undefined;\n  private _generatedFileDiagnostics: Diagnostic[]|undefined;\n  private _typeChecker: TypeChecker|undefined;\n  private _semanticDiagnostics: Diagnostic[]|undefined;\n\n  constructor(\n      private rootNames: string[], private options: CompilerOptions, private host: CompilerHost,\n      private oldProgram?: Program) {\n    this.oldTsProgram = oldProgram ? oldProgram.getTsProgram() : undefined;\n\n    this.tsProgram = ts.createProgram(rootNames, options, host, this.oldTsProgram);\n    this.srcNames = this.tsProgram.getSourceFiles().map(sf => sf.fileName);\n    this.aotCompilerHost = new AotCompilerHost(this.tsProgram, options, host);\n    if (host.readResource) {\n      this.aotCompilerHost.loadResource = host.readResource.bind(host);\n    }\n    const {compiler} = createAotCompiler(this.aotCompilerHost, options);\n    this.compiler = compiler;\n    this.collector = new MetadataCollector({quotedNames: true});\n  }\n\n  // Program implementation\n  getTsProgram(): ts.Program { return this.programWithStubs; }\n\n  getTsOptionDiagnostics(cancellationToken?: ts.CancellationToken) {\n    return this.tsProgram.getOptionsDiagnostics(cancellationToken);\n  }\n\n  getNgOptionDiagnostics(cancellationToken?: ts.CancellationToken): Diagnostic[] {\n    return getNgOptionDiagnostics(this.options);\n  }\n\n  getTsSyntacticDiagnostics(sourceFile?: ts.SourceFile, cancellationToken?: ts.CancellationToken):\n      ts.Diagnostic[] {\n    return this.tsProgram.getSyntacticDiagnostics(sourceFile, cancellationToken);\n  }\n\n  getNgStructuralDiagnostics(cancellationToken?: ts.CancellationToken): Diagnostic[] {\n    return this.structuralDiagnostics;\n  }\n\n  getTsSemanticDiagnostics(sourceFile?: ts.SourceFile, cancellationToken?: ts.CancellationToken):\n      ts.Diagnostic[] {\n    return this.programWithStubs.getSemanticDiagnostics(sourceFile, cancellationToken);\n  }\n\n  getNgSemanticDiagnostics(fileName?: string, cancellationToken?: ts.CancellationToken):\n      Diagnostic[] {\n    const compilerDiagnostics = this.generatedFileDiagnostics;\n\n    // If we have diagnostics during the parser phase the type check phase is not meaningful so skip\n    // it.\n    if (compilerDiagnostics && compilerDiagnostics.length) return compilerDiagnostics;\n\n    return this.typeChecker.getDiagnostics(fileName, cancellationToken);\n  }\n\n  loadNgStructureAsync(): Promise<void> {\n    return this.compiler.analyzeModulesAsync(this.rootNames)\n        .catch(this.catchAnalysisError.bind(this))\n        .then(analyzedModules => {\n          if (this._analyzedModules) {\n            throw new Error('Angular structure loaded both synchronously and asynchronsly');\n          }\n          this._analyzedModules = analyzedModules;\n        });\n  }\n\n  getLazyRoutes(cancellationToken?: ts.CancellationToken): {[route: string]: string} { return {}; }\n\n  emit({emitFlags = EmitFlags.Default, cancellationToken}:\n           {emitFlags?: EmitFlags, cancellationToken?: ts.CancellationToken}): ts.EmitResult {\n    const emitMap = new Map<string, string>();\n    const result = this.programWithStubs.emit(\n        /* targetSourceFile */ undefined,\n        createWriteFileCallback(emitFlags, this.host, this.collector, this.options, emitMap),\n        cancellationToken, (emitFlags & (EmitFlags.DTS | EmitFlags.JS)) == EmitFlags.DTS, {\n          after: this.options.skipTemplateCodegen ? [] : [getAngularEmitterTransformFactory(\n                                                             this.generatedFiles)]\n        });\n\n    this.generatedFiles.forEach(file => {\n      if (file.source && file.source.length && SUMMARY_JSON_FILES.test(file.genFileUrl)) {\n        // If we have emitted the ngsummary.ts file, ensure the ngsummary.json file is emitted to\n        // the same location.\n        const emittedFile = emitMap.get(file.srcFileUrl);\n        const fileName = emittedFile ?\n            path.join(path.dirname(emittedFile), path.basename(file.genFileUrl)) :\n            file.genFileUrl;\n        this.host.writeFile(fileName, file.source, false, error => {});\n      }\n    });\n    return result;\n  }\n\n  // Private members\n  private get analyzedModules(): NgAnalyzedModules {\n    return this._analyzedModules || (this._analyzedModules = this.analyzeModules());\n  }\n\n  private get structuralDiagnostics(): Diagnostic[] {\n    return this.analyzedModules && this._structuralDiagnostics;\n  }\n\n  private get stubs(): GeneratedFile[] {\n    return this._stubs || (this._stubs = this.generateStubs());\n  }\n\n  private get stubFiles(): string[] {\n    return this._stubFiles ||\n        (this._stubFiles = this.stubs.reduce((files: string[], generatedFile) => {\n             if (generatedFile.source || (generatedFile.stmts && generatedFile.stmts.length)) {\n               return [...files, generatedFile.genFileUrl];\n             }\n             return files;\n           }, []));\n  }\n\n  private get programWithStubsHost(): ts.CompilerHost {\n    return this._programWithStubsHost || (this._programWithStubsHost = createProgramWithStubsHost(\n                                              this.stubs, this.tsProgram, this.host));\n  }\n\n  private get programWithStubs(): ts.Program {\n    return this._programWithStubs || (this._programWithStubs = this.createProgramWithStubs());\n  }\n\n  private get generatedFiles(): GeneratedFile[] {\n    return this._generatedFiles || (this._generatedFiles = this.generateFiles());\n  }\n\n  private get typeChecker(): TypeChecker {\n    return (this._typeChecker && !this._typeChecker.partialResults) ?\n        this._typeChecker :\n        (this._typeChecker = this.createTypeChecker());\n  }\n\n  private get generatedFileDiagnostics(): Diagnostic[]|undefined {\n    return this.generatedFiles && this._generatedFileDiagnostics !;\n  }\n\n  private catchAnalysisError(e: any): NgAnalyzedModules {\n    if (isSyntaxError(e)) {\n      const parserErrors = getParseErrors(e);\n      if (parserErrors && parserErrors.length) {\n        this._structuralDiagnostics =\n            parserErrors.map<Diagnostic>(e => ({\n                                           message: e.contextualMessage(),\n                                           category: DiagnosticCategory.Error,\n                                           span: e.span\n                                         }));\n      } else {\n        this._structuralDiagnostics = [{message: e.message, category: DiagnosticCategory.Error}];\n      }\n      this._analyzedModules = emptyModules;\n      return emptyModules;\n    }\n    throw e;\n  }\n\n  private analyzeModules() {\n    try {\n      return this.compiler.analyzeModulesSync(this.srcNames);\n    } catch (e) {\n      return this.catchAnalysisError(e);\n    }\n  }\n\n  private generateStubs() {\n    return this.options.skipTemplateCodegen ? [] :\n                                              this.options.generateCodeForLibraries === false ?\n                                              this.compiler.emitAllStubs(this.analyzedModules) :\n                                              this.compiler.emitPartialStubs(this.analyzedModules);\n  }\n\n  private generateFiles() {\n    try {\n      // Always generate the files if requested to ensure we capture any diagnostic errors but only\n      // keep the results if we are not skipping template code generation.\n      const result = this.compiler.emitAllImpls(this.analyzedModules);\n      return this.options.skipTemplateCodegen ? [] : result;\n    } catch (e) {\n      if (isSyntaxError(e)) {\n        this._generatedFileDiagnostics = [{message: e.message, category: DiagnosticCategory.Error}];\n        return [];\n      }\n      throw e;\n    }\n  }\n\n  private createTypeChecker(): TypeChecker {\n    return new TypeChecker(\n        this.tsProgram, this.options, this.host, this.aotCompilerHost, this.options,\n        this.analyzedModules, this.generatedFiles);\n  }\n\n  private createProgramWithStubs(): ts.Program {\n    // If we are skipping code generation just use the original program.\n    // Otherwise, create a new program that includes the stub files.\n    return this.options.skipTemplateCodegen ?\n        this.tsProgram :\n        ts.createProgram(\n            [...this.rootNames, ...this.stubFiles], this.options, this.programWithStubsHost);\n  }\n}\n\nexport function createProgram(\n    {rootNames, options, host, oldProgram}:\n        {rootNames: string[], options: CompilerOptions, host: CompilerHost, oldProgram?: Program}):\n    Program {\n  return new AngularCompilerProgram(rootNames, options, host, oldProgram);\n}\n\nfunction writeMetadata(\n    emitFilePath: string, sourceFile: ts.SourceFile, collector: MetadataCollector,\n    ngOptions: CompilerOptions) {\n  if (/\\.js$/.test(emitFilePath)) {\n    const path = emitFilePath.replace(/\\.js$/, '.metadata.json');\n\n    // Beginning with 2.1, TypeScript transforms the source tree before emitting it.\n    // We need the original, unmodified, tree which might be several levels back\n    // depending on the number of transforms performed. All SourceFile's prior to 2.1\n    // will appear to be the original source since they didn't include an original field.\n    let collectableFile = sourceFile;\n    while ((collectableFile as any).original) {\n      collectableFile = (collectableFile as any).original;\n    }\n\n    const metadata = collector.getMetadata(collectableFile, !!ngOptions.strictMetadataEmit);\n    if (metadata) {\n      const metadataText = JSON.stringify([metadata]);\n      writeFileSync(path, metadataText, {encoding: 'utf-8'});\n    }\n  }\n}\n\nfunction createWriteFileCallback(\n    emitFlags: EmitFlags, host: ts.CompilerHost, collector: MetadataCollector,\n    ngOptions: CompilerOptions, emitMap: Map<string, string>) {\n  const withMetadata =\n      (fileName: string, data: string, writeByteOrderMark: boolean,\n       onError?: (message: string) => void, sourceFiles?: ts.SourceFile[]) => {\n        const generatedFile = GENERATED_FILES.test(fileName);\n        if (!generatedFile || data != '') {\n          host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);\n        }\n        if (!generatedFile && sourceFiles && sourceFiles.length == 1) {\n          emitMap.set(sourceFiles[0].fileName, fileName);\n          writeMetadata(fileName, sourceFiles[0], collector, ngOptions);\n        }\n      };\n  const withoutMetadata =\n      (fileName: string, data: string, writeByteOrderMark: boolean,\n       onError?: (message: string) => void, sourceFiles?: ts.SourceFile[]) => {\n        const generatedFile = GENERATED_FILES.test(fileName);\n        if (!generatedFile || data != '') {\n          host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);\n        }\n        if (!generatedFile && sourceFiles && sourceFiles.length == 1) {\n          emitMap.set(sourceFiles[0].fileName, fileName);\n        }\n      };\n  return (emitFlags & EmitFlags.Metadata) != 0 ? withMetadata : withoutMetadata;\n}\n\nfunction getNgOptionDiagnostics(options: CompilerOptions): Diagnostic[] {\n  if (options.annotationsAs) {\n    switch (options.annotationsAs) {\n      case 'decorators':\n      case 'static fields':\n        break;\n      default:\n        return [{\n          message:\n              'Angular compiler options \"annotationsAs\" only supports \"static fields\" and \"decorators\"',\n          category: DiagnosticCategory.Error\n        }];\n    }\n  }\n  return [];\n}\n\nfunction createProgramWithStubsHost(\n    generatedFiles: GeneratedFile[], originalProgram: ts.Program,\n    originalHost: ts.CompilerHost): ts.CompilerHost {\n  interface FileData {\n    g: GeneratedFile;\n    s?: ts.SourceFile;\n  }\n  return new class implements ts.CompilerHost {\n    private generatedFiles: Map<string, FileData>;\n    writeFile: ts.WriteFileCallback;\n    getCancellationToken: () => ts.CancellationToken;\n    getDefaultLibLocation: () => string;\n    trace: (s: string) => void;\n    getDirectories: (path: string) => string[];\n    directoryExists: (directoryName: string) => boolean;\n    constructor() {\n      this.generatedFiles =\n          new Map(generatedFiles.filter(g => g.source || (g.stmts && g.stmts.length))\n                      .map<[string, FileData]>(g => [g.genFileUrl, {g}]));\n      this.writeFile = originalHost.writeFile;\n      if (originalHost.getDirectories) {\n        this.getDirectories = path => originalHost.getDirectories !(path);\n      }\n      if (originalHost.directoryExists) {\n        this.directoryExists = directoryName => originalHost.directoryExists !(directoryName);\n      }\n      if (originalHost.getCancellationToken) {\n        this.getCancellationToken = () => originalHost.getCancellationToken !();\n      }\n      if (originalHost.getDefaultLibLocation) {\n        this.getDefaultLibLocation = () => originalHost.getDefaultLibLocation !();\n      }\n      if (originalHost.trace) {\n        this.trace = s => originalHost.trace !(s);\n      }\n    }\n    getSourceFile(\n        fileName: string, languageVersion: ts.ScriptTarget,\n        onError?: ((message: string) => void)|undefined): ts.SourceFile {\n      const data = this.generatedFiles.get(fileName);\n      if (data) {\n        return data.s || (data.s = ts.createSourceFile(\n                              fileName, data.g.source || toTypeScript(data.g), languageVersion));\n      }\n      return originalProgram.getSourceFile(fileName) ||\n          originalHost.getSourceFile(fileName, languageVersion, onError);\n    }\n    readFile(fileName: string): string {\n      const data = this.generatedFiles.get(fileName);\n      if (data) {\n        return data.g.source || toTypeScript(data.g);\n      }\n      return originalHost.readFile(fileName);\n    }\n\n    getDefaultLibFileName = (options: ts.CompilerOptions) =>\n        originalHost.getDefaultLibFileName(options)\n    getCurrentDirectory = () => originalHost.getCurrentDirectory();\n    getCanonicalFileName = (fileName: string) => originalHost.getCanonicalFileName(fileName);\n    useCaseSensitiveFileNames = () => originalHost.useCaseSensitiveFileNames();\n    getNewLine = () => originalHost.getNewLine();\n    realPath = (p: string) => p;\n    fileExists = (fileName: string) =>\n        this.generatedFiles.has(fileName) || originalHost.fileExists(fileName)\n  };\n}\n"]}
(18-18/18)