@angular/compiler-cli 4.4.2 → 4.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/src/compiler_host.js +0 -1
- package/src/compiler_host.js.map +1 -1
- package/src/diagnostics/check_types.js +3 -1
- package/src/diagnostics/check_types.js.map +1 -1
- package/src/transformers/node_emitter.js +0 -1
- package/src/transformers/node_emitter.js.map +1 -1
- package/src/transformers/program.js.map +1 -1
- package/src/version.js +1 -1
- package/src/version.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/compiler-cli",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.6",
|
|
4
4
|
"description": "Angular - the compiler CLI for Node.js",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
"ng-xi18n": "./src/extract_i18n.js"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@angular/tsc-wrapped": "4.4.
|
|
12
|
+
"@angular/tsc-wrapped": "4.4.6",
|
|
13
13
|
"reflect-metadata": "^0.1.2",
|
|
14
14
|
"minimist": "^1.2.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"typescript": "^2.0.2",
|
|
18
|
-
"@angular/compiler": "4.4.
|
|
19
|
-
"@angular/core": "4.4.
|
|
18
|
+
"@angular/compiler": "4.4.6",
|
|
19
|
+
"@angular/core": "4.4.6"
|
|
20
20
|
},
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
package/src/compiler_host.js
CHANGED
package/src/compiler_host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler_host.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/compiler_host.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 {AotCompilerHost, StaticSymbol} from '@angular/compiler';\nimport {AngularCompilerOptions, CollectorOptions, MetadataCollector, ModuleMetadata} from '@angular/tsc-wrapped';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as ts from 'typescript';\n\nconst EXT = /(\\.ts|\\.d\\.ts|\\.js|\\.jsx|\\.tsx)$/;\nconst DTS = /\\.d\\.ts$/;\nconst NODE_MODULES = '/node_modules/';\nconst IS_GENERATED = /\\.(ngfactory|ngstyle|ngsummary)$/;\nconst GENERATED_FILES = /\\.ngfactory\\.ts$|\\.ngstyle\\.ts$|\\.ngsummary\\.ts$/;\nconst GENERATED_OR_DTS_FILES = /\\.d\\.ts$|\\.ngfactory\\.ts$|\\.ngstyle\\.ts$|\\.ngsummary\\.ts$/;\nconst SHALLOW_IMPORT = /^((\\w|-)+|(@(\\w|-)+(\\/(\\w|-)+)+))$/;\n\nexport interface CompilerHostContext extends ts.ModuleResolutionHost {\n readResource?(fileName: string): Promise<string>|string;\n assumeFileExists(fileName: string): void;\n}\n\nexport class CompilerHost implements AotCompilerHost {\n protected metadataCollector = new MetadataCollector();\n private isGenDirChildOfRootDir: boolean;\n protected basePath: string;\n private genDir: string;\n private resolverCache = new Map<string, ModuleMetadata[]>();\n private flatModuleIndexCache = new Map<string, boolean>();\n private flatModuleIndexNames = new Set<string>();\n private flatModuleIndexRedirectNames = new Set<string>();\n private moduleFileNames = new Map<string, string|null>();\n protected resolveModuleNameHost: CompilerHostContext;\n\n constructor(\n protected program: ts.Program, protected options: AngularCompilerOptions,\n protected context: CompilerHostContext, collectorOptions?: CollectorOptions) {\n // normalize the path so that it never ends with '/'.\n this.basePath = path.normalize(path.join(this.options.basePath !, '.')).replace(/\\\\/g, '/');\n this.genDir = path.normalize(path.join(this.options.genDir !, '.')).replace(/\\\\/g, '/');\n\n const genPath: string = path.relative(this.basePath, this.genDir);\n this.isGenDirChildOfRootDir = genPath === '' || !genPath.startsWith('..');\n this.resolveModuleNameHost = Object.create(this.context);\n\n // When calling ts.resolveModuleName,\n // additional allow checks for .d.ts files to be done based on\n // checks for .ngsummary.json files,\n // so that our codegen depends on fewer inputs and requires to be called\n // less often.\n // This is needed as we use ts.resolveModuleName in reflector_host\n // and it should be able to resolve summary file names.\n this.resolveModuleNameHost.fileExists = (fileName: string): boolean => {\n if (this.context.fileExists(fileName)) {\n return true;\n }\n if (DTS.test(fileName)) {\n const base = fileName.substring(0, fileName.length - 5);\n return this.context.fileExists(base + '.ngsummary.json');\n }\n return false;\n };\n }\n\n // We use absolute paths on disk as canonical.\n getCanonicalFileName(fileName: string): string { return fileName; }\n\n moduleNameToFileName(m: string, containingFile: string): string|null {\n const key = m + ':' + (containingFile || '');\n let result: string|null = this.moduleFileNames.get(key) || null;\n if (!result) {\n if (!containingFile || !containingFile.length) {\n if (m.indexOf('.') === 0) {\n throw new Error('Resolution of relative paths requires a containing file.');\n }\n // Any containing file gives the same result for absolute imports\n containingFile = this.getCanonicalFileName(path.join(this.basePath, 'index.ts'));\n }\n m = m.replace(EXT, '');\n const resolved =\n ts.resolveModuleName(\n m, containingFile.replace(/\\\\/g, '/'), this.options, this.resolveModuleNameHost)\n .resolvedModule;\n result = resolved ? this.getCanonicalFileName(resolved.resolvedFileName) : null;\n this.moduleFileNames.set(key, result);\n }\n return result;\n };\n\n /**\n * We want a moduleId that will appear in import statements in the generated code.\n * These need to be in a form that system.js can load, so absolute file paths don't work.\n *\n * The `containingFile` is always in the `genDir`, where as the `importedFile` can be in\n * `genDir`, `node_module` or `basePath`. The `importedFile` is either a generated file or\n * existing file.\n *\n * | genDir | node_module | rootDir\n * --------------+----------+-------------+----------\n * generated | relative | relative | n/a\n * existing file | n/a | absolute | relative(*)\n *\n * NOTE: (*) the relative path is computed depending on `isGenDirChildOfRootDir`.\n */\n fileNameToModuleName(importedFile: string, containingFile: string): string {\n // If a file does not yet exist (because we compile it later), we still need to\n // assume it exists it so that the `resolve` method works!\n if (importedFile !== containingFile && !this.context.fileExists(importedFile)) {\n this.context.assumeFileExists(importedFile);\n }\n\n containingFile = this.rewriteGenDirPath(containingFile);\n const containingDir = path.dirname(containingFile);\n // drop extension\n importedFile = importedFile.replace(EXT, '');\n\n const nodeModulesIndex = importedFile.indexOf(NODE_MODULES);\n const importModule = nodeModulesIndex === -1 ?\n null :\n importedFile.substring(nodeModulesIndex + NODE_MODULES.length);\n const isGeneratedFile = IS_GENERATED.test(importedFile);\n\n if (isGeneratedFile) {\n // rewrite to genDir path\n if (importModule) {\n // it is generated, therefore we do a relative path to the factory\n return this.dotRelative(containingDir, this.genDir + NODE_MODULES + importModule);\n } else {\n // assume that import is also in `genDir`\n importedFile = this.rewriteGenDirPath(importedFile);\n return this.dotRelative(containingDir, importedFile);\n }\n } else {\n // user code import\n if (importModule) {\n return importModule;\n } else {\n if (!this.isGenDirChildOfRootDir) {\n // assume that they are on top of each other.\n importedFile = importedFile.replace(this.basePath, this.genDir);\n }\n if (SHALLOW_IMPORT.test(importedFile)) {\n return importedFile;\n }\n return this.dotRelative(containingDir, importedFile);\n }\n }\n }\n\n private dotRelative(from: string, to: string): string {\n const rPath: string = path.relative(from, to).replace(/\\\\/g, '/');\n return rPath.startsWith('.') ? rPath : './' + rPath;\n }\n\n /**\n * Moves the path into `genDir` folder while preserving the `node_modules` directory.\n */\n private rewriteGenDirPath(filepath: string) {\n const nodeModulesIndex = filepath.indexOf(NODE_MODULES);\n if (nodeModulesIndex !== -1) {\n // If we are in node_modulse, transplant them into `genDir`.\n return path.join(this.genDir, filepath.substring(nodeModulesIndex));\n } else {\n // pretend that containing file is on top of the `genDir` to normalize the paths.\n // we apply the `genDir` => `rootDir` delta through `rootDirPrefix` later.\n return filepath.replace(this.basePath, this.genDir);\n }\n }\n\n protected getSourceFile(filePath: string): ts.SourceFile {\n const sf = this.program.getSourceFile(filePath);\n if (!sf) {\n if (this.context.fileExists(filePath)) {\n const sourceText = this.context.readFile(filePath);\n return ts.createSourceFile(filePath, sourceText, ts.ScriptTarget.Latest, true);\n }\n throw new Error(`Source file ${filePath} not present in program.`);\n }\n return sf;\n }\n\n getMetadataFor(filePath: string): ModuleMetadata[]|undefined {\n if (!this.context.fileExists(filePath)) {\n // If the file doesn't exists then we cannot return metadata for the file.\n // This will occur if the user referenced a declared module for which no file\n // exists for the module (i.e. jQuery or angularjs).\n return;\n }\n\n if (DTS.test(filePath)) {\n const metadataPath = filePath.replace(DTS, '.metadata.json');\n if (this.context.fileExists(metadataPath)) {\n return this.readMetadata(metadataPath, filePath);\n } else {\n // If there is a .d.ts file but no metadata file we need to produce a\n // v3 metadata from the .d.ts file as v3 includes the exports we need\n // to resolve symbols.\n return [this.upgradeVersion1Metadata(\n {'__symbolic': 'module', 'version': 1, 'metadata': {}}, filePath)];\n }\n }\n\n const sf = this.getSourceFile(filePath);\n const metadata = this.metadataCollector.getMetadata(sf);\n return metadata ? [metadata] : [];\n }\n\n readMetadata(filePath: string, dtsFilePath: string): ModuleMetadata[] {\n let metadatas = this.resolverCache.get(filePath);\n if (metadatas) {\n return metadatas;\n }\n try {\n const metadataOrMetadatas = JSON.parse(this.context.readFile(filePath));\n const metadatas: ModuleMetadata[] = metadataOrMetadatas ?\n (Array.isArray(metadataOrMetadatas) ? metadataOrMetadatas : [metadataOrMetadatas]) :\n [];\n const v1Metadata = metadatas.find(m => m.version === 1);\n let v3Metadata = metadatas.find(m => m.version === 3);\n if (!v3Metadata && v1Metadata) {\n metadatas.push(this.upgradeVersion1Metadata(v1Metadata, dtsFilePath));\n }\n this.resolverCache.set(filePath, metadatas);\n return metadatas;\n } catch (e) {\n console.error(`Failed to read JSON file ${filePath}`);\n throw e;\n }\n }\n\n private upgradeVersion1Metadata(v1Metadata: ModuleMetadata, dtsFilePath: string): ModuleMetadata {\n // patch up v1 to v3 by merging the metadata with metadata collected from the d.ts file\n // as the only difference between the versions is whether all exports are contained in\n // the metadata and the `extends` clause.\n let v3Metadata: ModuleMetadata = {'__symbolic': 'module', 'version': 3, 'metadata': {}};\n if (v1Metadata.exports) {\n v3Metadata.exports = v1Metadata.exports;\n }\n for (let prop in v1Metadata.metadata) {\n v3Metadata.metadata[prop] = v1Metadata.metadata[prop];\n }\n\n const exports = this.metadataCollector.getMetadata(this.getSourceFile(dtsFilePath));\n if (exports) {\n for (let prop in exports.metadata) {\n if (!v3Metadata.metadata[prop]) {\n v3Metadata.metadata[prop] = exports.metadata[prop];\n }\n }\n if (exports.exports) {\n v3Metadata.exports = exports.exports;\n }\n }\n return v3Metadata;\n }\n\n loadResource(filePath: string): Promise<string>|string {\n if (this.context.readResource) return this.context.readResource(filePath);\n return this.context.readFile(filePath);\n }\n\n loadSummary(filePath: string): string|null {\n if (this.context.fileExists(filePath)) {\n return this.context.readFile(filePath);\n }\n return null;\n }\n\n getOutputFileName(sourceFilePath: string): string {\n return sourceFilePath.replace(EXT, '') + '.d.ts';\n }\n\n isSourceFile(filePath: string): boolean {\n const excludeRegex =\n this.options.generateCodeForLibraries === false ? GENERATED_OR_DTS_FILES : GENERATED_FILES;\n if (excludeRegex.test(filePath)) {\n return false;\n }\n if (DTS.test(filePath)) {\n // Check for a bundle index.\n if (this.hasBundleIndex(filePath)) {\n const normalFilePath = path.normalize(filePath);\n return this.flatModuleIndexNames.has(normalFilePath) ||\n this.flatModuleIndexRedirectNames.has(normalFilePath);\n }\n }\n return true;\n }\n\n calculateEmitPath(filePath: string): string {\n // Write codegen in a directory structure matching the sources.\n let root = this.options.basePath !;\n for (const eachRootDir of this.options.rootDirs || []) {\n if (this.options.trace) {\n console.error(`Check if ${filePath} is under rootDirs element ${eachRootDir}`);\n }\n if (path.relative(eachRootDir, filePath).indexOf('.') !== 0) {\n root = eachRootDir;\n }\n }\n\n // transplant the codegen path to be inside the `genDir`\n let relativePath: string = path.relative(root, filePath);\n while (relativePath.startsWith('..' + path.sep)) {\n // Strip out any `..` path such as: `../node_modules/@foo` as we want to put everything\n // into `genDir`.\n relativePath = relativePath.substr(3);\n }\n\n return path.join(this.options.genDir !, relativePath);\n }\n\n private hasBundleIndex(filePath: string): boolean {\n const checkBundleIndex = (directory: string): boolean => {\n let result = this.flatModuleIndexCache.get(directory);\n if (result == null) {\n if (path.basename(directory) == 'node_module') {\n // Don't look outside the node_modules this package is installed in.\n result = false;\n } else {\n // A bundle index exists if the typings .d.ts file has a metadata.json that has an\n // importAs.\n try {\n const packageFile = path.join(directory, 'package.json');\n if (this.context.fileExists(packageFile)) {\n // Once we see a package.json file, assume false until it we find the bundle index.\n result = false;\n const packageContent: any = JSON.parse(this.context.readFile(packageFile));\n if (packageContent.typings) {\n const typings = path.normalize(path.join(directory, packageContent.typings));\n if (DTS.test(typings)) {\n const metadataFile = typings.replace(DTS, '.metadata.json');\n if (this.context.fileExists(metadataFile)) {\n const metadata = JSON.parse(this.context.readFile(metadataFile));\n if (metadata.flatModuleIndexRedirect) {\n this.flatModuleIndexRedirectNames.add(typings);\n // Note: don't set result = true,\n // as this would mark this folder\n // as having a bundleIndex too early without\n // filling the bundleIndexNames.\n } else if (metadata.importAs) {\n this.flatModuleIndexNames.add(typings);\n result = true;\n }\n }\n }\n }\n } else {\n const parent = path.dirname(directory);\n if (parent != directory) {\n // Try the parent directory.\n result = checkBundleIndex(parent);\n } else {\n result = false;\n }\n }\n } catch (e) {\n // If we encounter any errors assume we this isn't a bundle index.\n result = false;\n }\n }\n this.flatModuleIndexCache.set(directory, result);\n }\n return result;\n };\n\n return checkBundleIndex(path.dirname(filePath));\n }\n}\n\nexport class CompilerHostContextAdapter {\n protected assumedExists: {[fileName: string]: boolean} = {};\n\n assumeFileExists(fileName: string): void { this.assumedExists[fileName] = true; }\n}\n\nexport class ModuleResolutionHostAdapter extends CompilerHostContextAdapter implements\n CompilerHostContext {\n public directoryExists: ((directoryName: string) => boolean)|undefined;\n\n constructor(private host: ts.ModuleResolutionHost) {\n super();\n if (host.directoryExists) {\n this.directoryExists = (directoryName: string) => host.directoryExists !(directoryName);\n }\n }\n\n fileExists(fileName: string): boolean {\n return this.assumedExists[fileName] || this.host.fileExists(fileName);\n }\n\n readFile(fileName: string): string { return this.host.readFile(fileName); }\n\n readResource(s: string) {\n if (!this.host.fileExists(s)) {\n // TODO: We should really have a test for error cases like this!\n throw new Error(`Compilation failed. Resource file not found: ${s}`);\n }\n return Promise.resolve(this.host.readFile(s));\n }\n}\n\nexport class NodeCompilerHostContext extends CompilerHostContextAdapter implements\n CompilerHostContext {\n fileExists(fileName: string): boolean {\n return this.assumedExists[fileName] || fs.existsSync(fileName);\n }\n\n directoryExists(directoryName: string): boolean {\n try {\n return fs.statSync(directoryName).isDirectory();\n } catch (e) {\n return false;\n }\n }\n\n readFile(fileName: string): string { return fs.readFileSync(fileName, 'utf8'); }\n\n readResource(s: string) {\n if (!this.fileExists(s)) {\n // TODO: We should really have a test for error cases like this!\n throw new Error(`Compilation failed. Resource file not found: ${s}`);\n }\n return Promise.resolve(this.readFile(s));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"compiler_host.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/compiler_host.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 {AotCompilerHost, StaticSymbol} from '@angular/compiler';\nimport {AngularCompilerOptions, CollectorOptions, MetadataCollector, ModuleMetadata} from '@angular/tsc-wrapped';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as ts from 'typescript';\n\nconst EXT = /(\\.ts|\\.d\\.ts|\\.js|\\.jsx|\\.tsx)$/;\nconst DTS = /\\.d\\.ts$/;\nconst NODE_MODULES = '/node_modules/';\nconst IS_GENERATED = /\\.(ngfactory|ngstyle|ngsummary)$/;\nconst GENERATED_FILES = /\\.ngfactory\\.ts$|\\.ngstyle\\.ts$|\\.ngsummary\\.ts$/;\nconst GENERATED_OR_DTS_FILES = /\\.d\\.ts$|\\.ngfactory\\.ts$|\\.ngstyle\\.ts$|\\.ngsummary\\.ts$/;\nconst SHALLOW_IMPORT = /^((\\w|-)+|(@(\\w|-)+(\\/(\\w|-)+)+))$/;\n\nexport interface CompilerHostContext extends ts.ModuleResolutionHost {\n readResource?(fileName: string): Promise<string>|string;\n assumeFileExists(fileName: string): void;\n}\n\nexport class CompilerHost implements AotCompilerHost {\n protected metadataCollector = new MetadataCollector();\n private isGenDirChildOfRootDir: boolean;\n protected basePath: string;\n private genDir: string;\n private resolverCache = new Map<string, ModuleMetadata[]>();\n private flatModuleIndexCache = new Map<string, boolean>();\n private flatModuleIndexNames = new Set<string>();\n private flatModuleIndexRedirectNames = new Set<string>();\n private moduleFileNames = new Map<string, string|null>();\n protected resolveModuleNameHost: CompilerHostContext;\n\n constructor(\n protected program: ts.Program, protected options: AngularCompilerOptions,\n protected context: CompilerHostContext, collectorOptions?: CollectorOptions) {\n // normalize the path so that it never ends with '/'.\n this.basePath = path.normalize(path.join(this.options.basePath !, '.')).replace(/\\\\/g, '/');\n this.genDir = path.normalize(path.join(this.options.genDir !, '.')).replace(/\\\\/g, '/');\n\n const genPath: string = path.relative(this.basePath, this.genDir);\n this.isGenDirChildOfRootDir = genPath === '' || !genPath.startsWith('..');\n this.resolveModuleNameHost = Object.create(this.context);\n\n // When calling ts.resolveModuleName,\n // additional allow checks for .d.ts files to be done based on\n // checks for .ngsummary.json files,\n // so that our codegen depends on fewer inputs and requires to be called\n // less often.\n // This is needed as we use ts.resolveModuleName in reflector_host\n // and it should be able to resolve summary file names.\n this.resolveModuleNameHost.fileExists = (fileName: string): boolean => {\n if (this.context.fileExists(fileName)) {\n return true;\n }\n if (DTS.test(fileName)) {\n const base = fileName.substring(0, fileName.length - 5);\n return this.context.fileExists(base + '.ngsummary.json');\n }\n return false;\n };\n }\n\n // We use absolute paths on disk as canonical.\n getCanonicalFileName(fileName: string): string { return fileName; }\n\n moduleNameToFileName(m: string, containingFile: string): string|null {\n const key = m + ':' + (containingFile || '');\n let result: string|null = this.moduleFileNames.get(key) || null;\n if (!result) {\n if (!containingFile || !containingFile.length) {\n if (m.indexOf('.') === 0) {\n throw new Error('Resolution of relative paths requires a containing file.');\n }\n // Any containing file gives the same result for absolute imports\n containingFile = this.getCanonicalFileName(path.join(this.basePath, 'index.ts'));\n }\n m = m.replace(EXT, '');\n const resolved =\n ts.resolveModuleName(\n m, containingFile.replace(/\\\\/g, '/'), this.options, this.resolveModuleNameHost)\n .resolvedModule;\n result = resolved ? this.getCanonicalFileName(resolved.resolvedFileName) : null;\n this.moduleFileNames.set(key, result);\n }\n return result;\n }\n\n /**\n * We want a moduleId that will appear in import statements in the generated code.\n * These need to be in a form that system.js can load, so absolute file paths don't work.\n *\n * The `containingFile` is always in the `genDir`, where as the `importedFile` can be in\n * `genDir`, `node_module` or `basePath`. The `importedFile` is either a generated file or\n * existing file.\n *\n * | genDir | node_module | rootDir\n * --------------+----------+-------------+----------\n * generated | relative | relative | n/a\n * existing file | n/a | absolute | relative(*)\n *\n * NOTE: (*) the relative path is computed depending on `isGenDirChildOfRootDir`.\n */\n fileNameToModuleName(importedFile: string, containingFile: string): string {\n // If a file does not yet exist (because we compile it later), we still need to\n // assume it exists it so that the `resolve` method works!\n if (importedFile !== containingFile && !this.context.fileExists(importedFile)) {\n this.context.assumeFileExists(importedFile);\n }\n\n containingFile = this.rewriteGenDirPath(containingFile);\n const containingDir = path.dirname(containingFile);\n // drop extension\n importedFile = importedFile.replace(EXT, '');\n\n const nodeModulesIndex = importedFile.indexOf(NODE_MODULES);\n const importModule = nodeModulesIndex === -1 ?\n null :\n importedFile.substring(nodeModulesIndex + NODE_MODULES.length);\n const isGeneratedFile = IS_GENERATED.test(importedFile);\n\n if (isGeneratedFile) {\n // rewrite to genDir path\n if (importModule) {\n // it is generated, therefore we do a relative path to the factory\n return this.dotRelative(containingDir, this.genDir + NODE_MODULES + importModule);\n } else {\n // assume that import is also in `genDir`\n importedFile = this.rewriteGenDirPath(importedFile);\n return this.dotRelative(containingDir, importedFile);\n }\n } else {\n // user code import\n if (importModule) {\n return importModule;\n } else {\n if (!this.isGenDirChildOfRootDir) {\n // assume that they are on top of each other.\n importedFile = importedFile.replace(this.basePath, this.genDir);\n }\n if (SHALLOW_IMPORT.test(importedFile)) {\n return importedFile;\n }\n return this.dotRelative(containingDir, importedFile);\n }\n }\n }\n\n private dotRelative(from: string, to: string): string {\n const rPath: string = path.relative(from, to).replace(/\\\\/g, '/');\n return rPath.startsWith('.') ? rPath : './' + rPath;\n }\n\n /**\n * Moves the path into `genDir` folder while preserving the `node_modules` directory.\n */\n private rewriteGenDirPath(filepath: string) {\n const nodeModulesIndex = filepath.indexOf(NODE_MODULES);\n if (nodeModulesIndex !== -1) {\n // If we are in node_modulse, transplant them into `genDir`.\n return path.join(this.genDir, filepath.substring(nodeModulesIndex));\n } else {\n // pretend that containing file is on top of the `genDir` to normalize the paths.\n // we apply the `genDir` => `rootDir` delta through `rootDirPrefix` later.\n return filepath.replace(this.basePath, this.genDir);\n }\n }\n\n protected getSourceFile(filePath: string): ts.SourceFile {\n const sf = this.program.getSourceFile(filePath);\n if (!sf) {\n if (this.context.fileExists(filePath)) {\n const sourceText = this.context.readFile(filePath);\n return ts.createSourceFile(filePath, sourceText, ts.ScriptTarget.Latest, true);\n }\n throw new Error(`Source file ${filePath} not present in program.`);\n }\n return sf;\n }\n\n getMetadataFor(filePath: string): ModuleMetadata[]|undefined {\n if (!this.context.fileExists(filePath)) {\n // If the file doesn't exists then we cannot return metadata for the file.\n // This will occur if the user referenced a declared module for which no file\n // exists for the module (i.e. jQuery or angularjs).\n return;\n }\n\n if (DTS.test(filePath)) {\n const metadataPath = filePath.replace(DTS, '.metadata.json');\n if (this.context.fileExists(metadataPath)) {\n return this.readMetadata(metadataPath, filePath);\n } else {\n // If there is a .d.ts file but no metadata file we need to produce a\n // v3 metadata from the .d.ts file as v3 includes the exports we need\n // to resolve symbols.\n return [this.upgradeVersion1Metadata(\n {'__symbolic': 'module', 'version': 1, 'metadata': {}}, filePath)];\n }\n }\n\n const sf = this.getSourceFile(filePath);\n const metadata = this.metadataCollector.getMetadata(sf);\n return metadata ? [metadata] : [];\n }\n\n readMetadata(filePath: string, dtsFilePath: string): ModuleMetadata[] {\n let metadatas = this.resolverCache.get(filePath);\n if (metadatas) {\n return metadatas;\n }\n try {\n const metadataOrMetadatas = JSON.parse(this.context.readFile(filePath));\n const metadatas: ModuleMetadata[] = metadataOrMetadatas ?\n (Array.isArray(metadataOrMetadatas) ? metadataOrMetadatas : [metadataOrMetadatas]) :\n [];\n const v1Metadata = metadatas.find(m => m.version === 1);\n let v3Metadata = metadatas.find(m => m.version === 3);\n if (!v3Metadata && v1Metadata) {\n metadatas.push(this.upgradeVersion1Metadata(v1Metadata, dtsFilePath));\n }\n this.resolverCache.set(filePath, metadatas);\n return metadatas;\n } catch (e) {\n console.error(`Failed to read JSON file ${filePath}`);\n throw e;\n }\n }\n\n private upgradeVersion1Metadata(v1Metadata: ModuleMetadata, dtsFilePath: string): ModuleMetadata {\n // patch up v1 to v3 by merging the metadata with metadata collected from the d.ts file\n // as the only difference between the versions is whether all exports are contained in\n // the metadata and the `extends` clause.\n let v3Metadata: ModuleMetadata = {'__symbolic': 'module', 'version': 3, 'metadata': {}};\n if (v1Metadata.exports) {\n v3Metadata.exports = v1Metadata.exports;\n }\n for (let prop in v1Metadata.metadata) {\n v3Metadata.metadata[prop] = v1Metadata.metadata[prop];\n }\n\n const exports = this.metadataCollector.getMetadata(this.getSourceFile(dtsFilePath));\n if (exports) {\n for (let prop in exports.metadata) {\n if (!v3Metadata.metadata[prop]) {\n v3Metadata.metadata[prop] = exports.metadata[prop];\n }\n }\n if (exports.exports) {\n v3Metadata.exports = exports.exports;\n }\n }\n return v3Metadata;\n }\n\n loadResource(filePath: string): Promise<string>|string {\n if (this.context.readResource) return this.context.readResource(filePath);\n return this.context.readFile(filePath);\n }\n\n loadSummary(filePath: string): string|null {\n if (this.context.fileExists(filePath)) {\n return this.context.readFile(filePath);\n }\n return null;\n }\n\n getOutputFileName(sourceFilePath: string): string {\n return sourceFilePath.replace(EXT, '') + '.d.ts';\n }\n\n isSourceFile(filePath: string): boolean {\n const excludeRegex =\n this.options.generateCodeForLibraries === false ? GENERATED_OR_DTS_FILES : GENERATED_FILES;\n if (excludeRegex.test(filePath)) {\n return false;\n }\n if (DTS.test(filePath)) {\n // Check for a bundle index.\n if (this.hasBundleIndex(filePath)) {\n const normalFilePath = path.normalize(filePath);\n return this.flatModuleIndexNames.has(normalFilePath) ||\n this.flatModuleIndexRedirectNames.has(normalFilePath);\n }\n }\n return true;\n }\n\n calculateEmitPath(filePath: string): string {\n // Write codegen in a directory structure matching the sources.\n let root = this.options.basePath !;\n for (const eachRootDir of this.options.rootDirs || []) {\n if (this.options.trace) {\n console.error(`Check if ${filePath} is under rootDirs element ${eachRootDir}`);\n }\n if (path.relative(eachRootDir, filePath).indexOf('.') !== 0) {\n root = eachRootDir;\n }\n }\n\n // transplant the codegen path to be inside the `genDir`\n let relativePath: string = path.relative(root, filePath);\n while (relativePath.startsWith('..' + path.sep)) {\n // Strip out any `..` path such as: `../node_modules/@foo` as we want to put everything\n // into `genDir`.\n relativePath = relativePath.substr(3);\n }\n\n return path.join(this.options.genDir !, relativePath);\n }\n\n private hasBundleIndex(filePath: string): boolean {\n const checkBundleIndex = (directory: string): boolean => {\n let result = this.flatModuleIndexCache.get(directory);\n if (result == null) {\n if (path.basename(directory) == 'node_module') {\n // Don't look outside the node_modules this package is installed in.\n result = false;\n } else {\n // A bundle index exists if the typings .d.ts file has a metadata.json that has an\n // importAs.\n try {\n const packageFile = path.join(directory, 'package.json');\n if (this.context.fileExists(packageFile)) {\n // Once we see a package.json file, assume false until it we find the bundle index.\n result = false;\n const packageContent: any = JSON.parse(this.context.readFile(packageFile));\n if (packageContent.typings) {\n const typings = path.normalize(path.join(directory, packageContent.typings));\n if (DTS.test(typings)) {\n const metadataFile = typings.replace(DTS, '.metadata.json');\n if (this.context.fileExists(metadataFile)) {\n const metadata = JSON.parse(this.context.readFile(metadataFile));\n if (metadata.flatModuleIndexRedirect) {\n this.flatModuleIndexRedirectNames.add(typings);\n // Note: don't set result = true,\n // as this would mark this folder\n // as having a bundleIndex too early without\n // filling the bundleIndexNames.\n } else if (metadata.importAs) {\n this.flatModuleIndexNames.add(typings);\n result = true;\n }\n }\n }\n }\n } else {\n const parent = path.dirname(directory);\n if (parent != directory) {\n // Try the parent directory.\n result = checkBundleIndex(parent);\n } else {\n result = false;\n }\n }\n } catch (e) {\n // If we encounter any errors assume we this isn't a bundle index.\n result = false;\n }\n }\n this.flatModuleIndexCache.set(directory, result);\n }\n return result;\n };\n\n return checkBundleIndex(path.dirname(filePath));\n }\n}\n\nexport class CompilerHostContextAdapter {\n protected assumedExists: {[fileName: string]: boolean} = {};\n\n assumeFileExists(fileName: string): void { this.assumedExists[fileName] = true; }\n}\n\nexport class ModuleResolutionHostAdapter extends CompilerHostContextAdapter implements\n CompilerHostContext {\n public directoryExists: ((directoryName: string) => boolean)|undefined;\n\n constructor(private host: ts.ModuleResolutionHost) {\n super();\n if (host.directoryExists) {\n this.directoryExists = (directoryName: string) => host.directoryExists !(directoryName);\n }\n }\n\n fileExists(fileName: string): boolean {\n return this.assumedExists[fileName] || this.host.fileExists(fileName);\n }\n\n readFile(fileName: string): string { return this.host.readFile(fileName); }\n\n readResource(s: string) {\n if (!this.host.fileExists(s)) {\n // TODO: We should really have a test for error cases like this!\n throw new Error(`Compilation failed. Resource file not found: ${s}`);\n }\n return Promise.resolve(this.host.readFile(s));\n }\n}\n\nexport class NodeCompilerHostContext extends CompilerHostContextAdapter implements\n CompilerHostContext {\n fileExists(fileName: string): boolean {\n return this.assumedExists[fileName] || fs.existsSync(fileName);\n }\n\n directoryExists(directoryName: string): boolean {\n try {\n return fs.statSync(directoryName).isDirectory();\n } catch (e) {\n return false;\n }\n }\n\n readFile(fileName: string): string { return fs.readFileSync(fileName, 'utf8'); }\n\n readResource(s: string) {\n if (!this.fileExists(s)) {\n // TODO: We should really have a test for error cases like this!\n throw new Error(`Compilation failed. Resource file not found: ${s}`);\n }\n return Promise.resolve(this.readFile(s));\n }\n}\n"]}
|
|
@@ -205,7 +205,9 @@ var TypeCheckingHost = (function () {
|
|
|
205
205
|
TypeCheckingHost.prototype.getDefaultLibFileName = function (options) {
|
|
206
206
|
return this.host.getDefaultLibFileName(options);
|
|
207
207
|
};
|
|
208
|
-
TypeCheckingHost.prototype.getCurrentDirectory = function () {
|
|
208
|
+
TypeCheckingHost.prototype.getCurrentDirectory = function () {
|
|
209
|
+
return this.host.getCurrentDirectory();
|
|
210
|
+
};
|
|
209
211
|
TypeCheckingHost.prototype.getDirectories = function (path) { return this.host.getDirectories(path); };
|
|
210
212
|
TypeCheckingHost.prototype.getCanonicalFileName = function (fileName) {
|
|
211
213
|
return this.host.getCanonicalFileName(fileName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check_types.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/diagnostics/check_types.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, AotCompilerHost, AotCompilerOptions, EmitterVisitorContext, GeneratedFile, NgAnalyzedModules, ParseSourceSpan, Statement, StaticReflector, TypeScriptEmitter, createAotCompiler} from '@angular/compiler';\nimport * as ts from 'typescript';\n\nimport {Diagnostic, DiagnosticCategory} from '../transformers/api';\n\ninterface FactoryInfo {\n source: ts.SourceFile;\n context: EmitterVisitorContext;\n}\n\ntype FactoryInfoMap = Map<string, FactoryInfo>;\n\nconst stubCancellationToken: ts.CancellationToken = {\n isCancellationRequested(): boolean{return false;},\n throwIfCancellationRequested(): void{}\n};\n\nexport class TypeChecker {\n private _aotCompiler: AotCompiler|undefined;\n private _reflector: StaticReflector|undefined;\n private _factories: Map<string, FactoryInfo>|undefined;\n private _factoryNames: string[]|undefined;\n private _diagnosticProgram: ts.Program|undefined;\n private _diagnosticsByFile: Map<string, Diagnostic[]>|undefined;\n private _currentCancellationToken: ts.CancellationToken = stubCancellationToken;\n private _partial: boolean = false;\n\n constructor(\n private program: ts.Program, private tsOptions: ts.CompilerOptions,\n private compilerHost: ts.CompilerHost, private aotCompilerHost: AotCompilerHost,\n private aotOptions: AotCompilerOptions, private _analyzedModules?: NgAnalyzedModules,\n private _generatedFiles?: GeneratedFile[]) {}\n\n getDiagnostics(fileName?: string, cancellationToken?: ts.CancellationToken): Diagnostic[] {\n this._currentCancellationToken = cancellationToken || stubCancellationToken;\n try {\n return fileName ?\n this.diagnosticsByFileName.get(fileName) || [] :\n ([] as Diagnostic[]).concat(...Array.from(this.diagnosticsByFileName.values()));\n } finally {\n this._currentCancellationToken = stubCancellationToken;\n }\n }\n\n get partialResults(): boolean { return this._partial; }\n\n private get analyzedModules(): NgAnalyzedModules {\n return this._analyzedModules || (this._analyzedModules = this.aotCompiler.analyzeModulesSync(\n this.program.getSourceFiles().map(sf => sf.fileName)));\n }\n\n private get diagnosticsByFileName(): Map<string, Diagnostic[]> {\n return this._diagnosticsByFile || this.createDiagnosticsByFile();\n }\n\n private get diagnosticProgram(): ts.Program {\n return this._diagnosticProgram || this.createDiagnosticProgram();\n }\n\n private get generatedFiles(): GeneratedFile[] {\n let result = this._generatedFiles;\n if (!result) {\n this._generatedFiles = result = this.aotCompiler.emitAllImpls(this.analyzedModules);\n }\n return result;\n }\n\n private get aotCompiler(): AotCompiler {\n return this._aotCompiler || this.createCompilerAndReflector();\n }\n\n private get reflector(): StaticReflector {\n let result = this._reflector;\n if (!result) {\n this.createCompilerAndReflector();\n result = this._reflector !;\n }\n return result;\n }\n\n private get factories(): Map<string, FactoryInfo> {\n return this._factories || this.createFactories();\n }\n\n private get factoryNames(): string[] {\n return this._factoryNames || (this.createFactories() && this._factoryNames !);\n }\n\n private createCompilerAndReflector() {\n const {compiler, reflector} = createAotCompiler(this.aotCompilerHost, this.aotOptions);\n this._reflector = reflector;\n return this._aotCompiler = compiler;\n }\n\n private createDiagnosticProgram() {\n // Create a program that is all the files from the original program plus the factories.\n const existingFiles = this.program.getSourceFiles().map(source => source.fileName);\n const host = new TypeCheckingHost(this.compilerHost, this.program, this.factories);\n return this._diagnosticProgram =\n ts.createProgram([...existingFiles, ...this.factoryNames], this.tsOptions, host);\n }\n\n private createFactories() {\n // Create all the factory files with enough information to map the diagnostics reported for the\n // created file back to the original source.\n const emitter = new TypeScriptEmitter();\n const factorySources =\n this.generatedFiles.filter(file => file.stmts != null && file.stmts.length)\n .map<[string, FactoryInfo]>(\n file => [file.genFileUrl, createFactoryInfo(emitter, file)]);\n this._factories = new Map(factorySources);\n this._factoryNames = Array.from(this._factories.keys());\n return this._factories;\n }\n\n private createDiagnosticsByFile() {\n // Collect all the diagnostics binned by original source file name.\n const result = new Map<string, Diagnostic[]>();\n const diagnosticsFor = (fileName: string) => {\n let r = result.get(fileName);\n if (!r) {\n r = [];\n result.set(fileName, r);\n }\n return r;\n };\n const program = this.diagnosticProgram;\n for (const factoryName of this.factoryNames) {\n if (this._currentCancellationToken.isCancellationRequested()) return result;\n const sourceFile = program.getSourceFile(factoryName);\n for (const diagnostic of this.diagnosticProgram.getSemanticDiagnostics(sourceFile)) {\n const span = this.sourceSpanOf(diagnostic.file, diagnostic.start, diagnostic.length);\n if (span) {\n const fileName = span.start.file.url;\n const diagnosticsList = diagnosticsFor(fileName);\n diagnosticsList.push({\n message: diagnosticMessageToString(diagnostic.messageText),\n category: diagnosticCategoryConverter(diagnostic.category), span\n });\n }\n }\n }\n return result;\n }\n\n private sourceSpanOf(source: ts.SourceFile, start: number, length: number): ParseSourceSpan|null {\n // Find the corresponding TypeScript node\n const info = this.factories.get(source.fileName);\n if (info) {\n const {line, character} = ts.getLineAndCharacterOfPosition(source, start);\n return info.context.spanOf(line, character);\n }\n return null;\n }\n}\n\nfunction diagnosticMessageToString(message: ts.DiagnosticMessageChain | string): string {\n return ts.flattenDiagnosticMessageText(message, '\\n');\n}\n\nfunction diagnosticCategoryConverter(kind: ts.DiagnosticCategory) {\n // The diagnostics kind matches ts.DiagnosticCategory. Review this code if this changes.\n return kind as any as DiagnosticCategory;\n}\n\nfunction createFactoryInfo(emitter: TypeScriptEmitter, file: GeneratedFile): FactoryInfo {\n const {sourceText, context} =\n emitter.emitStatementsAndContext(file.srcFileUrl, file.genFileUrl, file.stmts !);\n const source = ts.createSourceFile(\n file.genFileUrl, sourceText, ts.ScriptTarget.Latest, /* setParentNodes */ true);\n return {source, context};\n}\n\nclass TypeCheckingHost implements ts.CompilerHost {\n constructor(\n private host: ts.CompilerHost, private originalProgram: ts.Program,\n private factories: Map<string, FactoryInfo>) {}\n\n getSourceFile(\n fileName: string, languageVersion: ts.ScriptTarget,\n onError?: ((message: string) => void)): ts.SourceFile {\n const originalSource = this.originalProgram.getSourceFile(fileName);\n if (originalSource) {\n return originalSource;\n }\n const factoryInfo = this.factories.get(fileName);\n if (factoryInfo) {\n return factoryInfo.source;\n }\n return this.host.getSourceFile(fileName, languageVersion, onError);\n }\n\n getDefaultLibFileName(options: ts.CompilerOptions): string {\n return this.host.getDefaultLibFileName(options);\n }\n\n writeFile: ts.WriteFileCallback =\n () => { throw new Error('Unexpected write in diagnostic program'); };\n\n getCurrentDirectory(): string { return this.host.getCurrentDirectory(); }\n\n getDirectories(path: string): string[] { return this.host.getDirectories(path); }\n\n getCanonicalFileName(fileName: string): string {\n return this.host.getCanonicalFileName(fileName);\n }\n\n useCaseSensitiveFileNames(): boolean { return this.host.useCaseSensitiveFileNames(); }\n\n getNewLine(): string { return this.host.getNewLine(); }\n\n fileExists(fileName: string): boolean {\n return this.factories.has(fileName) || this.host.fileExists(fileName);\n }\n\n readFile(fileName: string): string {\n const factoryInfo = this.factories.get(fileName);\n return (factoryInfo && factoryInfo.source.text) || this.host.readFile(fileName);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"check_types.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/diagnostics/check_types.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, AotCompilerHost, AotCompilerOptions, EmitterVisitorContext, GeneratedFile, NgAnalyzedModules, ParseSourceSpan, Statement, StaticReflector, TypeScriptEmitter, createAotCompiler} from '@angular/compiler';\nimport * as ts from 'typescript';\n\nimport {Diagnostic, DiagnosticCategory} from '../transformers/api';\n\ninterface FactoryInfo {\n source: ts.SourceFile;\n context: EmitterVisitorContext;\n}\n\ntype FactoryInfoMap = Map<string, FactoryInfo>;\n\nconst stubCancellationToken: ts.CancellationToken = {\n isCancellationRequested(): boolean{return false;},\n throwIfCancellationRequested(): void{}\n};\n\nexport class TypeChecker {\n private _aotCompiler: AotCompiler|undefined;\n private _reflector: StaticReflector|undefined;\n private _factories: Map<string, FactoryInfo>|undefined;\n private _factoryNames: string[]|undefined;\n private _diagnosticProgram: ts.Program|undefined;\n private _diagnosticsByFile: Map<string, Diagnostic[]>|undefined;\n private _currentCancellationToken: ts.CancellationToken = stubCancellationToken;\n private _partial: boolean = false;\n\n constructor(\n private program: ts.Program, private tsOptions: ts.CompilerOptions,\n private compilerHost: ts.CompilerHost, private aotCompilerHost: AotCompilerHost,\n private aotOptions: AotCompilerOptions, private _analyzedModules?: NgAnalyzedModules,\n private _generatedFiles?: GeneratedFile[]) {}\n\n getDiagnostics(fileName?: string, cancellationToken?: ts.CancellationToken): Diagnostic[] {\n this._currentCancellationToken = cancellationToken || stubCancellationToken;\n try {\n return fileName ?\n this.diagnosticsByFileName.get(fileName) || [] :\n ([] as Diagnostic[]).concat(...Array.from(this.diagnosticsByFileName.values()));\n } finally {\n this._currentCancellationToken = stubCancellationToken;\n }\n }\n\n get partialResults(): boolean { return this._partial; }\n\n private get analyzedModules(): NgAnalyzedModules {\n return this._analyzedModules || (this._analyzedModules = this.aotCompiler.analyzeModulesSync(\n this.program.getSourceFiles().map(sf => sf.fileName)));\n }\n\n private get diagnosticsByFileName(): Map<string, Diagnostic[]> {\n return this._diagnosticsByFile || this.createDiagnosticsByFile();\n }\n\n private get diagnosticProgram(): ts.Program {\n return this._diagnosticProgram || this.createDiagnosticProgram();\n }\n\n private get generatedFiles(): GeneratedFile[] {\n let result = this._generatedFiles;\n if (!result) {\n this._generatedFiles = result = this.aotCompiler.emitAllImpls(this.analyzedModules);\n }\n return result;\n }\n\n private get aotCompiler(): AotCompiler {\n return this._aotCompiler || this.createCompilerAndReflector();\n }\n\n private get reflector(): StaticReflector {\n let result = this._reflector;\n if (!result) {\n this.createCompilerAndReflector();\n result = this._reflector !;\n }\n return result;\n }\n\n private get factories(): Map<string, FactoryInfo> {\n return this._factories || this.createFactories();\n }\n\n private get factoryNames(): string[] {\n return this._factoryNames || (this.createFactories() && this._factoryNames !);\n }\n\n private createCompilerAndReflector() {\n const {compiler, reflector} = createAotCompiler(this.aotCompilerHost, this.aotOptions);\n this._reflector = reflector;\n return this._aotCompiler = compiler;\n }\n\n private createDiagnosticProgram() {\n // Create a program that is all the files from the original program plus the factories.\n const existingFiles = this.program.getSourceFiles().map(source => source.fileName);\n const host = new TypeCheckingHost(this.compilerHost, this.program, this.factories);\n return this._diagnosticProgram =\n ts.createProgram([...existingFiles, ...this.factoryNames], this.tsOptions, host);\n }\n\n private createFactories() {\n // Create all the factory files with enough information to map the diagnostics reported for the\n // created file back to the original source.\n const emitter = new TypeScriptEmitter();\n const factorySources =\n this.generatedFiles.filter(file => file.stmts != null && file.stmts.length)\n .map<[string, FactoryInfo]>(\n file => [file.genFileUrl, createFactoryInfo(emitter, file)]);\n this._factories = new Map(factorySources);\n this._factoryNames = Array.from(this._factories.keys());\n return this._factories;\n }\n\n private createDiagnosticsByFile() {\n // Collect all the diagnostics binned by original source file name.\n const result = new Map<string, Diagnostic[]>();\n const diagnosticsFor = (fileName: string) => {\n let r = result.get(fileName);\n if (!r) {\n r = [];\n result.set(fileName, r);\n }\n return r;\n };\n const program = this.diagnosticProgram;\n for (const factoryName of this.factoryNames) {\n if (this._currentCancellationToken.isCancellationRequested()) return result;\n const sourceFile = program.getSourceFile(factoryName);\n for (const diagnostic of this.diagnosticProgram.getSemanticDiagnostics(sourceFile)) {\n const span = this.sourceSpanOf(diagnostic.file, diagnostic.start, diagnostic.length);\n if (span) {\n const fileName = span.start.file.url;\n const diagnosticsList = diagnosticsFor(fileName);\n diagnosticsList.push({\n message: diagnosticMessageToString(diagnostic.messageText),\n category: diagnosticCategoryConverter(diagnostic.category), span\n });\n }\n }\n }\n return result;\n }\n\n private sourceSpanOf(source: ts.SourceFile, start: number, length: number): ParseSourceSpan|null {\n // Find the corresponding TypeScript node\n const info = this.factories.get(source.fileName);\n if (info) {\n const {line, character} = ts.getLineAndCharacterOfPosition(source, start);\n return info.context.spanOf(line, character);\n }\n return null;\n }\n}\n\nfunction diagnosticMessageToString(message: ts.DiagnosticMessageChain | string): string {\n return ts.flattenDiagnosticMessageText(message, '\\n');\n}\n\nfunction diagnosticCategoryConverter(kind: ts.DiagnosticCategory) {\n // The diagnostics kind matches ts.DiagnosticCategory. Review this code if this changes.\n return kind as any as DiagnosticCategory;\n}\n\nfunction createFactoryInfo(emitter: TypeScriptEmitter, file: GeneratedFile): FactoryInfo {\n const {sourceText, context} =\n emitter.emitStatementsAndContext(file.srcFileUrl, file.genFileUrl, file.stmts !);\n const source = ts.createSourceFile(\n file.genFileUrl, sourceText, ts.ScriptTarget.Latest, /* setParentNodes */ true);\n return {source, context};\n}\n\nclass TypeCheckingHost implements ts.CompilerHost {\n constructor(\n private host: ts.CompilerHost, private originalProgram: ts.Program,\n private factories: Map<string, FactoryInfo>) {}\n\n getSourceFile(\n fileName: string, languageVersion: ts.ScriptTarget,\n onError?: ((message: string) => void)): ts.SourceFile {\n const originalSource = this.originalProgram.getSourceFile(fileName);\n if (originalSource) {\n return originalSource;\n }\n const factoryInfo = this.factories.get(fileName);\n if (factoryInfo) {\n return factoryInfo.source;\n }\n return this.host.getSourceFile(fileName, languageVersion, onError);\n }\n\n getDefaultLibFileName(options: ts.CompilerOptions): string {\n return this.host.getDefaultLibFileName(options);\n }\n\n writeFile: ts.WriteFileCallback =\n () => { throw new Error('Unexpected write in diagnostic program'); }\n\n getCurrentDirectory(): string {\n return this.host.getCurrentDirectory();\n }\n\n getDirectories(path: string): string[] { return this.host.getDirectories(path); }\n\n getCanonicalFileName(fileName: string): string {\n return this.host.getCanonicalFileName(fileName);\n }\n\n useCaseSensitiveFileNames(): boolean { return this.host.useCaseSensitiveFileNames(); }\n\n getNewLine(): string { return this.host.getNewLine(); }\n\n fileExists(fileName: string): boolean {\n return this.factories.has(fileName) || this.host.fileExists(fileName);\n }\n\n readFile(fileName: string): string {\n const factoryInfo = this.factories.get(fileName);\n return (factoryInfo && factoryInfo.source.text) || this.host.readFile(fileName);\n }\n}\n"]}
|
|
@@ -218,7 +218,6 @@ var _NodeEmitterVisitor = (function () {
|
|
|
218
218
|
_NodeEmitterVisitor.prototype.visitConditionalExpr = function (expr) {
|
|
219
219
|
// TODO {chuckj}: Review use of ! on flaseCase. Should it be non-nullable?
|
|
220
220
|
return this.record(expr, ts.createConditional(expr.condition.visitExpression(this, null), expr.trueCase.visitExpression(this, null), expr.falseCase.visitExpression(this, null)));
|
|
221
|
-
;
|
|
222
221
|
};
|
|
223
222
|
_NodeEmitterVisitor.prototype.visitNotExpr = function (expr) {
|
|
224
223
|
return this.record(expr, ts.createPrefix(ts.SyntaxKind.ExclamationToken, expr.condition.visitExpression(this, null)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node_emitter.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/node_emitter.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 {AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, CompileIdentifierMetadata, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExpressionVisitor, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ParseSourceSpan, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, Statement, StatementVisitor, StaticSymbol, StmtModifier, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr} from '@angular/compiler';\nimport * as ts from 'typescript';\n\nexport interface Node { sourceSpan: ParseSourceSpan|null; }\n\nconst METHOD_THIS_NAME = 'this';\nconst CATCH_ERROR_NAME = 'error';\nconst CATCH_STACK_NAME = 'stack';\n\nexport class TypeScriptNodeEmitter {\n updateSourceFile(sourceFile: ts.SourceFile, stmts: Statement[], preamble?: string):\n [ts.SourceFile, Map<ts.Node, Node>] {\n const converter = new _NodeEmitterVisitor();\n const statements =\n stmts.map(stmt => stmt.visitStatement(converter, null)).filter(stmt => stmt != null);\n const newSourceFile = ts.updateSourceFileNode(\n sourceFile, [...converter.getReexports(), ...converter.getImports(), ...statements]);\n if (preamble) {\n if (preamble.startsWith('/*') && preamble.endsWith('*/')) {\n preamble = preamble.substr(2, preamble.length - 4);\n }\n if (!statements.length) {\n statements.push(ts.createEmptyStatement());\n }\n statements[0] = ts.setSyntheticLeadingComments(\n statements[0],\n [{kind: ts.SyntaxKind.MultiLineCommentTrivia, text: preamble, pos: -1, end: -1}]);\n }\n return [newSourceFile, converter.getNodeMap()];\n }\n}\n\n// A recorded node is a subtype of the node that is marked as being recoreded. This is used\n// to ensure that NodeEmitterVisitor.record has been called on all nodes returned by the\n// NodeEmitterVisitor\ntype RecordedNode<T extends ts.Node = ts.Node> = (T & { __recorded: any; }) | null;\n\nfunction createLiteral(value: any) {\n if (value === null) {\n return ts.createNull();\n } else if (value === undefined) {\n return ts.createIdentifier('undefined');\n } else {\n return ts.createLiteral(value);\n }\n}\n\n/**\n * Visits an output ast and produces the corresponding TypeScript synthetic nodes.\n */\nclass _NodeEmitterVisitor implements StatementVisitor, ExpressionVisitor {\n private _nodeMap = new Map<ts.Node, Node>();\n private _importsWithPrefixes = new Map<string, string>();\n private _reexports = new Map<string, {name: string, as: string}[]>();\n\n getReexports(): ts.Statement[] {\n return Array.from(this._reexports.entries())\n .map(\n ([exportedFilePath, reexports]) => ts.createExportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined, ts.createNamedExports(reexports.map(\n ({name, as}) => ts.createExportSpecifier(name, as))),\n /* moduleSpecifier */ createLiteral(exportedFilePath)));\n }\n\n getImports(): ts.Statement[] {\n return Array.from(this._importsWithPrefixes.entries())\n .map(\n ([namespace, prefix]) => ts.createImportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* importClause */ ts.createImportClause(\n /* name */<ts.Identifier>(undefined as any),\n ts.createNamespaceImport(ts.createIdentifier(prefix))),\n /* moduleSpecifier */ createLiteral(namespace)));\n }\n\n getNodeMap() { return this._nodeMap; }\n\n private record<T extends ts.Node>(ngNode: Node, tsNode: T|null): RecordedNode<T> {\n if (tsNode && !this._nodeMap.has(tsNode)) {\n this._nodeMap.set(tsNode, ngNode);\n ts.forEachChild(tsNode, child => this.record(ngNode, tsNode));\n }\n return tsNode as RecordedNode<T>;\n }\n\n private getModifiers(stmt: Statement) {\n let modifiers: ts.Modifier[] = [];\n if (stmt.hasModifier(StmtModifier.Exported)) {\n modifiers.push(ts.createToken(ts.SyntaxKind.ExportKeyword));\n }\n return modifiers;\n }\n\n // StatementVisitor\n visitDeclareVarStmt(stmt: DeclareVarStmt) {\n if (stmt.hasModifier(StmtModifier.Exported) && stmt.value instanceof ExternalExpr &&\n !stmt.type) {\n // check for a reexport\n const {name, moduleName} = stmt.value.value;\n if (moduleName) {\n let reexports = this._reexports.get(moduleName);\n if (!reexports) {\n reexports = [];\n this._reexports.set(moduleName, reexports);\n }\n reexports.push({name: name !, as: stmt.name});\n return null;\n }\n }\n\n return this.record(\n stmt, ts.createVariableStatement(\n this.getModifiers(stmt),\n ts.createVariableDeclarationList([ts.createVariableDeclaration(\n ts.createIdentifier(stmt.name),\n /* type */ undefined,\n (stmt.value && stmt.value.visitExpression(this, null)) || undefined)])));\n }\n\n visitDeclareFunctionStmt(stmt: DeclareFunctionStmt, context: any) {\n return this.record(\n stmt, ts.createFunctionDeclaration(\n /* decorators */ undefined, this.getModifiers(stmt),\n /* astrictToken */ undefined, stmt.name, /* typeParameters */ undefined,\n stmt.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(stmt.statements)));\n }\n\n visitExpressionStmt(stmt: ExpressionStatement) {\n return this.record(stmt, ts.createStatement(stmt.expr.visitExpression(this, null)));\n }\n\n visitReturnStmt(stmt: ReturnStatement) {\n return this.record(\n stmt, ts.createReturn(stmt.value ? stmt.value.visitExpression(this, null) : undefined));\n }\n\n visitDeclareClassStmt(stmt: ClassStmt) {\n const modifiers = this.getModifiers(stmt);\n const fields = stmt.fields.map(\n field => ts.createProperty(\n /* decorators */ undefined, /* modifiers */ undefined, field.name,\n /* questionToken */ undefined,\n /* type */ undefined, ts.createNull()));\n const getters = stmt.getters.map(\n getter => ts.createGetAccessor(\n /* decorators */ undefined, /* modifiers */ undefined, getter.name, /* parameters */[],\n /* type */ undefined, this._visitStatements(getter.body)));\n\n const constructor =\n (stmt.constructorMethod && [ts.createConstructor(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* parameters */ stmt.constructorMethod.params.map(\n p => ts.createParameter(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n this._visitStatements(stmt.constructorMethod.body))]) ||\n [];\n\n // TODO {chuckj}: Determine what should be done for a method with a null name.\n const methods = stmt.methods.filter(method => method.name)\n .map(\n method => ts.createMethodDeclaration(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* astriskToken */ undefined, method.name !/* guarded by filter */,\n /* questionToken */ undefined, /* typeParameters */ undefined,\n method.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(method.body)));\n return this.record(\n stmt, ts.createClassDeclaration(\n /* decorators */ undefined, modifiers, stmt.name, /* typeParameters*/ undefined,\n stmt.parent && [ts.createHeritageClause(\n ts.SyntaxKind.ExtendsKeyword,\n [stmt.parent.visitExpression(this, null)])] ||\n [],\n [...fields, ...getters, ...constructor, ...methods]));\n }\n\n visitIfStmt(stmt: IfStmt) {\n return this.record(\n stmt,\n ts.createIf(\n stmt.condition.visitExpression(this, null), this._visitStatements(stmt.trueCase),\n stmt.falseCase && stmt.falseCase.length && this._visitStatements(stmt.falseCase) ||\n undefined));\n }\n\n visitTryCatchStmt(stmt: TryCatchStmt): RecordedNode<ts.TryStatement> {\n return this.record(\n stmt, ts.createTry(\n this._visitStatements(stmt.bodyStmts),\n ts.createCatchClause(\n CATCH_ERROR_NAME, this._visitStatementsPrefix(\n [ts.createVariableStatement(\n /* modifiers */ undefined,\n [ts.createVariableDeclaration(\n CATCH_STACK_NAME, /* type */ undefined,\n ts.createPropertyAccess(\n ts.createIdentifier(CATCH_ERROR_NAME),\n ts.createIdentifier(CATCH_STACK_NAME)))])],\n stmt.catchStmts)),\n /* finallyBlock */ undefined));\n }\n\n visitThrowStmt(stmt: ThrowStmt) {\n return this.record(stmt, ts.createThrow(stmt.error.visitExpression(this, null)));\n }\n\n visitCommentStmt(stmt: CommentStmt) { return null; }\n\n // ExpressionVisitor\n visitReadVarExpr(expr: ReadVarExpr) {\n switch (expr.builtin) {\n case BuiltinVar.This:\n return this.record(expr, ts.createIdentifier(METHOD_THIS_NAME));\n case BuiltinVar.CatchError:\n return this.record(expr, ts.createIdentifier(CATCH_ERROR_NAME));\n case BuiltinVar.CatchStack:\n return this.record(expr, ts.createIdentifier(CATCH_STACK_NAME));\n case BuiltinVar.Super:\n return this.record(expr, ts.createSuper());\n }\n if (expr.name) {\n return this.record(expr, ts.createIdentifier(expr.name));\n }\n throw Error(`Unexpected ReadVarExpr form`);\n }\n\n visitWriteVarExpr(expr: WriteVarExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createIdentifier(expr.name), expr.value.visitExpression(this, null)));\n }\n\n visitWriteKeyExpr(expr: WriteKeyExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr,\n ts.createAssignment(\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)),\n expr.value.visitExpression(this, null)));\n }\n\n visitWritePropExpr(expr: WritePropExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name),\n expr.value.visitExpression(this, null)));\n }\n\n visitInvokeMethodExpr(expr: InvokeMethodExpr): RecordedNode<ts.CallExpression> {\n const methodName = getMethodName(expr);\n return this.record(\n expr,\n ts.createCall(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), methodName),\n /* typeArguments */ undefined, expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInvokeFunctionExpr(expr: InvokeFunctionExpr): RecordedNode<ts.CallExpression> {\n return this.record(\n expr, ts.createCall(\n expr.fn.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInstantiateExpr(expr: InstantiateExpr): RecordedNode<ts.NewExpression> {\n return this.record(\n expr, ts.createNew(\n expr.classExpr.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitLiteralExpr(expr: LiteralExpr) { return this.record(expr, createLiteral(expr.value)); }\n\n visitExternalExpr(expr: ExternalExpr) {\n return this.record(expr, this._visitIdentifier(expr.value));\n }\n\n visitConditionalExpr(expr: ConditionalExpr): RecordedNode<ts.ConditionalExpression> {\n // TODO {chuckj}: Review use of ! on flaseCase. Should it be non-nullable?\n return this.record(\n expr,\n ts.createConditional(\n expr.condition.visitExpression(this, null), expr.trueCase.visitExpression(this, null),\n expr.falseCase !.visitExpression(this, null)));\n ;\n }\n\n visitNotExpr(expr: NotExpr): RecordedNode<ts.PrefixUnaryExpression> {\n return this.record(\n expr, ts.createPrefix(\n ts.SyntaxKind.ExclamationToken, expr.condition.visitExpression(this, null)));\n }\n\n visitAssertNotNullExpr(expr: AssertNotNull): RecordedNode<ts.Expression> {\n return expr.condition.visitExpression(this, null);\n }\n\n visitCastExpr(expr: CastExpr): RecordedNode<ts.Expression> {\n return expr.value.visitExpression(this, null);\n }\n\n visitFunctionExpr(expr: FunctionExpr) {\n return this.record(\n expr, ts.createFunctionExpression(\n /* modifiers */ undefined, /* astriskToken */ undefined, /* name */ undefined,\n /* typeParameters */ undefined,\n expr.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(expr.statements)));\n }\n\n visitBinaryOperatorExpr(expr: BinaryOperatorExpr): RecordedNode<ts.BinaryExpression> {\n let binaryOperator: ts.BinaryOperator;\n switch (expr.operator) {\n case BinaryOperator.And:\n binaryOperator = ts.SyntaxKind.AmpersandAmpersandToken;\n break;\n case BinaryOperator.Bigger:\n binaryOperator = ts.SyntaxKind.GreaterThanToken;\n break;\n case BinaryOperator.BiggerEquals:\n binaryOperator = ts.SyntaxKind.GreaterThanEqualsToken;\n break;\n case BinaryOperator.Divide:\n binaryOperator = ts.SyntaxKind.SlashToken;\n break;\n case BinaryOperator.Equals:\n binaryOperator = ts.SyntaxKind.EqualsEqualsToken;\n break;\n case BinaryOperator.Identical:\n binaryOperator = ts.SyntaxKind.EqualsEqualsEqualsToken;\n break;\n case BinaryOperator.Lower:\n binaryOperator = ts.SyntaxKind.LessThanToken;\n break;\n case BinaryOperator.LowerEquals:\n binaryOperator = ts.SyntaxKind.LessThanEqualsToken;\n break;\n case BinaryOperator.Minus:\n binaryOperator = ts.SyntaxKind.MinusToken;\n break;\n case BinaryOperator.Modulo:\n binaryOperator = ts.SyntaxKind.PercentToken;\n break;\n case BinaryOperator.Multiply:\n binaryOperator = ts.SyntaxKind.AsteriskToken;\n break;\n case BinaryOperator.NotEquals:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsToken;\n break;\n case BinaryOperator.NotIdentical:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsEqualsToken;\n break;\n case BinaryOperator.Or:\n binaryOperator = ts.SyntaxKind.BarBarToken;\n break;\n case BinaryOperator.Plus:\n binaryOperator = ts.SyntaxKind.PlusToken;\n break;\n default:\n throw new Error(`Unknown operator: ${expr.operator}`);\n }\n return this.record(\n expr, ts.createBinary(\n expr.lhs.visitExpression(this, null), binaryOperator,\n expr.rhs.visitExpression(this, null)));\n }\n\n visitReadPropExpr(expr: ReadPropExpr): RecordedNode<ts.PropertyAccessExpression> {\n return this.record(\n expr, ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name));\n }\n\n visitReadKeyExpr(expr: ReadKeyExpr): RecordedNode<ts.ElementAccessExpression> {\n return this.record(\n expr,\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)));\n }\n\n visitLiteralArrayExpr(expr: LiteralArrayExpr): RecordedNode<ts.ArrayLiteralExpression> {\n return this.record(\n expr, ts.createArrayLiteral(expr.entries.map(entry => entry.visitExpression(this, null))));\n }\n\n visitLiteralMapExpr(expr: LiteralMapExpr): RecordedNode<ts.ObjectLiteralExpression> {\n return this.record(\n expr, ts.createObjectLiteral(expr.entries.map(\n entry => ts.createPropertyAssignment(\n entry.quoted ? ts.createLiteral(entry.key) : entry.key,\n entry.value.visitExpression(this, null)))));\n }\n\n visitCommaExpr(expr: CommaExpr): RecordedNode<ts.Expression> {\n return this.record(\n expr, expr.parts.map(e => e.visitExpression(this, null))\n .reduce<ts.Expression|null>(\n (left, right) =>\n left ? ts.createBinary(left, ts.SyntaxKind.CommaToken, right) : right,\n null));\n }\n\n private _visitStatements(statements: Statement[]): ts.Block {\n return this._visitStatementsPrefix([], statements);\n }\n\n private _visitStatementsPrefix(prefix: ts.Statement[], statements: Statement[]) {\n return ts.createBlock([\n ...prefix, ...statements.map(stmt => stmt.visitStatement(this, null)).filter(f => f != null)\n ]);\n }\n\n private _visitIdentifier(value: ExternalReference): ts.Expression {\n const {name, moduleName} = value;\n let prefixIdent: ts.Identifier|null = null;\n if (moduleName) {\n let prefix = this._importsWithPrefixes.get(moduleName);\n if (prefix == null) {\n prefix = `i${this._importsWithPrefixes.size}`;\n this._importsWithPrefixes.set(moduleName, prefix);\n }\n prefixIdent = ts.createIdentifier(prefix);\n }\n // name can only be null during JIT which never executes this code.\n let result: ts.Expression =\n prefixIdent ? ts.createPropertyAccess(prefixIdent, name !) : ts.createIdentifier(name !);\n return result;\n }\n}\n\n\nfunction getMethodName(methodRef: {name: string | null; builtin: BuiltinMethod | null}): string {\n if (methodRef.name) {\n return methodRef.name;\n } else {\n switch (methodRef.builtin) {\n case BuiltinMethod.Bind:\n return 'bind';\n case BuiltinMethod.ConcatArray:\n return 'concat';\n case BuiltinMethod.SubscribeObservable:\n return 'subscribe';\n }\n }\n throw new Error('Unexpected method reference form');\n}\n"]}
|
|
1
|
+
{"version":3,"file":"node_emitter.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/node_emitter.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 {AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, CompileIdentifierMetadata, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExpressionVisitor, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ParseSourceSpan, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, Statement, StatementVisitor, StaticSymbol, StmtModifier, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr} from '@angular/compiler';\nimport * as ts from 'typescript';\n\nexport interface Node { sourceSpan: ParseSourceSpan|null; }\n\nconst METHOD_THIS_NAME = 'this';\nconst CATCH_ERROR_NAME = 'error';\nconst CATCH_STACK_NAME = 'stack';\n\nexport class TypeScriptNodeEmitter {\n updateSourceFile(sourceFile: ts.SourceFile, stmts: Statement[], preamble?: string):\n [ts.SourceFile, Map<ts.Node, Node>] {\n const converter = new _NodeEmitterVisitor();\n const statements =\n stmts.map(stmt => stmt.visitStatement(converter, null)).filter(stmt => stmt != null);\n const newSourceFile = ts.updateSourceFileNode(\n sourceFile, [...converter.getReexports(), ...converter.getImports(), ...statements]);\n if (preamble) {\n if (preamble.startsWith('/*') && preamble.endsWith('*/')) {\n preamble = preamble.substr(2, preamble.length - 4);\n }\n if (!statements.length) {\n statements.push(ts.createEmptyStatement());\n }\n statements[0] = ts.setSyntheticLeadingComments(\n statements[0],\n [{kind: ts.SyntaxKind.MultiLineCommentTrivia, text: preamble, pos: -1, end: -1}]);\n }\n return [newSourceFile, converter.getNodeMap()];\n }\n}\n\n// A recorded node is a subtype of the node that is marked as being recoreded. This is used\n// to ensure that NodeEmitterVisitor.record has been called on all nodes returned by the\n// NodeEmitterVisitor\ntype RecordedNode<T extends ts.Node = ts.Node> = (T & { __recorded: any; }) | null;\n\nfunction createLiteral(value: any) {\n if (value === null) {\n return ts.createNull();\n } else if (value === undefined) {\n return ts.createIdentifier('undefined');\n } else {\n return ts.createLiteral(value);\n }\n}\n\n/**\n * Visits an output ast and produces the corresponding TypeScript synthetic nodes.\n */\nclass _NodeEmitterVisitor implements StatementVisitor, ExpressionVisitor {\n private _nodeMap = new Map<ts.Node, Node>();\n private _importsWithPrefixes = new Map<string, string>();\n private _reexports = new Map<string, {name: string, as: string}[]>();\n\n getReexports(): ts.Statement[] {\n return Array.from(this._reexports.entries())\n .map(\n ([exportedFilePath, reexports]) => ts.createExportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined, ts.createNamedExports(reexports.map(\n ({name, as}) => ts.createExportSpecifier(name, as))),\n /* moduleSpecifier */ createLiteral(exportedFilePath)));\n }\n\n getImports(): ts.Statement[] {\n return Array.from(this._importsWithPrefixes.entries())\n .map(\n ([namespace, prefix]) => ts.createImportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* importClause */ ts.createImportClause(\n /* name */<ts.Identifier>(undefined as any),\n ts.createNamespaceImport(ts.createIdentifier(prefix))),\n /* moduleSpecifier */ createLiteral(namespace)));\n }\n\n getNodeMap() { return this._nodeMap; }\n\n private record<T extends ts.Node>(ngNode: Node, tsNode: T|null): RecordedNode<T> {\n if (tsNode && !this._nodeMap.has(tsNode)) {\n this._nodeMap.set(tsNode, ngNode);\n ts.forEachChild(tsNode, child => this.record(ngNode, tsNode));\n }\n return tsNode as RecordedNode<T>;\n }\n\n private getModifiers(stmt: Statement) {\n let modifiers: ts.Modifier[] = [];\n if (stmt.hasModifier(StmtModifier.Exported)) {\n modifiers.push(ts.createToken(ts.SyntaxKind.ExportKeyword));\n }\n return modifiers;\n }\n\n // StatementVisitor\n visitDeclareVarStmt(stmt: DeclareVarStmt) {\n if (stmt.hasModifier(StmtModifier.Exported) && stmt.value instanceof ExternalExpr &&\n !stmt.type) {\n // check for a reexport\n const {name, moduleName} = stmt.value.value;\n if (moduleName) {\n let reexports = this._reexports.get(moduleName);\n if (!reexports) {\n reexports = [];\n this._reexports.set(moduleName, reexports);\n }\n reexports.push({name: name !, as: stmt.name});\n return null;\n }\n }\n\n return this.record(\n stmt, ts.createVariableStatement(\n this.getModifiers(stmt),\n ts.createVariableDeclarationList([ts.createVariableDeclaration(\n ts.createIdentifier(stmt.name),\n /* type */ undefined,\n (stmt.value && stmt.value.visitExpression(this, null)) || undefined)])));\n }\n\n visitDeclareFunctionStmt(stmt: DeclareFunctionStmt, context: any) {\n return this.record(\n stmt, ts.createFunctionDeclaration(\n /* decorators */ undefined, this.getModifiers(stmt),\n /* astrictToken */ undefined, stmt.name, /* typeParameters */ undefined,\n stmt.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(stmt.statements)));\n }\n\n visitExpressionStmt(stmt: ExpressionStatement) {\n return this.record(stmt, ts.createStatement(stmt.expr.visitExpression(this, null)));\n }\n\n visitReturnStmt(stmt: ReturnStatement) {\n return this.record(\n stmt, ts.createReturn(stmt.value ? stmt.value.visitExpression(this, null) : undefined));\n }\n\n visitDeclareClassStmt(stmt: ClassStmt) {\n const modifiers = this.getModifiers(stmt);\n const fields = stmt.fields.map(\n field => ts.createProperty(\n /* decorators */ undefined, /* modifiers */ undefined, field.name,\n /* questionToken */ undefined,\n /* type */ undefined, ts.createNull()));\n const getters = stmt.getters.map(\n getter => ts.createGetAccessor(\n /* decorators */ undefined, /* modifiers */ undefined, getter.name, /* parameters */[],\n /* type */ undefined, this._visitStatements(getter.body)));\n\n const constructor =\n (stmt.constructorMethod && [ts.createConstructor(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* parameters */ stmt.constructorMethod.params.map(\n p => ts.createParameter(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n this._visitStatements(stmt.constructorMethod.body))]) ||\n [];\n\n // TODO {chuckj}: Determine what should be done for a method with a null name.\n const methods = stmt.methods.filter(method => method.name)\n .map(\n method => ts.createMethodDeclaration(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* astriskToken */ undefined, method.name !/* guarded by filter */,\n /* questionToken */ undefined, /* typeParameters */ undefined,\n method.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(method.body)));\n return this.record(\n stmt, ts.createClassDeclaration(\n /* decorators */ undefined, modifiers, stmt.name, /* typeParameters*/ undefined,\n stmt.parent && [ts.createHeritageClause(\n ts.SyntaxKind.ExtendsKeyword,\n [stmt.parent.visitExpression(this, null)])] ||\n [],\n [...fields, ...getters, ...constructor, ...methods]));\n }\n\n visitIfStmt(stmt: IfStmt) {\n return this.record(\n stmt,\n ts.createIf(\n stmt.condition.visitExpression(this, null), this._visitStatements(stmt.trueCase),\n stmt.falseCase && stmt.falseCase.length && this._visitStatements(stmt.falseCase) ||\n undefined));\n }\n\n visitTryCatchStmt(stmt: TryCatchStmt): RecordedNode<ts.TryStatement> {\n return this.record(\n stmt, ts.createTry(\n this._visitStatements(stmt.bodyStmts),\n ts.createCatchClause(\n CATCH_ERROR_NAME, this._visitStatementsPrefix(\n [ts.createVariableStatement(\n /* modifiers */ undefined,\n [ts.createVariableDeclaration(\n CATCH_STACK_NAME, /* type */ undefined,\n ts.createPropertyAccess(\n ts.createIdentifier(CATCH_ERROR_NAME),\n ts.createIdentifier(CATCH_STACK_NAME)))])],\n stmt.catchStmts)),\n /* finallyBlock */ undefined));\n }\n\n visitThrowStmt(stmt: ThrowStmt) {\n return this.record(stmt, ts.createThrow(stmt.error.visitExpression(this, null)));\n }\n\n visitCommentStmt(stmt: CommentStmt) { return null; }\n\n // ExpressionVisitor\n visitReadVarExpr(expr: ReadVarExpr) {\n switch (expr.builtin) {\n case BuiltinVar.This:\n return this.record(expr, ts.createIdentifier(METHOD_THIS_NAME));\n case BuiltinVar.CatchError:\n return this.record(expr, ts.createIdentifier(CATCH_ERROR_NAME));\n case BuiltinVar.CatchStack:\n return this.record(expr, ts.createIdentifier(CATCH_STACK_NAME));\n case BuiltinVar.Super:\n return this.record(expr, ts.createSuper());\n }\n if (expr.name) {\n return this.record(expr, ts.createIdentifier(expr.name));\n }\n throw Error(`Unexpected ReadVarExpr form`);\n }\n\n visitWriteVarExpr(expr: WriteVarExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createIdentifier(expr.name), expr.value.visitExpression(this, null)));\n }\n\n visitWriteKeyExpr(expr: WriteKeyExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr,\n ts.createAssignment(\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)),\n expr.value.visitExpression(this, null)));\n }\n\n visitWritePropExpr(expr: WritePropExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name),\n expr.value.visitExpression(this, null)));\n }\n\n visitInvokeMethodExpr(expr: InvokeMethodExpr): RecordedNode<ts.CallExpression> {\n const methodName = getMethodName(expr);\n return this.record(\n expr,\n ts.createCall(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), methodName),\n /* typeArguments */ undefined, expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInvokeFunctionExpr(expr: InvokeFunctionExpr): RecordedNode<ts.CallExpression> {\n return this.record(\n expr, ts.createCall(\n expr.fn.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInstantiateExpr(expr: InstantiateExpr): RecordedNode<ts.NewExpression> {\n return this.record(\n expr, ts.createNew(\n expr.classExpr.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitLiteralExpr(expr: LiteralExpr) { return this.record(expr, createLiteral(expr.value)); }\n\n visitExternalExpr(expr: ExternalExpr) {\n return this.record(expr, this._visitIdentifier(expr.value));\n }\n\n visitConditionalExpr(expr: ConditionalExpr): RecordedNode<ts.ConditionalExpression> {\n // TODO {chuckj}: Review use of ! on flaseCase. Should it be non-nullable?\n return this.record(\n expr,\n ts.createConditional(\n expr.condition.visitExpression(this, null), expr.trueCase.visitExpression(this, null),\n expr.falseCase !.visitExpression(this, null)));\n }\n\n visitNotExpr(expr: NotExpr): RecordedNode<ts.PrefixUnaryExpression> {\n return this.record(\n expr, ts.createPrefix(\n ts.SyntaxKind.ExclamationToken, expr.condition.visitExpression(this, null)));\n }\n\n visitAssertNotNullExpr(expr: AssertNotNull): RecordedNode<ts.Expression> {\n return expr.condition.visitExpression(this, null);\n }\n\n visitCastExpr(expr: CastExpr): RecordedNode<ts.Expression> {\n return expr.value.visitExpression(this, null);\n }\n\n visitFunctionExpr(expr: FunctionExpr) {\n return this.record(\n expr, ts.createFunctionExpression(\n /* modifiers */ undefined, /* astriskToken */ undefined, /* name */ undefined,\n /* typeParameters */ undefined,\n expr.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(expr.statements)));\n }\n\n visitBinaryOperatorExpr(expr: BinaryOperatorExpr): RecordedNode<ts.BinaryExpression> {\n let binaryOperator: ts.BinaryOperator;\n switch (expr.operator) {\n case BinaryOperator.And:\n binaryOperator = ts.SyntaxKind.AmpersandAmpersandToken;\n break;\n case BinaryOperator.Bigger:\n binaryOperator = ts.SyntaxKind.GreaterThanToken;\n break;\n case BinaryOperator.BiggerEquals:\n binaryOperator = ts.SyntaxKind.GreaterThanEqualsToken;\n break;\n case BinaryOperator.Divide:\n binaryOperator = ts.SyntaxKind.SlashToken;\n break;\n case BinaryOperator.Equals:\n binaryOperator = ts.SyntaxKind.EqualsEqualsToken;\n break;\n case BinaryOperator.Identical:\n binaryOperator = ts.SyntaxKind.EqualsEqualsEqualsToken;\n break;\n case BinaryOperator.Lower:\n binaryOperator = ts.SyntaxKind.LessThanToken;\n break;\n case BinaryOperator.LowerEquals:\n binaryOperator = ts.SyntaxKind.LessThanEqualsToken;\n break;\n case BinaryOperator.Minus:\n binaryOperator = ts.SyntaxKind.MinusToken;\n break;\n case BinaryOperator.Modulo:\n binaryOperator = ts.SyntaxKind.PercentToken;\n break;\n case BinaryOperator.Multiply:\n binaryOperator = ts.SyntaxKind.AsteriskToken;\n break;\n case BinaryOperator.NotEquals:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsToken;\n break;\n case BinaryOperator.NotIdentical:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsEqualsToken;\n break;\n case BinaryOperator.Or:\n binaryOperator = ts.SyntaxKind.BarBarToken;\n break;\n case BinaryOperator.Plus:\n binaryOperator = ts.SyntaxKind.PlusToken;\n break;\n default:\n throw new Error(`Unknown operator: ${expr.operator}`);\n }\n return this.record(\n expr, ts.createBinary(\n expr.lhs.visitExpression(this, null), binaryOperator,\n expr.rhs.visitExpression(this, null)));\n }\n\n visitReadPropExpr(expr: ReadPropExpr): RecordedNode<ts.PropertyAccessExpression> {\n return this.record(\n expr, ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name));\n }\n\n visitReadKeyExpr(expr: ReadKeyExpr): RecordedNode<ts.ElementAccessExpression> {\n return this.record(\n expr,\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)));\n }\n\n visitLiteralArrayExpr(expr: LiteralArrayExpr): RecordedNode<ts.ArrayLiteralExpression> {\n return this.record(\n expr, ts.createArrayLiteral(expr.entries.map(entry => entry.visitExpression(this, null))));\n }\n\n visitLiteralMapExpr(expr: LiteralMapExpr): RecordedNode<ts.ObjectLiteralExpression> {\n return this.record(\n expr, ts.createObjectLiteral(expr.entries.map(\n entry => ts.createPropertyAssignment(\n entry.quoted ? ts.createLiteral(entry.key) : entry.key,\n entry.value.visitExpression(this, null)))));\n }\n\n visitCommaExpr(expr: CommaExpr): RecordedNode<ts.Expression> {\n return this.record(\n expr, expr.parts.map(e => e.visitExpression(this, null))\n .reduce<ts.Expression|null>(\n (left, right) =>\n left ? ts.createBinary(left, ts.SyntaxKind.CommaToken, right) : right,\n null));\n }\n\n private _visitStatements(statements: Statement[]): ts.Block {\n return this._visitStatementsPrefix([], statements);\n }\n\n private _visitStatementsPrefix(prefix: ts.Statement[], statements: Statement[]) {\n return ts.createBlock([\n ...prefix, ...statements.map(stmt => stmt.visitStatement(this, null)).filter(f => f != null)\n ]);\n }\n\n private _visitIdentifier(value: ExternalReference): ts.Expression {\n const {name, moduleName} = value;\n let prefixIdent: ts.Identifier|null = null;\n if (moduleName) {\n let prefix = this._importsWithPrefixes.get(moduleName);\n if (prefix == null) {\n prefix = `i${this._importsWithPrefixes.size}`;\n this._importsWithPrefixes.set(moduleName, prefix);\n }\n prefixIdent = ts.createIdentifier(prefix);\n }\n // name can only be null during JIT which never executes this code.\n let result: ts.Expression =\n prefixIdent ? ts.createPropertyAccess(prefixIdent, name !) : ts.createIdentifier(name !);\n return result;\n }\n}\n\n\nfunction getMethodName(methodRef: {name: string | null; builtin: BuiltinMethod | null}): string {\n if (methodRef.name) {\n return methodRef.name;\n } else {\n switch (methodRef.builtin) {\n case BuiltinMethod.Bind:\n return 'bind';\n case BuiltinMethod.ConcatArray:\n return 'concat';\n case BuiltinMethod.SubscribeObservable:\n return 'subscribe';\n }\n }\n throw new Error('Unexpected method reference form');\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
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 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"]}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/program.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,8CAAgJ;AAChJ,oDAAuE;AACvE,yBAAiC;AACjC,2BAA6B;AAC7B,+BAAiC;AAEjC,kDAAsF;AACtF,0DAAuD;AAEvD,6BAAwG;AACxG,mEAA2E;AAE3E,IAAM,eAAe,GAAG,kDAAkD,CAAC;AAC3E,IAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAE/C,IAAM,YAAY,GAAsB;IACtC,SAAS,EAAE,EAAE;IACb,yBAAyB,EAAE,IAAI,GAAG,EAAE;IACpC,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;IAoBE,gCACY,SAAmB,EAAU,OAAwB,EAAU,IAAkB,EACjF,UAAoB;QADpB,cAAS,GAAT,SAAS,CAAU;QAAU,YAAO,GAAP,OAAO,CAAiB;QAAU,SAAI,GAAJ,IAAI,CAAc;QACjF,eAAU,GAAV,UAAU,CAAU;QAZxB,2BAAsB,GAAiB,EAAE,CAAC;QAahD,IAAI,CAAC,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC;QAEvE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,QAAQ,EAAX,CAAW,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,GAAG,IAAI,4BAAe,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1E,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QACM,IAAA,+EAAQ,CAAqD;QACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,+BAAiB,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,CAAC;IAED,yBAAyB;IACzB,6CAAY,GAAZ,cAA6B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE5D,uDAAsB,GAAtB,UAAuB,iBAAwC;QAC7D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAED,uDAAsB,GAAtB,UAAuB,iBAAwC;QAC7D,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,0DAAyB,GAAzB,UAA0B,UAA0B,EAAE,iBAAwC;QAE5F,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC/E,CAAC;IAED,2DAA0B,GAA1B,UAA2B,iBAAwC;QACjE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,yDAAwB,GAAxB,UAAyB,UAA0B,EAAE,iBAAwC;QAE3F,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,yDAAwB,GAAxB,UAAyB,QAAiB,EAAE,iBAAwC;QAElF,IAAM,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAE1D,gGAAgG;QAChG,MAAM;QACN,EAAE,CAAC,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,CAAC;YAAC,MAAM,CAAC,mBAAmB,CAAC;QAElF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACtE,CAAC;IAED,qDAAoB,GAApB;QAAA,iBASC;QARC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;aACnD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzC,IAAI,CAAC,UAAA,eAAe;YACnB,EAAE,CAAC,CAAC,KAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,KAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAC1C,CAAC,CAAC,CAAC;IACT,CAAC;IAED,8CAAa,GAAb,UAAc,iBAAwC,IAA+B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjG,qCAAI,GAAJ,UAAK,EACqE;QAD1E,iBAuBC;YAvBK,iBAA6B,EAA7B,wDAA6B,EAAE,wCAAiB;QAEpD,IAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI;QACrC,sBAAsB,CAAC,SAAS,EAChC,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EACpF,iBAAiB,EAAE,CAAC,SAAS,GAAG,CAAC,eAAS,CAAC,GAAG,GAAG,eAAS,CAAC,EAAE,CAAC,CAAC,IAAI,eAAS,CAAC,GAAG,EAAE;YAChF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,EAAE,GAAG,CAAC,0DAAiC,CAC9B,IAAI,CAAC,cAAc,CAAC,CAAC;SACzE,CAAC,CAAC;QAEP,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAA,IAAI;YAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAClF,yFAAyF;gBACzF,qBAAqB;gBACrB,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjD,IAAM,QAAQ,GAAG,WAAW;oBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACpE,IAAI,CAAC,UAAU,CAAC;gBACpB,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAA,KAAK,IAAK,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAGD,sBAAY,mDAAe;QAD3B,kBAAkB;aAClB;YACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAClF,CAAC;;;OAAA;IAED,sBAAY,yDAAqB;aAAjC;YACE,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,sBAAsB,CAAC;QAC7D,CAAC;;;OAAA;IAED,sBAAY,yCAAK;aAAjB;YACE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7D,CAAC;;;OAAA;IAED,sBAAY,6CAAS;aAArB;YACE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,KAAe,EAAE,aAAa;oBAC/D,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChF,MAAM,CAAK,KAAK,SAAE,aAAa,CAAC,UAAU,GAAE;oBAC9C,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;gBACf,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjB,CAAC;;;OAAA;IAED,sBAAY,wDAAoB;aAAhC;YACE,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,GAAG,0BAA0B,CACnD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,CAAC;;;OAAA;IAED,sBAAY,oDAAgB;aAA5B;YACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC5F,CAAC;;;OAAA;IAED,sBAAY,kDAAc;aAA1B;YACE,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/E,CAAC;;;OAAA;IAED,sBAAY,+CAAW;aAAvB;YACE,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;gBAC3D,IAAI,CAAC,YAAY;gBACjB,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,CAAC;;;OAAA;IAED,sBAAY,4DAAwB;aAApC;YACE,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,yBAA2B,CAAC;QACjE,CAAC;;;OAAA;IAEO,mDAAkB,GAA1B,UAA2B,CAAM;QAC/B,EAAE,CAAC,CAAC,wBAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAM,YAAY,GAAG,yBAAc,CAAC,CAAC,CAAC,CAAC;YACvC,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,sBAAsB;oBACvB,YAAY,CAAC,GAAG,CAAa,UAAA,CAAC,IAAI,OAAA,CAAC;wBACJ,OAAO,EAAE,CAAC,CAAC,iBAAiB,EAAE;wBAC9B,QAAQ,EAAE,wBAAkB,CAAC,KAAK;wBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,EAJG,CAIH,CAAC,CAAC;YACvC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,wBAAkB,CAAC,KAAK,EAAC,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;YACrC,MAAM,CAAC,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;IAEO,+CAAc,GAAtB;QACE,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,8CAAa,GAArB;QACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,EAAE;YACF,IAAI,CAAC,OAAO,CAAC,wBAAwB,KAAK,KAAK;gBAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;gBAChD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjG,CAAC;IAEO,8CAAa,GAArB;QACE,IAAI,CAAC;YACH,6FAA6F;YAC7F,oEAAoE;YACpE,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,EAAE,GAAG,MAAM,CAAC;QACxD,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACX,EAAE,CAAC,CAAC,wBAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,yBAAyB,GAAG,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,wBAAkB,CAAC,KAAK,EAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,kDAAiB,GAAzB;QACE,MAAM,CAAC,IAAI,yBAAW,CAClB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAC3E,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAEO,uDAAsB,GAA9B;QACE,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB;YACnC,IAAI,CAAC,SAAS;YACd,EAAE,CAAC,aAAa,CACR,IAAI,CAAC,SAAS,QAAK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC3F,CAAC;IACH,6BAAC;AAAD,CAAC,AA3ND,IA2NC;AAED,uBACI,EAC6F;QAD5F,wBAAS,EAAE,oBAAO,EAAE,cAAI,EAAE,0BAAU;IAGvC,MAAM,CAAC,IAAI,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1E,CAAC;AALD,sCAKC;AAED,uBACI,YAAoB,EAAE,UAAyB,EAAE,SAA4B,EAC7E,SAA0B;IAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAM,MAAI,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE7D,gFAAgF;QAChF,4EAA4E;QAC5E,iFAAiF;QACjF,qFAAqF;QACrF,IAAI,eAAe,GAAG,UAAU,CAAC;QACjC,OAAQ,eAAuB,CAAC,QAAQ,EAAE,CAAC;YACzC,eAAe,GAAI,eAAuB,CAAC,QAAQ,CAAC;QACtD,CAAC;QAED,IAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACxF,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChD,kBAAa,CAAC,MAAI,EAAE,YAAY,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,iCACI,SAAoB,EAAE,IAAqB,EAAE,SAA4B,EACzE,SAA0B,EAAE,OAA4B;IAC1D,IAAM,YAAY,GACd,UAAC,QAAgB,EAAE,IAAY,EAAE,kBAA2B,EAC3D,OAAmC,EAAE,WAA6B;QACjE,IAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3E,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;IACN,IAAM,eAAe,GACjB,UAAC,QAAgB,EAAE,IAAY,EAAE,kBAA2B,EAC3D,OAAmC,EAAE,WAA6B;QACjE,IAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3E,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IACN,MAAM,CAAC,CAAC,SAAS,GAAG,eAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,GAAG,eAAe,CAAC;AAChF,CAAC;AAED,gCAAgC,OAAwB;IACtD,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAC9B,KAAK,YAAY,CAAC;YAClB,KAAK,eAAe;gBAClB,KAAK,CAAC;YACR;gBACE,MAAM,CAAC,CAAC;wBACN,OAAO,EACH,yFAAyF;wBAC7F,QAAQ,EAAE,wBAAkB,CAAC,KAAK;qBACnC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IACD,MAAM,CAAC,EAAE,CAAC;AACZ,CAAC;AAED,oCACI,cAA+B,EAAE,eAA2B,EAC5D,YAA6B;IAK/B,MAAM,CAAC;QAQL;YAAA,iBAoBC;YAoBD,0BAAqB,GAAG,UAAC,OAA2B;gBAChD,OAAA,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAA3C,CAA2C,CAAA;YAC/C,wBAAmB,GAAG,cAAM,OAAA,YAAY,CAAC,mBAAmB,EAAE,EAAlC,CAAkC,CAAC;YAC/D,yBAAoB,GAAG,UAAC,QAAgB,IAAK,OAAA,YAAY,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAA3C,CAA2C,CAAC;YACzF,8BAAyB,GAAG,cAAM,OAAA,YAAY,CAAC,yBAAyB,EAAE,EAAxC,CAAwC,CAAC;YAC3E,eAAU,GAAG,cAAM,OAAA,YAAY,CAAC,UAAU,EAAE,EAAzB,CAAyB,CAAC;YAC7C,aAAQ,GAAG,UAAC,CAAS,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC;YAC5B,eAAU,GAAG,UAAC,QAAgB;gBAC1B,OAAA,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAtE,CAAsE,CAAA;YA/CxE,IAAI,CAAC,cAAc;gBACf,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAvC,CAAuC,CAAC;qBAC9D,GAAG,CAAqB,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,UAAU,EAAE,EAAC,CAAC,GAAA,EAAC,CAAC,EAAnB,CAAmB,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YACxC,EAAE,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,UAAA,IAAI,IAAI,OAAA,YAAY,CAAC,cAAgB,CAAC,IAAI,CAAC,EAAnC,CAAmC,CAAC;YACpE,CAAC;YACD,EAAE,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,eAAe,GAAG,UAAA,aAAa,IAAI,OAAA,YAAY,CAAC,eAAiB,CAAC,aAAa,CAAC,EAA7C,CAA6C,CAAC;YACxF,CAAC;YACD,EAAE,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,oBAAoB,GAAG,cAAM,OAAA,YAAY,CAAC,oBAAsB,EAAE,EAArC,CAAqC,CAAC;YAC1E,CAAC;YACD,EAAE,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,qBAAqB,GAAG,cAAM,OAAA,YAAY,CAAC,qBAAuB,EAAE,EAAtC,CAAsC,CAAC;YAC5E,CAAC;YACD,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,GAAG,UAAA,CAAC,IAAI,OAAA,YAAY,CAAC,KAAO,CAAC,CAAC,CAAC,EAAvB,CAAuB,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,+BAAa,GAAb,UACI,QAAgB,EAAE,eAAgC,EAClD,OAA+C;YACjD,IAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CACxB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,uBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC1C,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QACD,0BAAQ,GAAR,UAAS,QAAgB;YACvB,IAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,uBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAWH,cAAC;IAAD,CAAC,AAzDU,GAyDV,CAAC;AACJ,CAAC","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"]}
|
package/src/version.js
CHANGED
package/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/version.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH;;;;GAIG;AAEH,sCAAsC;AACtC;;GAEG;AACU,QAAA,OAAO,GAAG,IAAI,cAAO,CAAC,mBAAmB,CAAC,CAAC","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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n/**\n * @stable\n */\nexport const VERSION = new Version('4.4.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/version.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH;;;;GAIG;AAEH,sCAAsC;AACtC;;GAEG;AACU,QAAA,OAAO,GAAG,IAAI,cAAO,CAAC,mBAAmB,CAAC,CAAC","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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n/**\n * @stable\n */\nexport const VERSION = new Version('4.4.6');\n"]}
|