UNPKG

7.33 kBSource Map (JSON)View Raw
1{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../../../modules/@angular/compiler-cli/src/extractor.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\n\n/**\n * Extract i18n messages from source code\n */\n// Must be imported first, because angular2 decorators throws on load.\nimport 'reflect-metadata';\n\nimport * as compiler from '@angular/compiler';\nimport {ViewEncapsulation} from '@angular/core';\nimport * as tsc from '@angular/tsc-wrapped';\nimport * as ts from 'typescript';\n\nimport {extractProgramSymbols} from './codegen';\nimport {ReflectorHost} from './reflector_host';\nimport {StaticAndDynamicReflectionCapabilities} from './static_reflection_capabilities';\nimport {StaticReflector, StaticSymbol} from './static_reflector';\n\nexport class Extractor {\n constructor(\n private options: tsc.AngularCompilerOptions, private program: ts.Program,\n public host: ts.CompilerHost, private staticReflector: StaticReflector,\n private messageBundle: compiler.MessageBundle, private reflectorHost: ReflectorHost,\n private metadataResolver: compiler.CompileMetadataResolver) {}\n\n extract(): Promise<compiler.MessageBundle> {\n const programSymbols: StaticSymbol[] =\n extractProgramSymbols(this.program, this.staticReflector, this.reflectorHost, this.options);\n\n const {ngModules, files} = compiler.analyzeAndValidateNgModules(\n programSymbols, {transitiveModules: true}, this.metadataResolver);\n return compiler.loadNgModuleDirectives(ngModules).then(() => {\n const errors: compiler.ParseError[] = [];\n\n files.forEach(file => {\n const compMetas: compiler.CompileDirectiveMetadata[] = [];\n file.directives.forEach(directiveType => {\n const dirMeta = this.metadataResolver.getDirectiveMetadata(directiveType);\n if (dirMeta && dirMeta.isComponent) {\n compMetas.push(dirMeta);\n }\n });\n compMetas.forEach(compMeta => {\n const html = compMeta.template.template;\n const interpolationConfig =\n compiler.InterpolationConfig.fromArray(compMeta.template.interpolation);\n errors.push(\n ...this.messageBundle.updateFromTemplate(html, file.srcUrl, interpolationConfig));\n });\n });\n\n if (errors.length) {\n throw new Error(errors.map(e => e.toString()).join('\\n'));\n }\n\n return this.messageBundle;\n });\n }\n\n static create(\n options: tsc.AngularCompilerOptions, translationsFormat: string, program: ts.Program,\n compilerHost: ts.CompilerHost, resourceLoader: compiler.ResourceLoader,\n reflectorHost?: ReflectorHost): Extractor {\n const htmlParser = new compiler.I18NHtmlParser(new compiler.HtmlParser());\n\n const urlResolver: compiler.UrlResolver = compiler.createOfflineCompileUrlResolver();\n if (!reflectorHost) reflectorHost = new ReflectorHost(program, compilerHost, options);\n const staticReflector = new StaticReflector(reflectorHost);\n StaticAndDynamicReflectionCapabilities.install(staticReflector);\n\n const config = new compiler.CompilerConfig({\n genDebugInfo: options.debug === true,\n defaultEncapsulation: ViewEncapsulation.Emulated,\n logBindingUpdate: false,\n useJit: false\n });\n\n const normalizer =\n new compiler.DirectiveNormalizer(resourceLoader, urlResolver, htmlParser, config);\n const elementSchemaRegistry = new compiler.DomElementSchemaRegistry();\n const resolver = new compiler.CompileMetadataResolver(\n new compiler.NgModuleResolver(staticReflector),\n new compiler.DirectiveResolver(staticReflector), new compiler.PipeResolver(staticReflector),\n elementSchemaRegistry, normalizer, staticReflector);\n\n // TODO(vicb): implicit tags & attributes\n const messageBundle = new compiler.MessageBundle(htmlParser, [], {});\n\n return new Extractor(\n options, program, compilerHost, staticReflector, messageBundle, reflectorHost, resolver);\n }\n}\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
\No newline at end of file