@angular/compiler-cli 2.2.2 → 2.2.3
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/index.d.ts +2 -2
- package/index.js +6 -6
- package/index.js.map +1 -1
- package/index.metadata.json +1 -1
- package/package.json +4 -4
- package/src/codegen.d.ts +10 -6
- package/src/codegen.js +75 -27
- package/src/codegen.js.map +1 -1
- package/src/extract_i18n.js +10 -1
- package/src/extract_i18n.js.map +1 -1
- package/src/extractor.d.ts +10 -5
- package/src/extractor.js +53 -10
- package/src/extractor.js.map +1 -1
- package/src/main.js +3 -1
- package/src/main.js.map +1 -1
- package/src/{path_mapped_compiler_host.d.ts → path_mapped_reflector_host.d.ts} +14 -7
- package/src/{path_mapped_compiler_host.js → path_mapped_reflector_host.js} +25 -27
- package/src/path_mapped_reflector_host.js.map +1 -0
- package/src/private_import_core.d.ts +4 -0
- package/src/private_import_core.js +1 -0
- package/src/private_import_core.js.map +1 -1
- package/src/private_import_core.metadata.json +1 -1
- package/src/{compiler_host.d.ts → reflector_host.d.ts} +34 -15
- package/src/reflector_host.js +324 -0
- package/src/reflector_host.js.map +1 -0
- package/src/static_reflection_capabilities.d.ts +29 -0
- package/src/static_reflection_capabilities.js +57 -0
- package/src/static_reflection_capabilities.js.map +1 -0
- package/src/static_reflector.d.ts +82 -0
- package/src/static_reflector.js +601 -0
- package/src/static_reflector.js.map +1 -0
- package/src/codegen.metadata.json +0 -1
- package/src/compiler_host.js +0 -226
- package/src/compiler_host.js.map +0 -1
- package/src/compiler_host.metadata.json +0 -1
- package/src/extractor.metadata.json +0 -1
- package/src/path_mapped_compiler_host.js.map +0 -1
- package/src/path_mapped_compiler_host.metadata.json +0 -1
package/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
export { AotCompilerHost, AotCompilerHost as StaticReflectorHost, StaticReflector, StaticSymbol } from '@angular/compiler';
|
|
9
8
|
export { CodeGenerator } from './src/codegen';
|
|
10
|
-
export { CompilerHost, CompilerHostContext, NodeCompilerHostContext } from './src/compiler_host';
|
|
11
9
|
export { Extractor } from './src/extractor';
|
|
10
|
+
export { NodeReflectorHostContext, ReflectorHost, ReflectorHostContext } from './src/reflector_host';
|
|
11
|
+
export { StaticReflector, StaticReflectorHost, StaticSymbol } from './src/static_reflector';
|
|
12
12
|
export * from '@angular/tsc-wrapped';
|
package/index.js
CHANGED
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
function __export(m) {
|
|
10
10
|
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
|
11
11
|
}
|
|
12
|
-
var compiler_1 = require('@angular/compiler');
|
|
13
|
-
exports.StaticReflector = compiler_1.StaticReflector;
|
|
14
|
-
exports.StaticSymbol = compiler_1.StaticSymbol;
|
|
15
12
|
var codegen_1 = require('./src/codegen');
|
|
16
13
|
exports.CodeGenerator = codegen_1.CodeGenerator;
|
|
17
|
-
var compiler_host_1 = require('./src/compiler_host');
|
|
18
|
-
exports.CompilerHost = compiler_host_1.CompilerHost;
|
|
19
|
-
exports.NodeCompilerHostContext = compiler_host_1.NodeCompilerHostContext;
|
|
20
14
|
var extractor_1 = require('./src/extractor');
|
|
21
15
|
exports.Extractor = extractor_1.Extractor;
|
|
16
|
+
var reflector_host_1 = require('./src/reflector_host');
|
|
17
|
+
exports.NodeReflectorHostContext = reflector_host_1.NodeReflectorHostContext;
|
|
18
|
+
exports.ReflectorHost = reflector_host_1.ReflectorHost;
|
|
19
|
+
var static_reflector_1 = require('./src/static_reflector');
|
|
20
|
+
exports.StaticReflector = static_reflector_1.StaticReflector;
|
|
21
|
+
exports.StaticSymbol = static_reflector_1.StaticSymbol;
|
|
22
22
|
__export(require('@angular/tsc-wrapped'));
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/Users/
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;AAEH,wBAA4B,eAAe,CAAC;AAApC,gDAAoC;AAC5C,0BAAwB,iBAAiB,CAAC;AAAlC,0CAAkC;AAC1C,+BAA4E,sBAAsB,CAAC;AAA3F,6EAAwB;AAAE,uDAAiE;AACnG,iCAAiE,wBAAwB,CAAC;AAAlF,6DAAe;AAAuB,uDAA4C;AAE1F,iBAAc,sBAAsB,CAAC,EAAA"}
|
package/index.metadata.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/codegen","export":["CodeGenerator"]},{"from":"./src/extractor","export":["Extractor"]},{"from":"./src/reflector_host","export":["NodeReflectorHostContext","ReflectorHost","ReflectorHostContext"]},{"from":"./src/static_reflector","export":["StaticReflector","StaticReflectorHost","StaticSymbol"]},{"from":"@angular/tsc-wrapped"}]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/compiler-cli",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
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": "^0.
|
|
12
|
+
"@angular/tsc-wrapped": "^0.3.0",
|
|
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": "2.2.
|
|
19
|
-
"@angular/core": "2.2.
|
|
18
|
+
"@angular/compiler": "2.2.3",
|
|
19
|
+
"@angular/core": "2.2.3"
|
|
20
20
|
},
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
package/src/codegen.d.ts
CHANGED
|
@@ -12,16 +12,20 @@
|
|
|
12
12
|
import * as compiler from '@angular/compiler';
|
|
13
13
|
import { AngularCompilerOptions, NgcCliOptions } from '@angular/tsc-wrapped';
|
|
14
14
|
import * as ts from 'typescript';
|
|
15
|
-
import {
|
|
15
|
+
import { ReflectorHost, ReflectorHostContext } from './reflector_host';
|
|
16
|
+
import { StaticReflector, StaticReflectorHost, StaticSymbol } from './static_reflector';
|
|
16
17
|
export declare class CodeGenerator {
|
|
17
18
|
private options;
|
|
18
19
|
private program;
|
|
19
20
|
host: ts.CompilerHost;
|
|
21
|
+
private staticReflector;
|
|
20
22
|
private compiler;
|
|
21
|
-
private
|
|
22
|
-
constructor(options: AngularCompilerOptions, program: ts.Program, host: ts.CompilerHost, compiler: compiler.
|
|
23
|
+
private reflectorHost;
|
|
24
|
+
constructor(options: AngularCompilerOptions, program: ts.Program, host: ts.CompilerHost, staticReflector: StaticReflector, compiler: compiler.OfflineCompiler, reflectorHost: StaticReflectorHost);
|
|
23
25
|
private calculateEmitPath(filePath);
|
|
24
|
-
codegen(
|
|
25
|
-
|
|
26
|
+
codegen(options: {
|
|
27
|
+
transitiveModules: boolean;
|
|
28
|
+
}): Promise<any>;
|
|
29
|
+
static create(options: AngularCompilerOptions, cliOptions: NgcCliOptions, program: ts.Program, compilerHost: ts.CompilerHost, reflectorHostContext?: ReflectorHostContext, resourceLoader?: compiler.ResourceLoader, reflectorHost?: ReflectorHost): CodeGenerator;
|
|
26
30
|
}
|
|
27
|
-
export declare function
|
|
31
|
+
export declare function extractProgramSymbols(program: ts.Program, staticReflector: StaticReflector, reflectorHost: StaticReflectorHost, options: AngularCompilerOptions): StaticSymbol[];
|
package/src/codegen.js
CHANGED
|
@@ -11,20 +11,25 @@
|
|
|
11
11
|
* Intended to be used in a build step.
|
|
12
12
|
*/
|
|
13
13
|
var compiler = require('@angular/compiler');
|
|
14
|
+
var core_1 = require('@angular/core');
|
|
14
15
|
var fs_1 = require('fs');
|
|
15
16
|
var path = require('path');
|
|
16
|
-
var
|
|
17
|
-
var
|
|
17
|
+
var path_mapped_reflector_host_1 = require('./path_mapped_reflector_host');
|
|
18
|
+
var private_import_core_1 = require('./private_import_core');
|
|
19
|
+
var reflector_host_1 = require('./reflector_host');
|
|
20
|
+
var static_reflection_capabilities_1 = require('./static_reflection_capabilities');
|
|
21
|
+
var static_reflector_1 = require('./static_reflector');
|
|
18
22
|
var GENERATED_FILES = /\.ngfactory\.ts$|\.css\.ts$|\.css\.shim\.ts$/;
|
|
19
23
|
var GENERATED_OR_DTS_FILES = /\.d\.ts$|\.ngfactory\.ts$|\.css\.ts$|\.css\.shim\.ts$/;
|
|
20
24
|
var PREAMBLE = "/**\n * @fileoverview This file is generated by the Angular 2 template compiler.\n * Do not edit.\n * @suppress {suspiciousCode,uselessCode,missingProperties}\n */\n /* tslint:disable */\n\n";
|
|
21
25
|
var CodeGenerator = (function () {
|
|
22
|
-
function CodeGenerator(options, program, host, compiler,
|
|
26
|
+
function CodeGenerator(options, program, host, staticReflector, compiler, reflectorHost) {
|
|
23
27
|
this.options = options;
|
|
24
28
|
this.program = program;
|
|
25
29
|
this.host = host;
|
|
30
|
+
this.staticReflector = staticReflector;
|
|
26
31
|
this.compiler = compiler;
|
|
27
|
-
this.
|
|
32
|
+
this.reflectorHost = reflectorHost;
|
|
28
33
|
}
|
|
29
34
|
// Write codegen in a directory structure matching the sources.
|
|
30
35
|
CodeGenerator.prototype.calculateEmitPath = function (filePath) {
|
|
@@ -47,11 +52,10 @@ var CodeGenerator = (function () {
|
|
|
47
52
|
}
|
|
48
53
|
return path.join(this.options.genDir, relativePath);
|
|
49
54
|
};
|
|
50
|
-
CodeGenerator.prototype.codegen = function () {
|
|
55
|
+
CodeGenerator.prototype.codegen = function (options) {
|
|
51
56
|
var _this = this;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.then(function (generatedModules) {
|
|
57
|
+
var staticSymbols = extractProgramSymbols(this.program, this.staticReflector, this.reflectorHost, this.options);
|
|
58
|
+
return this.compiler.compileModules(staticSymbols, options).then(function (generatedModules) {
|
|
55
59
|
generatedModules.forEach(function (generatedModule) {
|
|
56
60
|
var sourceFile = _this.program.getSourceFile(generatedModule.fileUrl);
|
|
57
61
|
var emitPath = _this.calculateEmitPath(generatedModule.moduleUrl);
|
|
@@ -59,13 +63,16 @@ var CodeGenerator = (function () {
|
|
|
59
63
|
});
|
|
60
64
|
});
|
|
61
65
|
};
|
|
62
|
-
CodeGenerator.create = function (options, cliOptions, program,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
CodeGenerator.create = function (options, cliOptions, program, compilerHost, reflectorHostContext, resourceLoader, reflectorHost) {
|
|
67
|
+
resourceLoader = resourceLoader || {
|
|
68
|
+
get: function (s) {
|
|
69
|
+
if (!compilerHost.fileExists(s)) {
|
|
70
|
+
// TODO: We should really have a test for error cases like this!
|
|
71
|
+
throw new Error("Compilation failed. Resource file not found: " + s);
|
|
72
|
+
}
|
|
73
|
+
return Promise.resolve(compilerHost.readFile(s));
|
|
74
|
+
}
|
|
75
|
+
};
|
|
69
76
|
var transFile = cliOptions.i18nFile;
|
|
70
77
|
var locale = cliOptions.locale;
|
|
71
78
|
var transContent = '';
|
|
@@ -75,21 +82,62 @@ var CodeGenerator = (function () {
|
|
|
75
82
|
}
|
|
76
83
|
transContent = fs_1.readFileSync(transFile, 'utf8');
|
|
77
84
|
}
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
var urlResolver = compiler.createOfflineCompileUrlResolver();
|
|
86
|
+
if (!reflectorHost) {
|
|
87
|
+
var usePathMapping = !!options.rootDirs && options.rootDirs.length > 0;
|
|
88
|
+
reflectorHost = usePathMapping ?
|
|
89
|
+
new path_mapped_reflector_host_1.PathMappedReflectorHost(program, compilerHost, options, reflectorHostContext) :
|
|
90
|
+
new reflector_host_1.ReflectorHost(program, compilerHost, options, reflectorHostContext);
|
|
91
|
+
}
|
|
92
|
+
var staticReflector = new static_reflector_1.StaticReflector(reflectorHost);
|
|
93
|
+
static_reflection_capabilities_1.StaticAndDynamicReflectionCapabilities.install(staticReflector);
|
|
94
|
+
var htmlParser = new compiler.I18NHtmlParser(new compiler.HtmlParser(), transContent, cliOptions.i18nFormat);
|
|
95
|
+
var config = new compiler.CompilerConfig({
|
|
96
|
+
genDebugInfo: options.debug === true,
|
|
97
|
+
defaultEncapsulation: core_1.ViewEncapsulation.Emulated,
|
|
98
|
+
logBindingUpdate: false,
|
|
99
|
+
useJit: false
|
|
100
|
+
});
|
|
101
|
+
var normalizer = new compiler.DirectiveNormalizer(resourceLoader, urlResolver, htmlParser, config);
|
|
102
|
+
var expressionParser = new compiler.Parser(new compiler.Lexer());
|
|
103
|
+
var elementSchemaRegistry = new compiler.DomElementSchemaRegistry();
|
|
104
|
+
var console = new private_import_core_1.Console();
|
|
105
|
+
var tmplParser = new compiler.TemplateParser(expressionParser, elementSchemaRegistry, htmlParser, console, []);
|
|
106
|
+
var resolver = new compiler.CompileMetadataResolver(new compiler.NgModuleResolver(staticReflector), new compiler.DirectiveResolver(staticReflector), new compiler.PipeResolver(staticReflector), elementSchemaRegistry, normalizer, staticReflector);
|
|
107
|
+
// TODO(vicb): do not pass cliOptions.i18nFormat here
|
|
108
|
+
var offlineCompiler = new compiler.OfflineCompiler(resolver, tmplParser, new compiler.StyleCompiler(urlResolver), new compiler.ViewCompiler(config, elementSchemaRegistry), new compiler.DirectiveWrapperCompiler(config, expressionParser, elementSchemaRegistry, console), new compiler.NgModuleCompiler(), new compiler.TypeScriptEmitter(reflectorHost), cliOptions.locale, cliOptions.i18nFormat, new compiler.AnimationParser(elementSchemaRegistry));
|
|
109
|
+
return new CodeGenerator(options, program, compilerHost, staticReflector, offlineCompiler, reflectorHost);
|
|
87
110
|
};
|
|
88
111
|
return CodeGenerator;
|
|
89
112
|
}());
|
|
90
113
|
exports.CodeGenerator = CodeGenerator;
|
|
91
|
-
function
|
|
92
|
-
|
|
114
|
+
function extractProgramSymbols(program, staticReflector, reflectorHost, options) {
|
|
115
|
+
// Compare with false since the default should be true
|
|
116
|
+
var skipFileNames = options.generateCodeForLibraries === false ? GENERATED_OR_DTS_FILES : GENERATED_FILES;
|
|
117
|
+
var staticSymbols = [];
|
|
118
|
+
program.getSourceFiles()
|
|
119
|
+
.filter(function (sourceFile) { return !skipFileNames.test(sourceFile.fileName); })
|
|
120
|
+
.forEach(function (sourceFile) {
|
|
121
|
+
var absSrcPath = reflectorHost.getCanonicalFileName(sourceFile.fileName);
|
|
122
|
+
var moduleMetadata = staticReflector.getModuleMetadata(absSrcPath);
|
|
123
|
+
if (!moduleMetadata) {
|
|
124
|
+
console.log("WARNING: no metadata found for " + absSrcPath);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
var metadata = moduleMetadata['metadata'];
|
|
128
|
+
if (!metadata) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
for (var _i = 0, _a = Object.keys(metadata); _i < _a.length; _i++) {
|
|
132
|
+
var symbol = _a[_i];
|
|
133
|
+
if (metadata[symbol] && metadata[symbol].__symbolic == 'error') {
|
|
134
|
+
// Ignore symbols that are only included to record error information.
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
staticSymbols.push(reflectorHost.findDeclaration(absSrcPath, symbol, absSrcPath));
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
return staticSymbols;
|
|
93
141
|
}
|
|
94
|
-
exports.
|
|
142
|
+
exports.extractProgramSymbols = extractProgramSymbols;
|
|
95
143
|
//# sourceMappingURL=codegen.js.map
|
package/src/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"/Users/
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/codegen.ts"],"names":[],"mappings":"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"}
|
package/src/extract_i18n.js
CHANGED
|
@@ -6,7 +6,16 @@ var tsc = require('@angular/tsc-wrapped');
|
|
|
6
6
|
var path = require('path');
|
|
7
7
|
var extractor_1 = require('./extractor');
|
|
8
8
|
function extract(ngOptions, cliOptions, program, host) {
|
|
9
|
-
var
|
|
9
|
+
var resourceLoader = {
|
|
10
|
+
get: function (s) {
|
|
11
|
+
if (!host.fileExists(s)) {
|
|
12
|
+
// TODO: We should really have a test for error cases like this!
|
|
13
|
+
throw new Error("Compilation failed. Resource file not found: " + s);
|
|
14
|
+
}
|
|
15
|
+
return Promise.resolve(host.readFile(s));
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var extractor = extractor_1.Extractor.create(ngOptions, cliOptions.i18nFormat, program, host, resourceLoader);
|
|
10
19
|
var bundlePromise = extractor.extract();
|
|
11
20
|
return (bundlePromise).then(function (messageBundle) {
|
|
12
21
|
var ext;
|
package/src/extract_i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract_i18n.js","sourceRoot":"/Users/
|
|
1
|
+
{"version":3,"file":"extract_i18n.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/extract_i18n.ts"],"names":[],"mappings":"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"}
|
package/src/extractor.d.ts
CHANGED
|
@@ -12,12 +12,17 @@ import 'reflect-metadata';
|
|
|
12
12
|
import * as compiler from '@angular/compiler';
|
|
13
13
|
import * as tsc from '@angular/tsc-wrapped';
|
|
14
14
|
import * as ts from 'typescript';
|
|
15
|
-
import {
|
|
15
|
+
import { ReflectorHost } from './reflector_host';
|
|
16
|
+
import { StaticReflector } from './static_reflector';
|
|
16
17
|
export declare class Extractor {
|
|
17
|
-
private
|
|
18
|
-
private ngCompilerHost;
|
|
18
|
+
private options;
|
|
19
19
|
private program;
|
|
20
|
-
|
|
20
|
+
host: ts.CompilerHost;
|
|
21
|
+
private staticReflector;
|
|
22
|
+
private messageBundle;
|
|
23
|
+
private reflectorHost;
|
|
24
|
+
private metadataResolver;
|
|
25
|
+
constructor(options: tsc.AngularCompilerOptions, program: ts.Program, host: ts.CompilerHost, staticReflector: StaticReflector, messageBundle: compiler.MessageBundle, reflectorHost: ReflectorHost, metadataResolver: compiler.CompileMetadataResolver);
|
|
21
26
|
extract(): Promise<compiler.MessageBundle>;
|
|
22
|
-
static create(options: tsc.AngularCompilerOptions, translationsFormat: string, program: ts.Program,
|
|
27
|
+
static create(options: tsc.AngularCompilerOptions, translationsFormat: string, program: ts.Program, compilerHost: ts.CompilerHost, resourceLoader: compiler.ResourceLoader, reflectorHost?: ReflectorHost): Extractor;
|
|
23
28
|
}
|
package/src/extractor.js
CHANGED
|
@@ -12,23 +12,66 @@
|
|
|
12
12
|
// Must be imported first, because angular2 decorators throws on load.
|
|
13
13
|
require('reflect-metadata');
|
|
14
14
|
var compiler = require('@angular/compiler');
|
|
15
|
+
var core_1 = require('@angular/core');
|
|
15
16
|
var codegen_1 = require('./codegen');
|
|
16
|
-
var
|
|
17
|
+
var reflector_host_1 = require('./reflector_host');
|
|
18
|
+
var static_reflection_capabilities_1 = require('./static_reflection_capabilities');
|
|
19
|
+
var static_reflector_1 = require('./static_reflector');
|
|
17
20
|
var Extractor = (function () {
|
|
18
|
-
function Extractor(
|
|
19
|
-
this.
|
|
20
|
-
this.ngCompilerHost = ngCompilerHost;
|
|
21
|
+
function Extractor(options, program, host, staticReflector, messageBundle, reflectorHost, metadataResolver) {
|
|
22
|
+
this.options = options;
|
|
21
23
|
this.program = program;
|
|
24
|
+
this.host = host;
|
|
25
|
+
this.staticReflector = staticReflector;
|
|
26
|
+
this.messageBundle = messageBundle;
|
|
27
|
+
this.reflectorHost = reflectorHost;
|
|
28
|
+
this.metadataResolver = metadataResolver;
|
|
22
29
|
}
|
|
23
30
|
Extractor.prototype.extract = function () {
|
|
24
31
|
var _this = this;
|
|
25
|
-
|
|
32
|
+
var programSymbols = codegen_1.extractProgramSymbols(this.program, this.staticReflector, this.reflectorHost, this.options);
|
|
33
|
+
var _a = compiler.analyzeAndValidateNgModules(programSymbols, { transitiveModules: true }, this.metadataResolver), ngModules = _a.ngModules, files = _a.files;
|
|
34
|
+
return compiler.loadNgModuleDirectives(ngModules).then(function () {
|
|
35
|
+
var errors = [];
|
|
36
|
+
files.forEach(function (file) {
|
|
37
|
+
var compMetas = [];
|
|
38
|
+
file.directives.forEach(function (directiveType) {
|
|
39
|
+
var dirMeta = _this.metadataResolver.getDirectiveMetadata(directiveType);
|
|
40
|
+
if (dirMeta && dirMeta.isComponent) {
|
|
41
|
+
compMetas.push(dirMeta);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
compMetas.forEach(function (compMeta) {
|
|
45
|
+
var html = compMeta.template.template;
|
|
46
|
+
var interpolationConfig = compiler.InterpolationConfig.fromArray(compMeta.template.interpolation);
|
|
47
|
+
errors.push.apply(errors, _this.messageBundle.updateFromTemplate(html, file.srcUrl, interpolationConfig));
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
if (errors.length) {
|
|
51
|
+
throw new Error(errors.map(function (e) { return e.toString(); }).join('\n'));
|
|
52
|
+
}
|
|
53
|
+
return _this.messageBundle;
|
|
54
|
+
});
|
|
26
55
|
};
|
|
27
|
-
Extractor.create = function (options, translationsFormat, program,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
56
|
+
Extractor.create = function (options, translationsFormat, program, compilerHost, resourceLoader, reflectorHost) {
|
|
57
|
+
var htmlParser = new compiler.I18NHtmlParser(new compiler.HtmlParser());
|
|
58
|
+
var urlResolver = compiler.createOfflineCompileUrlResolver();
|
|
59
|
+
if (!reflectorHost)
|
|
60
|
+
reflectorHost = new reflector_host_1.ReflectorHost(program, compilerHost, options);
|
|
61
|
+
var staticReflector = new static_reflector_1.StaticReflector(reflectorHost);
|
|
62
|
+
static_reflection_capabilities_1.StaticAndDynamicReflectionCapabilities.install(staticReflector);
|
|
63
|
+
var config = new compiler.CompilerConfig({
|
|
64
|
+
genDebugInfo: options.debug === true,
|
|
65
|
+
defaultEncapsulation: core_1.ViewEncapsulation.Emulated,
|
|
66
|
+
logBindingUpdate: false,
|
|
67
|
+
useJit: false
|
|
68
|
+
});
|
|
69
|
+
var normalizer = new compiler.DirectiveNormalizer(resourceLoader, urlResolver, htmlParser, config);
|
|
70
|
+
var elementSchemaRegistry = new compiler.DomElementSchemaRegistry();
|
|
71
|
+
var resolver = new compiler.CompileMetadataResolver(new compiler.NgModuleResolver(staticReflector), new compiler.DirectiveResolver(staticReflector), new compiler.PipeResolver(staticReflector), elementSchemaRegistry, normalizer, staticReflector);
|
|
72
|
+
// TODO(vicb): implicit tags & attributes
|
|
73
|
+
var messageBundle = new compiler.MessageBundle(htmlParser, [], {});
|
|
74
|
+
return new Extractor(options, program, compilerHost, staticReflector, messageBundle, reflectorHost, resolver);
|
|
32
75
|
};
|
|
33
76
|
return Extractor;
|
|
34
77
|
}());
|
package/src/extractor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"/Users/
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/extractor.ts"],"names":[],"mappings":"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"}
|
package/src/main.js
CHANGED
|
@@ -4,7 +4,9 @@ require('reflect-metadata');
|
|
|
4
4
|
var tsc = require('@angular/tsc-wrapped');
|
|
5
5
|
var codegen_1 = require('./codegen');
|
|
6
6
|
function codegen(ngOptions, cliOptions, program, host) {
|
|
7
|
-
return codegen_1.CodeGenerator.create(ngOptions, cliOptions, program, host).codegen(
|
|
7
|
+
return codegen_1.CodeGenerator.create(ngOptions, cliOptions, program, host).codegen({
|
|
8
|
+
transitiveModules: true
|
|
9
|
+
});
|
|
8
10
|
}
|
|
9
11
|
// CLI entry point
|
|
10
12
|
if (require.main === module) {
|
package/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"/Users/
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/main.ts"],"names":[],"mappings":";;AAWA,QAAO,kBAAkB,CAAC,CAAA;AAG1B,IAAY,GAAG,WAAM,sBAAsB,CAAC,CAAA;AAE5C,wBAA4B,WAAW,CAAC,CAAA;AAExC,iBACI,SAAqC,EAAE,UAA6B,EAAE,OAAmB,EACzF,IAAqB;IACvB,MAAM,CAAC,uBAAa,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;QACxE,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC;AACL,CAAC;AAED,kBAAkB;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAtB,CAAsB,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
1
8
|
import { AngularCompilerOptions, ModuleMetadata } from '@angular/tsc-wrapped';
|
|
2
9
|
import * as ts from 'typescript';
|
|
3
|
-
import {
|
|
10
|
+
import { ReflectorHost, ReflectorHostContext } from './reflector_host';
|
|
4
11
|
/**
|
|
5
|
-
* This version of the
|
|
12
|
+
* This version of the reflector host expects that the program will be compiled
|
|
6
13
|
* and executed with a "path mapped" directory structure, where generated files
|
|
7
14
|
* are in a parallel tree with the sources, and imported using a `./` relative
|
|
8
15
|
* import. This requires using TS `rootDirs` option and also teaching the module
|
|
9
16
|
* loader what to do.
|
|
10
17
|
*/
|
|
11
|
-
export declare class
|
|
12
|
-
constructor(program: ts.Program, compilerHost: ts.CompilerHost, options: AngularCompilerOptions, context?:
|
|
18
|
+
export declare class PathMappedReflectorHost extends ReflectorHost {
|
|
19
|
+
constructor(program: ts.Program, compilerHost: ts.CompilerHost, options: AngularCompilerOptions, context?: ReflectorHostContext);
|
|
13
20
|
getCanonicalFileName(fileName: string): string;
|
|
14
|
-
|
|
21
|
+
protected resolve(m: string, containingFile: string): string;
|
|
15
22
|
/**
|
|
16
23
|
* We want a moduleId that will appear in import statements in the generated code.
|
|
17
24
|
* These need to be in a form that system.js can load, so absolute file paths don't work.
|
|
18
25
|
* Relativize the paths by checking candidate prefixes of the absolute path, to see if
|
|
19
26
|
* they are resolvable by the moduleResolution strategy from the CompilerHost.
|
|
20
27
|
*/
|
|
21
|
-
|
|
22
|
-
getMetadataFor(filePath: string): ModuleMetadata
|
|
28
|
+
getImportPath(containingFile: string, importedFile: string): string;
|
|
29
|
+
getMetadataFor(filePath: string): ModuleMetadata;
|
|
23
30
|
}
|
|
@@ -13,22 +13,22 @@ var __extends = (this && this.__extends) || function (d, b) {
|
|
|
13
13
|
};
|
|
14
14
|
var path = require('path');
|
|
15
15
|
var ts = require('typescript');
|
|
16
|
-
var
|
|
16
|
+
var reflector_host_1 = require('./reflector_host');
|
|
17
17
|
var EXT = /(\.ts|\.d\.ts|\.js|\.jsx|\.tsx)$/;
|
|
18
18
|
var DTS = /\.d\.ts$/;
|
|
19
19
|
/**
|
|
20
|
-
* This version of the
|
|
20
|
+
* This version of the reflector host expects that the program will be compiled
|
|
21
21
|
* and executed with a "path mapped" directory structure, where generated files
|
|
22
22
|
* are in a parallel tree with the sources, and imported using a `./` relative
|
|
23
23
|
* import. This requires using TS `rootDirs` option and also teaching the module
|
|
24
24
|
* loader what to do.
|
|
25
25
|
*/
|
|
26
|
-
var
|
|
27
|
-
__extends(
|
|
28
|
-
function
|
|
26
|
+
var PathMappedReflectorHost = (function (_super) {
|
|
27
|
+
__extends(PathMappedReflectorHost, _super);
|
|
28
|
+
function PathMappedReflectorHost(program, compilerHost, options, context) {
|
|
29
29
|
_super.call(this, program, compilerHost, options, context);
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
PathMappedReflectorHost.prototype.getCanonicalFileName = function (fileName) {
|
|
32
32
|
if (!fileName)
|
|
33
33
|
return fileName;
|
|
34
34
|
// NB: the rootDirs should have been sorted longest-first
|
|
@@ -40,14 +40,7 @@ var PathMappedCompilerHost = (function (_super) {
|
|
|
40
40
|
}
|
|
41
41
|
return fileName;
|
|
42
42
|
};
|
|
43
|
-
|
|
44
|
-
if (!containingFile || !containingFile.length) {
|
|
45
|
-
if (m.indexOf('.') === 0) {
|
|
46
|
-
throw new Error('Resolution of relative paths requires a containing file.');
|
|
47
|
-
}
|
|
48
|
-
// Any containing file gives the same result for absolute imports
|
|
49
|
-
containingFile = this.getCanonicalFileName(path.join(this.basePath, 'index.ts'));
|
|
50
|
-
}
|
|
43
|
+
PathMappedReflectorHost.prototype.resolve = function (m, containingFile) {
|
|
51
44
|
for (var _i = 0, _a = this.options.rootDirs || ['']; _i < _a.length; _i++) {
|
|
52
45
|
var root = _a[_i];
|
|
53
46
|
var rootedContainingFile = path.join(root, containingFile);
|
|
@@ -56,7 +49,7 @@ var PathMappedCompilerHost = (function (_super) {
|
|
|
56
49
|
if (this.options.traceResolution) {
|
|
57
50
|
console.log('resolve', m, containingFile, '=>', resolved.resolvedFileName);
|
|
58
51
|
}
|
|
59
|
-
return
|
|
52
|
+
return resolved.resolvedFileName;
|
|
60
53
|
}
|
|
61
54
|
}
|
|
62
55
|
};
|
|
@@ -66,8 +59,10 @@ var PathMappedCompilerHost = (function (_super) {
|
|
|
66
59
|
* Relativize the paths by checking candidate prefixes of the absolute path, to see if
|
|
67
60
|
* they are resolvable by the moduleResolution strategy from the CompilerHost.
|
|
68
61
|
*/
|
|
69
|
-
|
|
62
|
+
PathMappedReflectorHost.prototype.getImportPath = function (containingFile, importedFile) {
|
|
70
63
|
var _this = this;
|
|
64
|
+
importedFile = this.resolveAssetUrl(importedFile, containingFile);
|
|
65
|
+
containingFile = this.resolveAssetUrl(containingFile, '');
|
|
71
66
|
if (this.options.traceResolution) {
|
|
72
67
|
console.log('getImportPath from containingFile', containingFile, 'to importedFile', importedFile);
|
|
73
68
|
}
|
|
@@ -82,7 +77,7 @@ var PathMappedCompilerHost = (function (_super) {
|
|
|
82
77
|
}
|
|
83
78
|
}
|
|
84
79
|
var resolvable = function (candidate) {
|
|
85
|
-
var resolved = _this.
|
|
80
|
+
var resolved = _this.getCanonicalFileName(_this.resolve(candidate, importedFile));
|
|
86
81
|
return resolved && resolved.replace(EXT, '') === importedFile.replace(EXT, '');
|
|
87
82
|
};
|
|
88
83
|
var importModuleName = importedFile.replace(EXT, '');
|
|
@@ -107,7 +102,7 @@ var PathMappedCompilerHost = (function (_super) {
|
|
|
107
102
|
}
|
|
108
103
|
throw new Error("Unable to find any resolvable import for " + importedFile + " relative to " + containingFile);
|
|
109
104
|
};
|
|
110
|
-
|
|
105
|
+
PathMappedReflectorHost.prototype.getMetadataFor = function (filePath) {
|
|
111
106
|
for (var _i = 0, _a = this.options.rootDirs || []; _i < _a.length; _i++) {
|
|
112
107
|
var root = _a[_i];
|
|
113
108
|
var rootedPath = path.join(root, filePath);
|
|
@@ -120,18 +115,21 @@ var PathMappedCompilerHost = (function (_super) {
|
|
|
120
115
|
if (DTS.test(rootedPath)) {
|
|
121
116
|
var metadataPath = rootedPath.replace(DTS, '.metadata.json');
|
|
122
117
|
if (this.context.fileExists(metadataPath)) {
|
|
123
|
-
|
|
118
|
+
var metadata = this.readMetadata(metadataPath);
|
|
119
|
+
return (Array.isArray(metadata) && metadata.length == 0) ? undefined : metadata;
|
|
124
120
|
}
|
|
125
121
|
}
|
|
126
122
|
else {
|
|
127
|
-
var sf = this.getSourceFile(rootedPath);
|
|
128
|
-
sf
|
|
129
|
-
|
|
130
|
-
|
|
123
|
+
var sf = this.program.getSourceFile(rootedPath);
|
|
124
|
+
if (!sf) {
|
|
125
|
+
throw new Error("Source file " + rootedPath + " not present in program.");
|
|
126
|
+
}
|
|
127
|
+
sf.fileName = this.getCanonicalFileName(sf.fileName);
|
|
128
|
+
return this.metadataCollector.getMetadata(sf);
|
|
131
129
|
}
|
|
132
130
|
}
|
|
133
131
|
};
|
|
134
|
-
return
|
|
135
|
-
}(
|
|
136
|
-
exports.
|
|
137
|
-
//# sourceMappingURL=
|
|
132
|
+
return PathMappedReflectorHost;
|
|
133
|
+
}(reflector_host_1.ReflectorHost));
|
|
134
|
+
exports.PathMappedReflectorHost = PathMappedReflectorHost;
|
|
135
|
+
//# sourceMappingURL=path_mapped_reflector_host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path_mapped_reflector_host.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/path_mapped_reflector_host.ts"],"names":[],"mappings":"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"}
|