@angular/compiler-cli
Advanced tools
+2
-2
| { | ||
| "name": "@angular/compiler-cli", | ||
| "version": "5.1.1", | ||
| "version": "5.1.2", | ||
| "description": "Angular - the compiler CLI for Node.js", | ||
@@ -19,3 +19,3 @@ "main": "index.js", | ||
| "typescript": ">=2.4.2 <2.6", | ||
| "@angular/compiler": "5.1.1" | ||
| "@angular/compiler": "5.1.2" | ||
| }, | ||
@@ -22,0 +22,0 @@ "repository": { |
@@ -110,3 +110,3 @@ "use strict"; | ||
| .resolvedModule; | ||
| if (rm && this.isSourceFile(rm.resolvedFileName)) { | ||
| if (rm && this.isSourceFile(rm.resolvedFileName) && util_1.DTS.test(rm.resolvedFileName)) { | ||
| // Case: generateCodeForLibraries = true and moduleName is | ||
@@ -287,3 +287,3 @@ // a .d.ts file in a node_modules folder. | ||
| var base = genMatch[1], genSuffix = genMatch[2], suffix = genMatch[3]; | ||
| if (suffix !== 'ts') { | ||
| if (suffix !== 'ts' && suffix !== 'tsx') { | ||
| return { generate: false }; | ||
@@ -300,5 +300,5 @@ } | ||
| // Note: on-the-fly generated files always have a `.ts` suffix, | ||
| // but the file from which we generated it can be a `.ts`/ `.d.ts` | ||
| // but the file from which we generated it can be a `.ts`/ `.tsx`/ `.d.ts` | ||
| // (see options.generateCodeForLibraries). | ||
| baseFileName = [base + ".ts", base + ".d.ts"].find(function (baseFileName) { return _this.isSourceFile(baseFileName) && _this.originalFileExists(baseFileName); }); | ||
| baseFileName = [base + ".ts", base + ".tsx", base + ".d.ts"].find(function (baseFileName) { return _this.isSourceFile(baseFileName) && _this.originalFileExists(baseFileName); }); | ||
| if (!baseFileName) { | ||
@@ -305,0 +305,0 @@ return { generate: false }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"compiler_host.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/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, EmitterVisitorContext, ExternalReference, GeneratedFile, ParseSourceSpan, TypeScriptEmitter, collectExternalReferences, syntaxError} from '@angular/compiler';\nimport * as path from 'path';\nimport * as ts from 'typescript';\n\nimport {TypeCheckHost} from '../diagnostics/translate_diagnostics';\nimport {METADATA_VERSION, ModuleMetadata} from '../metadata/index';\n\nimport {CompilerHost, CompilerOptions, LibrarySummary} from './api';\nimport {MetadataReaderHost, createMetadataReaderCache, readMetadata} from './metadata_reader';\nimport {DTS, GENERATED_FILES, isInRootDir, relativeToRootDirs} from './util';\n\nconst NODE_MODULES_PACKAGE_NAME = /node_modules\\/((\\w|-)+|(@(\\w|-)+\\/(\\w|-)+))/;\nconst EXT = /(\\.ts|\\.d\\.ts|\\.js|\\.jsx|\\.tsx)$/;\n\nexport function createCompilerHost(\n {options, tsHost = ts.createCompilerHost(options, true)}:\n {options: CompilerOptions, tsHost?: ts.CompilerHost}): CompilerHost {\n return tsHost;\n}\n\nexport interface MetadataProvider {\n getMetadata(sourceFile: ts.SourceFile): ModuleMetadata|undefined;\n}\n\ninterface GenSourceFile {\n externalReferences: Set<string>;\n sourceFile: ts.SourceFile;\n emitCtx: EmitterVisitorContext;\n}\n\nexport interface CodeGenerator {\n generateFile(genFileName: string, baseFileName?: string): GeneratedFile;\n findGeneratedFileNames(fileName: string): string[];\n}\n\nfunction assert<T>(condition: T | null | undefined) {\n if (!condition) {\n // TODO(chuckjaz): do the right thing\n }\n return condition !;\n}\n\n/**\n * Implements the following hosts based on an api.CompilerHost:\n * - ts.CompilerHost to be consumed by a ts.Program\n * - AotCompilerHost for @angular/compiler\n * - TypeCheckHost for mapping ts errors to ng errors (via translateDiagnostics)\n */\nexport class TsCompilerAotCompilerTypeCheckHostAdapter implements ts.CompilerHost, AotCompilerHost,\n TypeCheckHost {\n private metadataReaderCache = createMetadataReaderCache();\n private flatModuleIndexCache = new Map<string, boolean>();\n private flatModuleIndexNames = new Set<string>();\n private flatModuleIndexRedirectNames = new Set<string>();\n private rootDirs: string[];\n private moduleResolutionCache: ts.ModuleResolutionCache;\n private originalSourceFiles = new Map<string, ts.SourceFile|undefined>();\n private originalFileExistsCache = new Map<string, boolean>();\n private generatedSourceFiles = new Map<string, GenSourceFile>();\n private generatedCodeFor = new Map<string, string[]>();\n private emitter = new TypeScriptEmitter();\n private metadataReaderHost: MetadataReaderHost;\n\n getCancellationToken: () => ts.CancellationToken;\n getDefaultLibLocation: () => string;\n trace: (s: string) => void;\n getDirectories: (path: string) => string[];\n directoryExists?: (directoryName: string) => boolean;\n\n constructor(\n private rootFiles: string[], private options: CompilerOptions, private context: CompilerHost,\n private metadataProvider: MetadataProvider, private codeGenerator: CodeGenerator,\n private librarySummaries = new Map<string, LibrarySummary>()) {\n this.moduleResolutionCache = ts.createModuleResolutionCache(\n this.context.getCurrentDirectory !(), this.context.getCanonicalFileName.bind(this.context));\n const basePath = this.options.basePath !;\n this.rootDirs =\n (this.options.rootDirs || [this.options.basePath !]).map(p => path.resolve(basePath, p));\n if (context.getDirectories) {\n this.getDirectories = path => context.getDirectories !(path);\n }\n if (context.directoryExists) {\n this.directoryExists = directoryName => context.directoryExists !(directoryName);\n }\n if (context.getCancellationToken) {\n this.getCancellationToken = () => context.getCancellationToken !();\n }\n if (context.getDefaultLibLocation) {\n this.getDefaultLibLocation = () => context.getDefaultLibLocation !();\n }\n if (context.trace) {\n this.trace = s => context.trace !(s);\n }\n if (context.fileNameToModuleName) {\n this.fileNameToModuleName = context.fileNameToModuleName.bind(context);\n }\n // Note: don't copy over context.moduleNameToFileName as we first\n // normalize undefined containingFile to a filled containingFile.\n if (context.resourceNameToFileName) {\n this.resourceNameToFileName = context.resourceNameToFileName.bind(context);\n }\n if (context.toSummaryFileName) {\n this.toSummaryFileName = context.toSummaryFileName.bind(context);\n }\n if (context.fromSummaryFileName) {\n this.fromSummaryFileName = context.fromSummaryFileName.bind(context);\n }\n this.metadataReaderHost = {\n cacheMetadata: () => true,\n getSourceFileMetadata: (filePath) => {\n const sf = this.getOriginalSourceFile(filePath);\n return sf ? this.metadataProvider.getMetadata(sf) : undefined;\n },\n fileExists: (filePath) => this.originalFileExists(filePath),\n readFile: (filePath) => assert(this.context.readFile(filePath)),\n };\n }\n\n private resolveModuleName(moduleName: string, containingFile: string): ts.ResolvedModule\n |undefined {\n const rm = ts.resolveModuleName(\n moduleName, containingFile.replace(/\\\\/g, '/'), this.options, this,\n this.moduleResolutionCache)\n .resolvedModule;\n if (rm && this.isSourceFile(rm.resolvedFileName)) {\n // Case: generateCodeForLibraries = true and moduleName is\n // a .d.ts file in a node_modules folder.\n // Need to set isExternalLibraryImport to false so that generated files for that file\n // are emitted.\n rm.isExternalLibraryImport = false;\n }\n return rm;\n }\n\n // Note: We implement this method so that TypeScript and Angular share the same\n // ts.ModuleResolutionCache\n // and that we can tell ts.Program about our different opinion about\n // ResolvedModule.isExternalLibraryImport\n // (see our isSourceFile method).\n resolveModuleNames(moduleNames: string[], containingFile: string): ts.ResolvedModule[] {\n // TODO(tbosch): this seems to be a typing error in TypeScript,\n // as it contains assertions that the result contains the same number of entries\n // as the given module names.\n return <ts.ResolvedModule[]>moduleNames.map(\n moduleName => this.resolveModuleName(moduleName, containingFile));\n }\n\n moduleNameToFileName(m: string, containingFile?: string): string|null {\n if (!containingFile) {\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.rootFiles[0];\n }\n if (this.context.moduleNameToFileName) {\n return this.context.moduleNameToFileName(m, containingFile);\n }\n const resolved = this.resolveModuleName(m, containingFile);\n return resolved ? resolved.resolvedFileName : null;\n }\n\n /**\n * We want a moduleId that will appear in import statements in the generated code\n * which will be written to `containingFile`.\n *\n * Note that we also generate files for files in node_modules, as libraries\n * only ship .metadata.json files but not the generated code.\n *\n * Logic:\n * 1. if the importedFile and the containingFile are from the project sources\n * or from the same node_modules package, use a relative path\n * 2. if the importedFile is in a node_modules package,\n * use a path that starts with the package name.\n * 3. Error if the containingFile is in the node_modules package\n * and the importedFile is in the project soures,\n * as that is a violation of the principle that node_modules packages cannot\n * import project sources.\n */\n fileNameToModuleName(importedFile: string, containingFile: string): string {\n const originalImportedFile = importedFile;\n if (this.options.traceResolution) {\n console.error(\n 'fileNameToModuleName from containingFile', containingFile, 'to importedFile',\n importedFile);\n }\n\n // drop extension\n importedFile = importedFile.replace(EXT, '');\n const importedFilePackagName = getPackageName(importedFile);\n const containingFilePackageName = getPackageName(containingFile);\n\n let moduleName: string;\n if (importedFilePackagName === containingFilePackageName ||\n GENERATED_FILES.test(originalImportedFile)) {\n const rootedContainingFile = relativeToRootDirs(containingFile, this.rootDirs);\n const rootedImportedFile = relativeToRootDirs(importedFile, this.rootDirs);\n\n if (rootedContainingFile !== containingFile && rootedImportedFile !== importedFile) {\n // if both files are contained in the `rootDirs`, then strip the rootDirs\n containingFile = rootedContainingFile;\n importedFile = rootedImportedFile;\n }\n moduleName = dotRelative(path.dirname(containingFile), importedFile);\n } else if (importedFilePackagName) {\n moduleName = stripNodeModulesPrefix(importedFile);\n } else {\n throw new Error(\n `Trying to import a source file from a node_modules package: import ${originalImportedFile} from ${containingFile}`);\n }\n return moduleName;\n }\n\n resourceNameToFileName(resourceName: string, containingFile: string): string|null {\n // Note: we convert package paths into relative paths to be compatible with the the\n // previous implementation of UrlResolver.\n const firstChar = resourceName[0];\n if (firstChar === '/') {\n resourceName = resourceName.slice(1);\n } else if (firstChar !== '.') {\n resourceName = `./${resourceName}`;\n }\n const filePathWithNgResource =\n this.moduleNameToFileName(addNgResourceSuffix(resourceName), containingFile);\n return filePathWithNgResource ? stripNgResourceSuffix(filePathWithNgResource) : null;\n }\n\n toSummaryFileName(fileName: string, referringSrcFileName: string): string {\n return this.fileNameToModuleName(fileName, referringSrcFileName);\n }\n\n fromSummaryFileName(fileName: string, referringLibFileName: string): string {\n const resolved = this.moduleNameToFileName(fileName, referringLibFileName);\n if (!resolved) {\n throw new Error(`Could not resolve ${fileName} from ${referringLibFileName}`);\n }\n return resolved;\n }\n\n parseSourceSpanOf(fileName: string, line: number, character: number): ParseSourceSpan|null {\n const data = this.generatedSourceFiles.get(fileName);\n if (data && data.emitCtx) {\n return data.emitCtx.spanOf(line, character);\n }\n return null;\n }\n\n private getOriginalSourceFile(\n filePath: string, languageVersion?: ts.ScriptTarget,\n onError?: ((message: string) => void)|undefined): ts.SourceFile|null {\n // Note: we need the explicit check via `has` as we also cache results\n // that were null / undefined.\n if (this.originalSourceFiles.has(filePath)) {\n return this.originalSourceFiles.get(filePath) !;\n }\n if (!languageVersion) {\n languageVersion = this.options.target || ts.ScriptTarget.Latest;\n }\n // Note: This can also return undefined,\n // as the TS typings are not correct!\n const sf = this.context.getSourceFile(filePath, languageVersion, onError) || null;\n this.originalSourceFiles.set(filePath, sf);\n return sf;\n }\n\n updateGeneratedFile(genFile: GeneratedFile): ts.SourceFile {\n if (!genFile.stmts) {\n throw new Error(\n `Invalid Argument: Expected a GenerateFile with statements. ${genFile.genFileUrl}`);\n }\n const oldGenFile = this.generatedSourceFiles.get(genFile.genFileUrl);\n if (!oldGenFile) {\n throw new Error(`Illegal State: previous GeneratedFile not found for ${genFile.genFileUrl}.`);\n }\n const newRefs = genFileExternalReferences(genFile);\n const oldRefs = oldGenFile.externalReferences;\n let refsAreEqual = oldRefs.size === newRefs.size;\n if (refsAreEqual) {\n newRefs.forEach(r => refsAreEqual = refsAreEqual && oldRefs.has(r));\n }\n if (!refsAreEqual) {\n throw new Error(\n `Illegal State: external references changed in ${genFile.genFileUrl}.\\nOld: ${Array.from(oldRefs)}.\\nNew: ${Array.from(newRefs)}`);\n }\n return this.addGeneratedFile(genFile, newRefs);\n }\n\n private addGeneratedFile(genFile: GeneratedFile, externalReferences: Set<string>): ts.SourceFile {\n if (!genFile.stmts) {\n throw new Error(\n `Invalid Argument: Expected a GenerateFile with statements. ${genFile.genFileUrl}`);\n }\n const {sourceText, context} = this.emitter.emitStatementsAndContext(\n genFile.genFileUrl, genFile.stmts, /* preamble */ '',\n /* emitSourceMaps */ false);\n const sf = ts.createSourceFile(\n genFile.genFileUrl, sourceText, this.options.target || ts.ScriptTarget.Latest);\n if ((this.options.module === ts.ModuleKind.AMD || this.options.module === ts.ModuleKind.UMD) &&\n this.context.amdModuleName) {\n const moduleName = this.context.amdModuleName(sf);\n if (moduleName) sf.moduleName = moduleName;\n }\n this.generatedSourceFiles.set(genFile.genFileUrl, {\n sourceFile: sf,\n emitCtx: context, externalReferences,\n });\n return sf;\n }\n\n shouldGenerateFile(fileName: string): {generate: boolean, baseFileName?: string} {\n // TODO(tbosch): allow generating files that are not in the rootDir\n // See https://github.com/angular/angular/issues/19337\n if (!isInRootDir(fileName, this.options)) {\n return {generate: false};\n }\n const genMatch = GENERATED_FILES.exec(fileName);\n if (!genMatch) {\n return {generate: false};\n }\n const [, base, genSuffix, suffix] = genMatch;\n if (suffix !== 'ts') {\n return {generate: false};\n }\n let baseFileName: string|undefined;\n if (genSuffix.indexOf('ngstyle') >= 0) {\n // Note: ngstyle files have names like `afile.css.ngstyle.ts`\n if (!this.originalFileExists(base)) {\n return {generate: false};\n }\n } else {\n // Note: on-the-fly generated files always have a `.ts` suffix,\n // but the file from which we generated it can be a `.ts`/ `.d.ts`\n // (see options.generateCodeForLibraries).\n baseFileName = [`${base}.ts`, `${base}.d.ts`].find(\n baseFileName => this.isSourceFile(baseFileName) && this.originalFileExists(baseFileName));\n if (!baseFileName) {\n return {generate: false};\n }\n }\n return {generate: true, baseFileName};\n }\n\n shouldGenerateFilesFor(fileName: string) {\n // TODO(tbosch): allow generating files that are not in the rootDir\n // See https://github.com/angular/angular/issues/19337\n return !GENERATED_FILES.test(fileName) && this.isSourceFile(fileName) &&\n isInRootDir(fileName, this.options);\n }\n\n getSourceFile(\n fileName: string, languageVersion: ts.ScriptTarget,\n onError?: ((message: string) => void)|undefined): ts.SourceFile {\n // Note: Don't exit early in this method to make sure\n // we always have up to date references on the file!\n let genFileNames: string[] = [];\n let sf = this.getGeneratedFile(fileName);\n if (!sf) {\n const summary = this.librarySummaries.get(fileName);\n if (summary) {\n if (!summary.sourceFile) {\n summary.sourceFile = ts.createSourceFile(\n fileName, summary.text, this.options.target || ts.ScriptTarget.Latest);\n }\n sf = summary.sourceFile;\n genFileNames = [];\n }\n }\n if (!sf) {\n sf = this.getOriginalSourceFile(fileName);\n const cachedGenFiles = this.generatedCodeFor.get(fileName);\n if (cachedGenFiles) {\n genFileNames = cachedGenFiles;\n } else {\n if (!this.options.noResolve && this.shouldGenerateFilesFor(fileName)) {\n genFileNames = this.codeGenerator.findGeneratedFileNames(fileName).filter(\n fileName => this.shouldGenerateFile(fileName).generate);\n }\n this.generatedCodeFor.set(fileName, genFileNames);\n }\n }\n if (sf) {\n addReferencesToSourceFile(sf, genFileNames);\n }\n // TODO(tbosch): TypeScript's typings for getSourceFile are incorrect,\n // as it can very well return undefined.\n return sf !;\n }\n\n private getGeneratedFile(fileName: string): ts.SourceFile|null {\n const genSrcFile = this.generatedSourceFiles.get(fileName);\n if (genSrcFile) {\n return genSrcFile.sourceFile;\n }\n const {generate, baseFileName} = this.shouldGenerateFile(fileName);\n if (generate) {\n const genFile = this.codeGenerator.generateFile(fileName, baseFileName);\n return this.addGeneratedFile(genFile, genFileExternalReferences(genFile));\n }\n return null;\n }\n\n private originalFileExists(fileName: string): boolean {\n let fileExists = this.originalFileExistsCache.get(fileName);\n if (fileExists == null) {\n fileExists = this.context.fileExists(fileName);\n this.originalFileExistsCache.set(fileName, fileExists);\n }\n return fileExists;\n }\n\n fileExists(fileName: string): boolean {\n fileName = stripNgResourceSuffix(fileName);\n if (this.librarySummaries.has(fileName) || this.generatedSourceFiles.has(fileName)) {\n return true;\n }\n if (this.shouldGenerateFile(fileName).generate) {\n return true;\n }\n return this.originalFileExists(fileName);\n }\n\n loadSummary(filePath: string): string|null {\n const summary = this.librarySummaries.get(filePath);\n if (summary) {\n return summary.text;\n }\n if (this.originalFileExists(filePath)) {\n return assert(this.context.readFile(filePath));\n }\n return null;\n }\n\n isSourceFile(filePath: string): boolean {\n // Don't generate any files nor typecheck them\n // if skipTemplateCodegen is set and fullTemplateTypeCheck is not yet set,\n // for backwards compatibility.\n if (this.options.skipTemplateCodegen && !this.options.fullTemplateTypeCheck) {\n return false;\n }\n // If we have a summary from a previous compilation,\n // treat the file never as a source file.\n if (this.librarySummaries.has(filePath)) {\n return false;\n }\n if (GENERATED_FILES.test(filePath)) {\n return false;\n }\n if (this.options.generateCodeForLibraries === false && DTS.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 readFile(fileName: string) {\n const summary = this.librarySummaries.get(fileName);\n if (summary) {\n return summary.text;\n }\n return this.context.readFile(fileName);\n }\n\n getMetadataFor(filePath: string): ModuleMetadata[]|undefined {\n return readMetadata(filePath, this.metadataReaderHost, this.metadataReaderCache);\n }\n\n loadResource(filePath: string): Promise<string>|string {\n if (this.context.readResource) return this.context.readResource(filePath);\n if (!this.originalFileExists(filePath)) {\n throw syntaxError(`Error: Resource file not found: ${filePath}`);\n }\n return assert(this.context.readFile(filePath));\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.originalFileExists(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(assert(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.originalFileExists(metadataFile)) {\n const metadata = JSON.parse(assert(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 getDefaultLibFileName = (options: ts.CompilerOptions) =>\n this.context.getDefaultLibFileName(options)\n getCurrentDirectory = () => this.context.getCurrentDirectory();\n getCanonicalFileName = (fileName: string) => this.context.getCanonicalFileName(fileName);\n useCaseSensitiveFileNames = () => this.context.useCaseSensitiveFileNames();\n getNewLine = () => this.context.getNewLine();\n // Make sure we do not `host.realpath()` from TS as we do not want to resolve symlinks.\n // https://github.com/Microsoft/TypeScript/issues/9552\n realPath = (p: string) => p;\n writeFile = this.context.writeFile.bind(this.context);\n}\n\nfunction genFileExternalReferences(genFile: GeneratedFile): Set<string> {\n return new Set(collectExternalReferences(genFile.stmts !).map(er => er.moduleName !));\n}\n\nfunction addReferencesToSourceFile(sf: ts.SourceFile, genFileNames: string[]) {\n // Note: as we modify ts.SourceFiles we need to keep the original\n // value for `referencedFiles` around in cache the original host is caching ts.SourceFiles.\n // Note: cloning the ts.SourceFile is expensive as the nodes in have parent pointers,\n // i.e. we would also need to clone and adjust all nodes.\n let originalReferencedFiles: ts.FileReference[]|undefined = (sf as any).originalReferencedFiles;\n if (!originalReferencedFiles) {\n originalReferencedFiles = sf.referencedFiles;\n (sf as any).originalReferencedFiles = originalReferencedFiles;\n }\n const newReferencedFiles = [...originalReferencedFiles];\n genFileNames.forEach(gf => newReferencedFiles.push({fileName: gf, pos: 0, end: 0}));\n sf.referencedFiles = newReferencedFiles;\n}\n\nexport function getOriginalReferences(sourceFile: ts.SourceFile): ts.FileReference[]|undefined {\n return sourceFile && (sourceFile as any).originalReferencedFiles;\n}\n\nfunction 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 */\nfunction getPackageName(filePath: string): string|null {\n const match = NODE_MODULES_PACKAGE_NAME.exec(filePath);\n return match ? match[1] : null;\n}\n\nfunction stripNodeModulesPrefix(filePath: string): string {\n return filePath.replace(/.*node_modules\\//, '');\n}\n\nfunction getNodeModulesPrefix(filePath: string): string|null {\n const match = /.*node_modules\\//.exec(filePath);\n return match ? match[1] : null;\n}\n\nfunction stripNgResourceSuffix(fileName: string): string {\n return fileName.replace(/\\.\\$ngresource\\$.*/, '');\n}\n\nfunction addNgResourceSuffix(fileName: string): string {\n return `${fileName}.$ngresource$`;\n}\n"]} | ||
| {"version":3,"file":"compiler_host.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/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, EmitterVisitorContext, ExternalReference, GeneratedFile, ParseSourceSpan, TypeScriptEmitter, collectExternalReferences, syntaxError} from '@angular/compiler';\nimport * as path from 'path';\nimport * as ts from 'typescript';\n\nimport {TypeCheckHost} from '../diagnostics/translate_diagnostics';\nimport {METADATA_VERSION, ModuleMetadata} from '../metadata/index';\n\nimport {CompilerHost, CompilerOptions, LibrarySummary} from './api';\nimport {MetadataReaderHost, createMetadataReaderCache, readMetadata} from './metadata_reader';\nimport {DTS, GENERATED_FILES, isInRootDir, relativeToRootDirs} from './util';\n\nconst NODE_MODULES_PACKAGE_NAME = /node_modules\\/((\\w|-)+|(@(\\w|-)+\\/(\\w|-)+))/;\nconst EXT = /(\\.ts|\\.d\\.ts|\\.js|\\.jsx|\\.tsx)$/;\n\nexport function createCompilerHost(\n {options, tsHost = ts.createCompilerHost(options, true)}:\n {options: CompilerOptions, tsHost?: ts.CompilerHost}): CompilerHost {\n return tsHost;\n}\n\nexport interface MetadataProvider {\n getMetadata(sourceFile: ts.SourceFile): ModuleMetadata|undefined;\n}\n\ninterface GenSourceFile {\n externalReferences: Set<string>;\n sourceFile: ts.SourceFile;\n emitCtx: EmitterVisitorContext;\n}\n\nexport interface CodeGenerator {\n generateFile(genFileName: string, baseFileName?: string): GeneratedFile;\n findGeneratedFileNames(fileName: string): string[];\n}\n\nfunction assert<T>(condition: T | null | undefined) {\n if (!condition) {\n // TODO(chuckjaz): do the right thing\n }\n return condition !;\n}\n\n/**\n * Implements the following hosts based on an api.CompilerHost:\n * - ts.CompilerHost to be consumed by a ts.Program\n * - AotCompilerHost for @angular/compiler\n * - TypeCheckHost for mapping ts errors to ng errors (via translateDiagnostics)\n */\nexport class TsCompilerAotCompilerTypeCheckHostAdapter implements ts.CompilerHost, AotCompilerHost,\n TypeCheckHost {\n private metadataReaderCache = createMetadataReaderCache();\n private flatModuleIndexCache = new Map<string, boolean>();\n private flatModuleIndexNames = new Set<string>();\n private flatModuleIndexRedirectNames = new Set<string>();\n private rootDirs: string[];\n private moduleResolutionCache: ts.ModuleResolutionCache;\n private originalSourceFiles = new Map<string, ts.SourceFile|undefined>();\n private originalFileExistsCache = new Map<string, boolean>();\n private generatedSourceFiles = new Map<string, GenSourceFile>();\n private generatedCodeFor = new Map<string, string[]>();\n private emitter = new TypeScriptEmitter();\n private metadataReaderHost: MetadataReaderHost;\n\n getCancellationToken: () => ts.CancellationToken;\n getDefaultLibLocation: () => string;\n trace: (s: string) => void;\n getDirectories: (path: string) => string[];\n directoryExists?: (directoryName: string) => boolean;\n\n constructor(\n private rootFiles: string[], private options: CompilerOptions, private context: CompilerHost,\n private metadataProvider: MetadataProvider, private codeGenerator: CodeGenerator,\n private librarySummaries = new Map<string, LibrarySummary>()) {\n this.moduleResolutionCache = ts.createModuleResolutionCache(\n this.context.getCurrentDirectory !(), this.context.getCanonicalFileName.bind(this.context));\n const basePath = this.options.basePath !;\n this.rootDirs =\n (this.options.rootDirs || [this.options.basePath !]).map(p => path.resolve(basePath, p));\n if (context.getDirectories) {\n this.getDirectories = path => context.getDirectories !(path);\n }\n if (context.directoryExists) {\n this.directoryExists = directoryName => context.directoryExists !(directoryName);\n }\n if (context.getCancellationToken) {\n this.getCancellationToken = () => context.getCancellationToken !();\n }\n if (context.getDefaultLibLocation) {\n this.getDefaultLibLocation = () => context.getDefaultLibLocation !();\n }\n if (context.trace) {\n this.trace = s => context.trace !(s);\n }\n if (context.fileNameToModuleName) {\n this.fileNameToModuleName = context.fileNameToModuleName.bind(context);\n }\n // Note: don't copy over context.moduleNameToFileName as we first\n // normalize undefined containingFile to a filled containingFile.\n if (context.resourceNameToFileName) {\n this.resourceNameToFileName = context.resourceNameToFileName.bind(context);\n }\n if (context.toSummaryFileName) {\n this.toSummaryFileName = context.toSummaryFileName.bind(context);\n }\n if (context.fromSummaryFileName) {\n this.fromSummaryFileName = context.fromSummaryFileName.bind(context);\n }\n this.metadataReaderHost = {\n cacheMetadata: () => true,\n getSourceFileMetadata: (filePath) => {\n const sf = this.getOriginalSourceFile(filePath);\n return sf ? this.metadataProvider.getMetadata(sf) : undefined;\n },\n fileExists: (filePath) => this.originalFileExists(filePath),\n readFile: (filePath) => assert(this.context.readFile(filePath)),\n };\n }\n\n private resolveModuleName(moduleName: string, containingFile: string): ts.ResolvedModule\n |undefined {\n const rm = ts.resolveModuleName(\n moduleName, containingFile.replace(/\\\\/g, '/'), this.options, this,\n this.moduleResolutionCache)\n .resolvedModule;\n if (rm && this.isSourceFile(rm.resolvedFileName) && DTS.test(rm.resolvedFileName)) {\n // Case: generateCodeForLibraries = true and moduleName is\n // a .d.ts file in a node_modules folder.\n // Need to set isExternalLibraryImport to false so that generated files for that file\n // are emitted.\n rm.isExternalLibraryImport = false;\n }\n return rm;\n }\n\n // Note: We implement this method so that TypeScript and Angular share the same\n // ts.ModuleResolutionCache\n // and that we can tell ts.Program about our different opinion about\n // ResolvedModule.isExternalLibraryImport\n // (see our isSourceFile method).\n resolveModuleNames(moduleNames: string[], containingFile: string): ts.ResolvedModule[] {\n // TODO(tbosch): this seems to be a typing error in TypeScript,\n // as it contains assertions that the result contains the same number of entries\n // as the given module names.\n return <ts.ResolvedModule[]>moduleNames.map(\n moduleName => this.resolveModuleName(moduleName, containingFile));\n }\n\n moduleNameToFileName(m: string, containingFile?: string): string|null {\n if (!containingFile) {\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.rootFiles[0];\n }\n if (this.context.moduleNameToFileName) {\n return this.context.moduleNameToFileName(m, containingFile);\n }\n const resolved = this.resolveModuleName(m, containingFile);\n return resolved ? resolved.resolvedFileName : null;\n }\n\n /**\n * We want a moduleId that will appear in import statements in the generated code\n * which will be written to `containingFile`.\n *\n * Note that we also generate files for files in node_modules, as libraries\n * only ship .metadata.json files but not the generated code.\n *\n * Logic:\n * 1. if the importedFile and the containingFile are from the project sources\n * or from the same node_modules package, use a relative path\n * 2. if the importedFile is in a node_modules package,\n * use a path that starts with the package name.\n * 3. Error if the containingFile is in the node_modules package\n * and the importedFile is in the project soures,\n * as that is a violation of the principle that node_modules packages cannot\n * import project sources.\n */\n fileNameToModuleName(importedFile: string, containingFile: string): string {\n const originalImportedFile = importedFile;\n if (this.options.traceResolution) {\n console.error(\n 'fileNameToModuleName from containingFile', containingFile, 'to importedFile',\n importedFile);\n }\n\n // drop extension\n importedFile = importedFile.replace(EXT, '');\n const importedFilePackagName = getPackageName(importedFile);\n const containingFilePackageName = getPackageName(containingFile);\n\n let moduleName: string;\n if (importedFilePackagName === containingFilePackageName ||\n GENERATED_FILES.test(originalImportedFile)) {\n const rootedContainingFile = relativeToRootDirs(containingFile, this.rootDirs);\n const rootedImportedFile = relativeToRootDirs(importedFile, this.rootDirs);\n\n if (rootedContainingFile !== containingFile && rootedImportedFile !== importedFile) {\n // if both files are contained in the `rootDirs`, then strip the rootDirs\n containingFile = rootedContainingFile;\n importedFile = rootedImportedFile;\n }\n moduleName = dotRelative(path.dirname(containingFile), importedFile);\n } else if (importedFilePackagName) {\n moduleName = stripNodeModulesPrefix(importedFile);\n } else {\n throw new Error(\n `Trying to import a source file from a node_modules package: import ${originalImportedFile} from ${containingFile}`);\n }\n return moduleName;\n }\n\n resourceNameToFileName(resourceName: string, containingFile: string): string|null {\n // Note: we convert package paths into relative paths to be compatible with the the\n // previous implementation of UrlResolver.\n const firstChar = resourceName[0];\n if (firstChar === '/') {\n resourceName = resourceName.slice(1);\n } else if (firstChar !== '.') {\n resourceName = `./${resourceName}`;\n }\n const filePathWithNgResource =\n this.moduleNameToFileName(addNgResourceSuffix(resourceName), containingFile);\n return filePathWithNgResource ? stripNgResourceSuffix(filePathWithNgResource) : null;\n }\n\n toSummaryFileName(fileName: string, referringSrcFileName: string): string {\n return this.fileNameToModuleName(fileName, referringSrcFileName);\n }\n\n fromSummaryFileName(fileName: string, referringLibFileName: string): string {\n const resolved = this.moduleNameToFileName(fileName, referringLibFileName);\n if (!resolved) {\n throw new Error(`Could not resolve ${fileName} from ${referringLibFileName}`);\n }\n return resolved;\n }\n\n parseSourceSpanOf(fileName: string, line: number, character: number): ParseSourceSpan|null {\n const data = this.generatedSourceFiles.get(fileName);\n if (data && data.emitCtx) {\n return data.emitCtx.spanOf(line, character);\n }\n return null;\n }\n\n private getOriginalSourceFile(\n filePath: string, languageVersion?: ts.ScriptTarget,\n onError?: ((message: string) => void)|undefined): ts.SourceFile|null {\n // Note: we need the explicit check via `has` as we also cache results\n // that were null / undefined.\n if (this.originalSourceFiles.has(filePath)) {\n return this.originalSourceFiles.get(filePath) !;\n }\n if (!languageVersion) {\n languageVersion = this.options.target || ts.ScriptTarget.Latest;\n }\n // Note: This can also return undefined,\n // as the TS typings are not correct!\n const sf = this.context.getSourceFile(filePath, languageVersion, onError) || null;\n this.originalSourceFiles.set(filePath, sf);\n return sf;\n }\n\n updateGeneratedFile(genFile: GeneratedFile): ts.SourceFile {\n if (!genFile.stmts) {\n throw new Error(\n `Invalid Argument: Expected a GenerateFile with statements. ${genFile.genFileUrl}`);\n }\n const oldGenFile = this.generatedSourceFiles.get(genFile.genFileUrl);\n if (!oldGenFile) {\n throw new Error(`Illegal State: previous GeneratedFile not found for ${genFile.genFileUrl}.`);\n }\n const newRefs = genFileExternalReferences(genFile);\n const oldRefs = oldGenFile.externalReferences;\n let refsAreEqual = oldRefs.size === newRefs.size;\n if (refsAreEqual) {\n newRefs.forEach(r => refsAreEqual = refsAreEqual && oldRefs.has(r));\n }\n if (!refsAreEqual) {\n throw new Error(\n `Illegal State: external references changed in ${genFile.genFileUrl}.\\nOld: ${Array.from(oldRefs)}.\\nNew: ${Array.from(newRefs)}`);\n }\n return this.addGeneratedFile(genFile, newRefs);\n }\n\n private addGeneratedFile(genFile: GeneratedFile, externalReferences: Set<string>): ts.SourceFile {\n if (!genFile.stmts) {\n throw new Error(\n `Invalid Argument: Expected a GenerateFile with statements. ${genFile.genFileUrl}`);\n }\n const {sourceText, context} = this.emitter.emitStatementsAndContext(\n genFile.genFileUrl, genFile.stmts, /* preamble */ '',\n /* emitSourceMaps */ false);\n const sf = ts.createSourceFile(\n genFile.genFileUrl, sourceText, this.options.target || ts.ScriptTarget.Latest);\n if ((this.options.module === ts.ModuleKind.AMD || this.options.module === ts.ModuleKind.UMD) &&\n this.context.amdModuleName) {\n const moduleName = this.context.amdModuleName(sf);\n if (moduleName) sf.moduleName = moduleName;\n }\n this.generatedSourceFiles.set(genFile.genFileUrl, {\n sourceFile: sf,\n emitCtx: context, externalReferences,\n });\n return sf;\n }\n\n shouldGenerateFile(fileName: string): {generate: boolean, baseFileName?: string} {\n // TODO(tbosch): allow generating files that are not in the rootDir\n // See https://github.com/angular/angular/issues/19337\n if (!isInRootDir(fileName, this.options)) {\n return {generate: false};\n }\n const genMatch = GENERATED_FILES.exec(fileName);\n if (!genMatch) {\n return {generate: false};\n }\n const [, base, genSuffix, suffix] = genMatch;\n if (suffix !== 'ts' && suffix !== 'tsx') {\n return {generate: false};\n }\n let baseFileName: string|undefined;\n if (genSuffix.indexOf('ngstyle') >= 0) {\n // Note: ngstyle files have names like `afile.css.ngstyle.ts`\n if (!this.originalFileExists(base)) {\n return {generate: false};\n }\n } else {\n // Note: on-the-fly generated files always have a `.ts` suffix,\n // but the file from which we generated it can be a `.ts`/ `.tsx`/ `.d.ts`\n // (see options.generateCodeForLibraries).\n baseFileName = [`${base}.ts`, `${base}.tsx`, `${base}.d.ts`].find(\n baseFileName => this.isSourceFile(baseFileName) && this.originalFileExists(baseFileName));\n if (!baseFileName) {\n return {generate: false};\n }\n }\n return {generate: true, baseFileName};\n }\n\n shouldGenerateFilesFor(fileName: string) {\n // TODO(tbosch): allow generating files that are not in the rootDir\n // See https://github.com/angular/angular/issues/19337\n return !GENERATED_FILES.test(fileName) && this.isSourceFile(fileName) &&\n isInRootDir(fileName, this.options);\n }\n\n getSourceFile(\n fileName: string, languageVersion: ts.ScriptTarget,\n onError?: ((message: string) => void)|undefined): ts.SourceFile {\n // Note: Don't exit early in this method to make sure\n // we always have up to date references on the file!\n let genFileNames: string[] = [];\n let sf = this.getGeneratedFile(fileName);\n if (!sf) {\n const summary = this.librarySummaries.get(fileName);\n if (summary) {\n if (!summary.sourceFile) {\n summary.sourceFile = ts.createSourceFile(\n fileName, summary.text, this.options.target || ts.ScriptTarget.Latest);\n }\n sf = summary.sourceFile;\n genFileNames = [];\n }\n }\n if (!sf) {\n sf = this.getOriginalSourceFile(fileName);\n const cachedGenFiles = this.generatedCodeFor.get(fileName);\n if (cachedGenFiles) {\n genFileNames = cachedGenFiles;\n } else {\n if (!this.options.noResolve && this.shouldGenerateFilesFor(fileName)) {\n genFileNames = this.codeGenerator.findGeneratedFileNames(fileName).filter(\n fileName => this.shouldGenerateFile(fileName).generate);\n }\n this.generatedCodeFor.set(fileName, genFileNames);\n }\n }\n if (sf) {\n addReferencesToSourceFile(sf, genFileNames);\n }\n // TODO(tbosch): TypeScript's typings for getSourceFile are incorrect,\n // as it can very well return undefined.\n return sf !;\n }\n\n private getGeneratedFile(fileName: string): ts.SourceFile|null {\n const genSrcFile = this.generatedSourceFiles.get(fileName);\n if (genSrcFile) {\n return genSrcFile.sourceFile;\n }\n const {generate, baseFileName} = this.shouldGenerateFile(fileName);\n if (generate) {\n const genFile = this.codeGenerator.generateFile(fileName, baseFileName);\n return this.addGeneratedFile(genFile, genFileExternalReferences(genFile));\n }\n return null;\n }\n\n private originalFileExists(fileName: string): boolean {\n let fileExists = this.originalFileExistsCache.get(fileName);\n if (fileExists == null) {\n fileExists = this.context.fileExists(fileName);\n this.originalFileExistsCache.set(fileName, fileExists);\n }\n return fileExists;\n }\n\n fileExists(fileName: string): boolean {\n fileName = stripNgResourceSuffix(fileName);\n if (this.librarySummaries.has(fileName) || this.generatedSourceFiles.has(fileName)) {\n return true;\n }\n if (this.shouldGenerateFile(fileName).generate) {\n return true;\n }\n return this.originalFileExists(fileName);\n }\n\n loadSummary(filePath: string): string|null {\n const summary = this.librarySummaries.get(filePath);\n if (summary) {\n return summary.text;\n }\n if (this.originalFileExists(filePath)) {\n return assert(this.context.readFile(filePath));\n }\n return null;\n }\n\n isSourceFile(filePath: string): boolean {\n // Don't generate any files nor typecheck them\n // if skipTemplateCodegen is set and fullTemplateTypeCheck is not yet set,\n // for backwards compatibility.\n if (this.options.skipTemplateCodegen && !this.options.fullTemplateTypeCheck) {\n return false;\n }\n // If we have a summary from a previous compilation,\n // treat the file never as a source file.\n if (this.librarySummaries.has(filePath)) {\n return false;\n }\n if (GENERATED_FILES.test(filePath)) {\n return false;\n }\n if (this.options.generateCodeForLibraries === false && DTS.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 readFile(fileName: string) {\n const summary = this.librarySummaries.get(fileName);\n if (summary) {\n return summary.text;\n }\n return this.context.readFile(fileName);\n }\n\n getMetadataFor(filePath: string): ModuleMetadata[]|undefined {\n return readMetadata(filePath, this.metadataReaderHost, this.metadataReaderCache);\n }\n\n loadResource(filePath: string): Promise<string>|string {\n if (this.context.readResource) return this.context.readResource(filePath);\n if (!this.originalFileExists(filePath)) {\n throw syntaxError(`Error: Resource file not found: ${filePath}`);\n }\n return assert(this.context.readFile(filePath));\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.originalFileExists(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(assert(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.originalFileExists(metadataFile)) {\n const metadata = JSON.parse(assert(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 getDefaultLibFileName = (options: ts.CompilerOptions) =>\n this.context.getDefaultLibFileName(options)\n getCurrentDirectory = () => this.context.getCurrentDirectory();\n getCanonicalFileName = (fileName: string) => this.context.getCanonicalFileName(fileName);\n useCaseSensitiveFileNames = () => this.context.useCaseSensitiveFileNames();\n getNewLine = () => this.context.getNewLine();\n // Make sure we do not `host.realpath()` from TS as we do not want to resolve symlinks.\n // https://github.com/Microsoft/TypeScript/issues/9552\n realPath = (p: string) => p;\n writeFile = this.context.writeFile.bind(this.context);\n}\n\nfunction genFileExternalReferences(genFile: GeneratedFile): Set<string> {\n return new Set(collectExternalReferences(genFile.stmts !).map(er => er.moduleName !));\n}\n\nfunction addReferencesToSourceFile(sf: ts.SourceFile, genFileNames: string[]) {\n // Note: as we modify ts.SourceFiles we need to keep the original\n // value for `referencedFiles` around in cache the original host is caching ts.SourceFiles.\n // Note: cloning the ts.SourceFile is expensive as the nodes in have parent pointers,\n // i.e. we would also need to clone and adjust all nodes.\n let originalReferencedFiles: ts.FileReference[]|undefined = (sf as any).originalReferencedFiles;\n if (!originalReferencedFiles) {\n originalReferencedFiles = sf.referencedFiles;\n (sf as any).originalReferencedFiles = originalReferencedFiles;\n }\n const newReferencedFiles = [...originalReferencedFiles];\n genFileNames.forEach(gf => newReferencedFiles.push({fileName: gf, pos: 0, end: 0}));\n sf.referencedFiles = newReferencedFiles;\n}\n\nexport function getOriginalReferences(sourceFile: ts.SourceFile): ts.FileReference[]|undefined {\n return sourceFile && (sourceFile as any).originalReferencedFiles;\n}\n\nfunction 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 */\nfunction getPackageName(filePath: string): string|null {\n const match = NODE_MODULES_PACKAGE_NAME.exec(filePath);\n return match ? match[1] : null;\n}\n\nfunction stripNodeModulesPrefix(filePath: string): string {\n return filePath.replace(/.*node_modules\\//, '');\n}\n\nfunction getNodeModulesPrefix(filePath: string): string|null {\n const match = /.*node_modules\\//.exec(filePath);\n return match ? match[1] : null;\n}\n\nfunction stripNgResourceSuffix(fileName: string): string {\n return fileName.replace(/\\.\\$ngresource\\$.*/, '');\n}\n\nfunction addNgResourceSuffix(fileName: string): string {\n return `${fileName}.$ngresource$`;\n}\n"]} |
@@ -292,5 +292,7 @@ "use strict"; | ||
| var metadata = _this.metadataCache.getMetadata(sf); | ||
| var metadataText = JSON.stringify([metadata]); | ||
| var outFileName = srcToOutPath(sf.fileName.replace(/\.ts$/, '.metadata.json')); | ||
| _this.writeFile(outFileName, metadataText, false, undefined, undefined, [sf]); | ||
| if (metadata) { | ||
| var metadataText = JSON.stringify([metadata]); | ||
| var outFileName = srcToOutPath(sf.fileName.replace(/\.tsx?$/, '.metadata.json')); | ||
| _this.writeFile(outFileName, metadataText, false, undefined, undefined, [sf]); | ||
| } | ||
| } | ||
@@ -297,0 +299,0 @@ }); |
+1
-1
@@ -19,3 +19,3 @@ "use strict"; | ||
| */ | ||
| exports.VERSION = new compiler_1.Version('5.1.1'); | ||
| exports.VERSION = new compiler_1.Version('5.1.2'); | ||
| //# sourceMappingURL=version.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/version.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH;;;;GAIG;AAEH,8CAA0C;AAC1C;;GAEG;AACU,QAAA,OAAO,GAAG,IAAI,kBAAO,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/compiler';\n/**\n * @stable\n */\nexport const VERSION = new Version('5.1.1');\n"]} | ||
| {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/version.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH;;;;GAIG;AAEH,8CAA0C;AAC1C;;GAEG;AACU,QAAA,OAAO,GAAG,IAAI,kBAAO,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/compiler';\n/**\n * @stable\n */\nexport const VERSION = new Version('5.1.2');\n"]} |
Sorry, the diff of this file is too big to display
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
1007150
0.04%8887
0.02%