@ngtools/webpack 17.0.0-rc.1 → 17.0.0-rc.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": "17.0.0-rc.1",
3
+ "version": "17.0.0-rc.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",
@@ -31,7 +31,7 @@
31
31
  "webpack": "^5.54.0"
32
32
  },
33
33
  "engines": {
34
- "node": ">=18.13.0",
34
+ "node": "^18.13.0 || >=20.9.0",
35
35
  "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
36
36
  "yarn": ">= 1.13.0"
37
37
  }
@@ -16,6 +16,7 @@ export interface AngularWebpackPluginOptions {
16
16
  directTemplateLoading: boolean;
17
17
  emitClassMetadata: boolean;
18
18
  emitNgModuleScope: boolean;
19
+ emitSetClassDebugInfo?: boolean;
19
20
  jitMode: boolean;
20
21
  inlineStyleFileExtension?: string;
21
22
  }
@@ -9,6 +9,7 @@ import * as ts from 'typescript';
9
9
  export declare function createAotTransformers(builder: ts.BuilderProgram, options: {
10
10
  emitClassMetadata?: boolean;
11
11
  emitNgModuleScope?: boolean;
12
+ emitSetClassDebugInfo?: boolean;
12
13
  }, imageDomains: Set<string>): ts.CustomTransformers;
13
14
  export declare function createJitTransformers(builder: ts.BuilderProgram, compilerCli: typeof import('@angular/compiler-cli'), options: {
14
15
  inlineStyleFileExtension?: string;
@@ -44,9 +44,10 @@ function createAotTransformers(builder, options, imageDomains) {
44
44
  };
45
45
  const removeClassMetadata = !options.emitClassMetadata;
46
46
  const removeNgModuleScope = !options.emitNgModuleScope;
47
- if (removeClassMetadata || removeNgModuleScope) {
47
+ const removeSetClassDebugInfo = !options.emitSetClassDebugInfo;
48
+ if (removeClassMetadata || removeNgModuleScope || removeSetClassDebugInfo) {
48
49
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
49
- transformers.before.push((0, remove_ivy_jit_support_calls_1.removeIvyJitSupportCalls)(removeClassMetadata, removeNgModuleScope, getTypeChecker));
50
+ transformers.before.push((0, remove_ivy_jit_support_calls_1.removeIvyJitSupportCalls)(removeClassMetadata, removeNgModuleScope, removeSetClassDebugInfo, getTypeChecker));
50
51
  }
51
52
  return transformers;
52
53
  }
@@ -6,4 +6,4 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  import * as ts from 'typescript';
9
- export declare function removeIvyJitSupportCalls(classMetadata: boolean, ngModuleScope: boolean, getTypeChecker: () => ts.TypeChecker): ts.TransformerFactory<ts.SourceFile>;
9
+ export declare function removeIvyJitSupportCalls(classMetadata: boolean, ngModuleScope: boolean, debugInfo: boolean, getTypeChecker: () => ts.TypeChecker): ts.TransformerFactory<ts.SourceFile>;
@@ -33,7 +33,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
33
  exports.removeIvyJitSupportCalls = void 0;
34
34
  const ts = __importStar(require("typescript"));
35
35
  const elide_imports_1 = require("./elide_imports");
36
- function removeIvyJitSupportCalls(classMetadata, ngModuleScope, getTypeChecker) {
36
+ function removeIvyJitSupportCalls(classMetadata, ngModuleScope, debugInfo, getTypeChecker) {
37
37
  return (context) => {
38
38
  const removedNodes = [];
39
39
  const visitNode = (node) => {
@@ -55,6 +55,12 @@ function removeIvyJitSupportCalls(classMetadata, ngModuleScope, getTypeChecker)
55
55
  return undefined;
56
56
  }
57
57
  }
58
+ if (debugInfo &&
59
+ ts.isBinaryExpression(innerExpression) &&
60
+ isIvyPrivateCallExpression(innerExpression.right, 'ɵsetClassDebugInfo')) {
61
+ removedNodes.push(innerExpression);
62
+ return undefined;
63
+ }
58
64
  }
59
65
  return ts.visitEachChild(node, visitNode, context);
60
66
  };
@@ -146,6 +146,10 @@ function transformInlineStyleLiteral(node, nodeFactory, isInlineStyle, inlineSty
146
146
  if (!ts.isStringLiteralLike(node)) {
147
147
  return node;
148
148
  }
149
+ // Don't transform empty strings as PostCSS will choke on them. No work to do anyways.
150
+ if (node.text === '') {
151
+ return node;
152
+ }
149
153
  if (!isInlineStyle) {
150
154
  const url = getResourceUrl(node);
151
155
  return url