@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.0-rc.0",
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.0-rc.0",
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": ">=10.1.0-next.0 < 11",
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.createResourceImport = exports.replaceResources = void 0;
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;