@ngtools/webpack 10.1.0-rc.0 → 10.1.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngtools/webpack",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.3",
|
|
4
4
|
"description": "Webpack plugin that AoT compiles your Angular components and modules.",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "src/index.d.ts",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://github.com/angular/angular-cli",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@angular-devkit/core": "10.1.
|
|
28
|
+
"@angular-devkit/core": "10.1.3",
|
|
29
29
|
"enhanced-resolve": "4.3.0",
|
|
30
30
|
"webpack-sources": "1.4.3"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@angular/compiler-cli": "
|
|
33
|
+
"@angular/compiler-cli": "^10.0.0",
|
|
34
34
|
"typescript": ">=3.9 < 4.1",
|
|
35
35
|
"webpack": "^4.0.0"
|
|
36
36
|
},
|
|
@@ -7,5 +7,4 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as ts from 'typescript';
|
|
9
9
|
export declare function replaceResources(shouldTransform: (fileName: string) => boolean, getTypeChecker: () => ts.TypeChecker, directTemplateLoading?: boolean): ts.TransformerFactory<ts.SourceFile>;
|
|
10
|
-
export declare function createResourceImport(node: ts.Node, loader: string | undefined, resourceImportDeclarations: ts.ImportDeclaration[]): ts.Identifier | null;
|
|
11
10
|
export declare function getResourceUrl(node: ts.Node, loader?: string): string | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getResourceUrl = exports.
|
|
3
|
+
exports.getResourceUrl = exports.replaceResources = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @license
|
|
6
6
|
* Copyright Google Inc. All Rights Reserved.
|
|
@@ -13,10 +13,11 @@ function replaceResources(shouldTransform, getTypeChecker, directTemplateLoading
|
|
|
13
13
|
return (context) => {
|
|
14
14
|
const typeChecker = getTypeChecker();
|
|
15
15
|
const resourceImportDeclarations = [];
|
|
16
|
+
const moduleKind = context.getCompilerOptions().module;
|
|
16
17
|
const visitNode = (node) => {
|
|
17
18
|
if (ts.isClassDeclaration(node)) {
|
|
18
19
|
const decorators = ts.visitNodes(node.decorators, node => ts.isDecorator(node)
|
|
19
|
-
? visitDecorator(node, typeChecker, directTemplateLoading, resourceImportDeclarations)
|
|
20
|
+
? visitDecorator(node, typeChecker, directTemplateLoading, resourceImportDeclarations, moduleKind)
|
|
20
21
|
: node);
|
|
21
22
|
return ts.updateClassDeclaration(node, decorators, node.modifiers, node.name, node.typeParameters, node.heritageClauses, node.members);
|
|
22
23
|
}
|
|
@@ -39,7 +40,7 @@ function replaceResources(shouldTransform, getTypeChecker, directTemplateLoading
|
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
exports.replaceResources = replaceResources;
|
|
42
|
-
function visitDecorator(node, typeChecker, directTemplateLoading, resourceImportDeclarations) {
|
|
43
|
+
function visitDecorator(node, typeChecker, directTemplateLoading, resourceImportDeclarations, moduleKind) {
|
|
43
44
|
if (!isComponentDecorator(node, typeChecker)) {
|
|
44
45
|
return node;
|
|
45
46
|
}
|
|
@@ -56,7 +57,7 @@ function visitDecorator(node, typeChecker, directTemplateLoading, resourceImport
|
|
|
56
57
|
const styleReplacements = [];
|
|
57
58
|
// visit all properties
|
|
58
59
|
let properties = ts.visitNodes(objectExpression.properties, node => ts.isObjectLiteralElementLike(node)
|
|
59
|
-
? visitComponentMetadata(node, styleReplacements, directTemplateLoading, resourceImportDeclarations)
|
|
60
|
+
? visitComponentMetadata(node, styleReplacements, directTemplateLoading, resourceImportDeclarations, moduleKind)
|
|
60
61
|
: node);
|
|
61
62
|
// replace properties with updated properties
|
|
62
63
|
if (styleReplacements.length > 0) {
|
|
@@ -67,7 +68,7 @@ function visitDecorator(node, typeChecker, directTemplateLoading, resourceImport
|
|
|
67
68
|
ts.updateObjectLiteral(objectExpression, properties),
|
|
68
69
|
]));
|
|
69
70
|
}
|
|
70
|
-
function visitComponentMetadata(node, styleReplacements, directTemplateLoading, resourceImportDeclarations) {
|
|
71
|
+
function visitComponentMetadata(node, styleReplacements, directTemplateLoading, resourceImportDeclarations, moduleKind) {
|
|
71
72
|
if (!ts.isPropertyAssignment(node) || ts.isComputedPropertyName(node.name)) {
|
|
72
73
|
return node;
|
|
73
74
|
}
|
|
@@ -76,7 +77,7 @@ function visitComponentMetadata(node, styleReplacements, directTemplateLoading,
|
|
|
76
77
|
case 'moduleId':
|
|
77
78
|
return undefined;
|
|
78
79
|
case 'templateUrl':
|
|
79
|
-
const importName = createResourceImport(node.initializer, directTemplateLoading ? '!raw-loader!' : '', resourceImportDeclarations);
|
|
80
|
+
const importName = createResourceImport(node.initializer, directTemplateLoading ? '!raw-loader!' : '', resourceImportDeclarations, moduleKind);
|
|
80
81
|
if (!importName) {
|
|
81
82
|
return node;
|
|
82
83
|
}
|
|
@@ -94,7 +95,7 @@ function visitComponentMetadata(node, styleReplacements, directTemplateLoading,
|
|
|
94
95
|
if (isInlineStyles) {
|
|
95
96
|
return ts.createLiteral(node.text);
|
|
96
97
|
}
|
|
97
|
-
return createResourceImport(node, undefined, resourceImportDeclarations) || node;
|
|
98
|
+
return createResourceImport(node, undefined, resourceImportDeclarations, moduleKind) || node;
|
|
98
99
|
});
|
|
99
100
|
// Styles should be placed first
|
|
100
101
|
if (isInlineStyles) {
|
|
@@ -108,16 +109,6 @@ function visitComponentMetadata(node, styleReplacements, directTemplateLoading,
|
|
|
108
109
|
return node;
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
|
-
function createResourceImport(node, loader, resourceImportDeclarations) {
|
|
112
|
-
const url = getResourceUrl(node, loader);
|
|
113
|
-
if (!url) {
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
const importName = ts.createIdentifier(`__NG_CLI_RESOURCE__${resourceImportDeclarations.length}`);
|
|
117
|
-
resourceImportDeclarations.push(ts.createImportDeclaration(undefined, undefined, ts.createImportClause(importName, undefined), ts.createLiteral(url)));
|
|
118
|
-
return importName;
|
|
119
|
-
}
|
|
120
|
-
exports.createResourceImport = createResourceImport;
|
|
121
112
|
function getResourceUrl(node, loader = '') {
|
|
122
113
|
// only analyze strings
|
|
123
114
|
if (!ts.isStringLiteral(node) && !ts.isNoSubstitutionTemplateLiteral(node)) {
|
|
@@ -136,6 +127,21 @@ function isComponentDecorator(node, typeChecker) {
|
|
|
136
127
|
}
|
|
137
128
|
return false;
|
|
138
129
|
}
|
|
130
|
+
function createResourceImport(node, loader, resourceImportDeclarations, moduleKind = ts.ModuleKind.ES2015) {
|
|
131
|
+
const url = getResourceUrl(node, loader);
|
|
132
|
+
if (!url) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
const urlLiteral = ts.createLiteral(url);
|
|
136
|
+
if (moduleKind < ts.ModuleKind.ES2015) {
|
|
137
|
+
return ts.createPropertyAccess(ts.createCall(ts.createIdentifier('require'), [], [urlLiteral]), 'default');
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
const importName = ts.createIdentifier(`__NG_CLI_RESOURCE__${resourceImportDeclarations.length}`);
|
|
141
|
+
resourceImportDeclarations.push(ts.createImportDeclaration(undefined, undefined, ts.createImportClause(importName, undefined), urlLiteral));
|
|
142
|
+
return importName;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
139
145
|
function getDecoratorOrigin(decorator, typeChecker) {
|
|
140
146
|
if (!ts.isCallExpression(decorator.expression)) {
|
|
141
147
|
return null;
|