@analogjs/vite-plugin-angular 3.0.0-alpha.3 → 3.0.0-alpha.30
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/migrations/migrate-setup-vitest/migrate-setup-vitest.d.ts +2 -0
- package/migrations/migrate-setup-vitest/migrate-setup-vitest.js +49 -0
- package/migrations/migrate-setup-vitest/migrate-setup-vitest.js.map +1 -0
- package/migrations/migration.json +7 -1
- package/migrations/migrations.json +9 -0
- package/migrations/update-3-0-0/migrate-setup-vitest.d.ts +2 -0
- package/migrations/update-3-0-0/migrate-setup-vitest.js +36 -0
- package/migrations/update-3-0-0/migrate-setup-vitest.js.map +1 -0
- package/package.json +24 -12
- package/src/index.d.ts +3 -2
- package/src/index.js +6 -2
- package/src/index.js.map +1 -1
- package/src/lib/angular-build-optimizer-plugin.d.ts +4 -4
- package/src/lib/angular-build-optimizer-plugin.js +48 -62
- package/src/lib/angular-build-optimizer-plugin.js.map +1 -1
- package/src/lib/angular-jit-plugin.d.ts +3 -3
- package/src/lib/angular-jit-plugin.js +37 -37
- package/src/lib/angular-jit-plugin.js.map +1 -1
- package/src/lib/angular-pending-tasks.plugin.d.ts +7 -7
- package/src/lib/angular-pending-tasks.plugin.js +17 -18
- package/src/lib/angular-pending-tasks.plugin.js.map +1 -1
- package/src/lib/angular-vite-plugin.d.ts +224 -40
- package/src/lib/angular-vite-plugin.js +1929 -964
- package/src/lib/angular-vite-plugin.js.map +1 -1
- package/src/lib/angular-vitest-plugin.d.ts +19 -15
- package/src/lib/angular-vitest-plugin.js +99 -114
- package/src/lib/angular-vitest-plugin.js.map +1 -1
- package/src/lib/compiler-plugin.d.ts +11 -11
- package/src/lib/compiler-plugin.js +43 -44
- package/src/lib/compiler-plugin.js.map +1 -1
- package/src/lib/component-resolvers.d.ts +23 -5
- package/src/lib/component-resolvers.js +153 -63
- package/src/lib/component-resolvers.js.map +1 -1
- package/src/lib/host.d.ts +10 -8
- package/src/lib/host.js +109 -101
- package/src/lib/host.js.map +1 -1
- package/src/lib/live-reload-plugin.d.ts +5 -5
- package/src/lib/live-reload-plugin.js +57 -62
- package/src/lib/live-reload-plugin.js.map +1 -1
- package/src/lib/models.d.ts +9 -9
- package/src/lib/nx-folder-plugin.d.ts +5 -5
- package/src/lib/nx-folder-plugin.js +18 -16
- package/src/lib/nx-folder-plugin.js.map +1 -1
- package/src/lib/plugins/file-replacements.plugin.d.ts +4 -4
- package/src/lib/plugins/file-replacements.plugin.js +40 -62
- package/src/lib/plugins/file-replacements.plugin.js.map +1 -1
- package/src/lib/router-plugin.d.ts +1 -1
- package/src/lib/router-plugin.js +23 -23
- package/src/lib/router-plugin.js.map +1 -1
- package/src/lib/style-pipeline.d.ts +15 -0
- package/src/lib/style-pipeline.js +31 -0
- package/src/lib/style-pipeline.js.map +1 -0
- package/src/lib/style-preprocessor.d.ts +35 -0
- package/src/lib/style-preprocessor.js +35 -0
- package/src/lib/style-preprocessor.js.map +1 -0
- package/src/lib/stylesheet-registry.d.ts +73 -0
- package/src/lib/stylesheet-registry.js +168 -0
- package/src/lib/stylesheet-registry.js.map +1 -0
- package/src/lib/tools/package.json +2 -7
- package/src/lib/tools/src/builders/vite/vite-build.impl.js +31 -38
- package/src/lib/tools/src/builders/vite/vite-build.impl.js.map +1 -1
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js +51 -62
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js.map +1 -1
- package/src/lib/tools/src/index.js +0 -2
- package/src/lib/utils/compiler-plugin-options.d.ts +11 -11
- package/src/lib/utils/debug-harness.d.ts +23 -0
- package/src/lib/utils/debug-harness.js +88 -0
- package/src/lib/utils/debug-harness.js.map +1 -0
- package/src/lib/utils/debug-log-file.d.ts +5 -0
- package/src/lib/utils/debug-log-file.js +56 -0
- package/src/lib/utils/debug-log-file.js.map +1 -0
- package/src/lib/utils/debug.d.ts +26 -0
- package/src/lib/utils/debug.js +35 -0
- package/src/lib/utils/debug.js.map +1 -0
- package/src/lib/utils/devkit.d.ts +6 -6
- package/src/lib/utils/devkit.js +34 -38
- package/src/lib/utils/devkit.js.map +1 -1
- package/src/lib/utils/hmr-candidates.d.ts +28 -28
- package/src/lib/utils/rolldown.d.ts +2 -0
- package/src/lib/utils/rolldown.js +12 -0
- package/src/lib/utils/rolldown.js.map +1 -0
- package/src/lib/utils/source-file-cache.d.ts +8 -15
- package/src/lib/utils/source-file-cache.js +35 -37
- package/src/lib/utils/source-file-cache.js.map +1 -1
- package/src/test-setup.d.ts +2 -0
- package/setup-vitest.d.ts +0 -4
- package/setup-vitest.js +0 -215
- package/setup-vitest.js.map +0 -1
- package/src/lib/models.js +0 -1
- package/src/lib/models.js.map +0 -1
- package/src/lib/tools/README.md +0 -3
- package/src/lib/tools/src/index.d.ts +0 -0
- package/src/lib/tools/src/index.js.map +0 -1
- package/src/lib/utils/compiler-plugin-options.js +0 -1
- package/src/lib/utils/compiler-plugin-options.js.map +0 -1
- package/src/lib/utils/hmr-candidates.js +0 -272
- package/src/lib/utils/hmr-candidates.js.map +0 -1
|
@@ -1,122 +1,107 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { getJsTransformConfigKey, isRolldown } from "./utils/rolldown.js";
|
|
2
|
+
import * as vite from "vite";
|
|
3
|
+
//#region packages/vite-plugin-angular/src/lib/angular-vitest-plugin.ts
|
|
4
|
+
var vitestAngularSetupEntries = [
|
|
5
|
+
"@analogjs/vitest-angular/setup-testbed",
|
|
6
|
+
"@analogjs/vitest-angular/setup-zone",
|
|
7
|
+
"@analogjs/vitest-angular/setup-snapshots",
|
|
8
|
+
"@analogjs/vitest-angular/setup-serializers"
|
|
9
|
+
];
|
|
2
10
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
});
|
|
52
|
-
return {
|
|
53
|
-
code,
|
|
54
|
-
map,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return undefined;
|
|
59
|
-
},
|
|
60
|
-
};
|
|
11
|
+
* Sets up test config for Vitest and downlevels Angular FESM bundles and
|
|
12
|
+
* `@angular/cdk` from modern async/await to ES2016 so that Zone.js can
|
|
13
|
+
* intercept promises during `fakeAsync` tests.
|
|
14
|
+
*
|
|
15
|
+
* Under Vite 8+ (Rolldown) downleveling is not needed.
|
|
16
|
+
* Under Vite ≤7, esbuild handles the downlevel.
|
|
17
|
+
*/
|
|
18
|
+
function angularVitestPlugin() {
|
|
19
|
+
return {
|
|
20
|
+
name: "@analogjs/vitest-angular-esm-plugin",
|
|
21
|
+
apply: "serve",
|
|
22
|
+
enforce: "post",
|
|
23
|
+
config(userConfig) {
|
|
24
|
+
return {
|
|
25
|
+
optimizeDeps: { include: [
|
|
26
|
+
"tslib",
|
|
27
|
+
"@angular/core",
|
|
28
|
+
"@angular/core/testing",
|
|
29
|
+
"@angular/platform-browser/testing"
|
|
30
|
+
] },
|
|
31
|
+
ssr: { noExternal: [
|
|
32
|
+
...vitestAngularSetupEntries,
|
|
33
|
+
/fesm2022(.*?)testing/,
|
|
34
|
+
/fesm2015/
|
|
35
|
+
] },
|
|
36
|
+
test: { pool: userConfig.test?.pool ?? "vmThreads" }
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
transform: {
|
|
40
|
+
filter: { id: /fesm2022|@angular\/cdk/ },
|
|
41
|
+
async handler(_code, id) {
|
|
42
|
+
if (/fesm2022/.test(id) && _code.includes("async ") || _code.includes("@angular/cdk")) {
|
|
43
|
+
if (isRolldown()) return;
|
|
44
|
+
const { code, map } = await vite.transformWithEsbuild(_code, id, {
|
|
45
|
+
loader: "js",
|
|
46
|
+
format: "esm",
|
|
47
|
+
target: "es2016",
|
|
48
|
+
sourcemap: true,
|
|
49
|
+
sourcefile: id
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
code,
|
|
53
|
+
map
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
61
59
|
}
|
|
62
60
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
esbuild: userConfig.esbuild ?? false,
|
|
79
|
-
};
|
|
80
|
-
},
|
|
81
|
-
};
|
|
61
|
+
* Eagerly disables the built-in JS transformer (esbuild on Vite ≤7, OXC on
|
|
62
|
+
* Vite 8+) so Vitest's internal plugin doesn't race with the Angular
|
|
63
|
+
* compiler. Must run at `enforce: 'pre'` to take effect before Vitest
|
|
64
|
+
* reads the resolved config.
|
|
65
|
+
*/
|
|
66
|
+
function angularVitestEsbuildPlugin() {
|
|
67
|
+
return {
|
|
68
|
+
name: "@analogjs/vitest-angular-esbuild-oxc-plugin",
|
|
69
|
+
enforce: "pre",
|
|
70
|
+
config(userConfig) {
|
|
71
|
+
const jsTransformConfigKey = getJsTransformConfigKey();
|
|
72
|
+
return { [jsTransformConfigKey]: jsTransformConfigKey === "oxc" ? userConfig.oxc ?? false : userConfig.esbuild ?? false };
|
|
73
|
+
}
|
|
74
|
+
};
|
|
82
75
|
}
|
|
83
76
|
/**
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
});
|
|
104
|
-
return result;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
const result = await vite.transformWithEsbuild(code, id, {
|
|
108
|
-
loader: 'js',
|
|
109
|
-
});
|
|
110
|
-
return result;
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
};
|
|
77
|
+
* Post-processes `.ts` files with the JS transformer (esbuild / OXC) to
|
|
78
|
+
* re-align sourcemaps so breakpoints and coverage reports work correctly.
|
|
79
|
+
*
|
|
80
|
+
* Inline style/template virtual modules (`?inline`) are excluded because
|
|
81
|
+
* they are already handled by the Angular compiler.
|
|
82
|
+
*/
|
|
83
|
+
function angularVitestSourcemapPlugin() {
|
|
84
|
+
return {
|
|
85
|
+
name: "@analogjs/vitest-angular-sourcemap-plugin",
|
|
86
|
+
transform: {
|
|
87
|
+
filter: { id: /\.ts(?:\?|$)/ },
|
|
88
|
+
async handler(code, id) {
|
|
89
|
+
const [, query] = id.split("?");
|
|
90
|
+
if (query && query.includes("inline")) return;
|
|
91
|
+
if (isRolldown()) return await vite.transformWithOxc(code, id, { lang: "ts" });
|
|
92
|
+
else return await vite.transformWithEsbuild(code, id, { loader: "ts" });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
114
96
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
97
|
+
function angularVitestPlugins() {
|
|
98
|
+
return [
|
|
99
|
+
angularVitestPlugin(),
|
|
100
|
+
angularVitestEsbuildPlugin(),
|
|
101
|
+
angularVitestSourcemapPlugin()
|
|
102
|
+
];
|
|
121
103
|
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { angularVitestPlugins };
|
|
106
|
+
|
|
122
107
|
//# sourceMappingURL=angular-vitest-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-vitest-plugin.js","
|
|
1
|
+
{"version":3,"file":"angular-vitest-plugin.js","names":[],"sources":["../../../src/lib/angular-vitest-plugin.ts"],"sourcesContent":["import type { Plugin, TransformResult, UserConfig } from 'vite';\n// Use the namespace import so these runtime helpers still resolve on Vite 6,\n// which does not expose them as named exports.\nimport * as vite from 'vite';\nimport { getJsTransformConfigKey, isRolldown } from './utils/rolldown.js';\n\nconst vitestAngularSetupEntries = [\n '@analogjs/vitest-angular/setup-testbed',\n '@analogjs/vitest-angular/setup-zone',\n '@analogjs/vitest-angular/setup-snapshots',\n '@analogjs/vitest-angular/setup-serializers',\n];\n\n/**\n * Sets up test config for Vitest and downlevels Angular FESM bundles and\n * `@angular/cdk` from modern async/await to ES2016 so that Zone.js can\n * intercept promises during `fakeAsync` tests.\n *\n * Under Vite 8+ (Rolldown) downleveling is not needed.\n * Under Vite ≤7, esbuild handles the downlevel.\n */\nexport function angularVitestPlugin(): Plugin {\n return {\n name: '@analogjs/vitest-angular-esm-plugin',\n apply: 'serve',\n enforce: 'post',\n config(userConfig) {\n return {\n optimizeDeps: {\n include: [\n 'tslib',\n '@angular/core',\n '@angular/core/testing',\n '@angular/platform-browser/testing',\n ],\n },\n ssr: {\n noExternal: [\n ...vitestAngularSetupEntries,\n /fesm2022(.*?)testing/,\n /fesm2015/,\n ],\n },\n test: {\n pool: (userConfig as any).test?.pool ?? 'vmThreads',\n },\n };\n },\n // Filter by module ID so only Angular FESM2022 bundles and CDK enter\n // the handler. The inner guards add a secondary code-content check\n // (`async` keyword) for fesm2022 to avoid needless transforms.\n transform: {\n filter: {\n id: /fesm2022|@angular\\/cdk/,\n },\n async handler(_code, id) {\n if (\n (/fesm2022/.test(id) && _code.includes('async ')) ||\n _code.includes('@angular/cdk')\n ) {\n if (isRolldown()) {\n return undefined;\n }\n\n const { code, map } = await vite.transformWithEsbuild(_code, id, {\n loader: 'js',\n format: 'esm',\n target: 'es2016',\n sourcemap: true,\n sourcefile: id,\n });\n\n return {\n code,\n map,\n };\n }\n\n return undefined;\n },\n },\n };\n}\n\n/**\n * Eagerly disables the built-in JS transformer (esbuild on Vite ≤7, OXC on\n * Vite 8+) so Vitest's internal plugin doesn't race with the Angular\n * compiler. Must run at `enforce: 'pre'` to take effect before Vitest\n * reads the resolved config.\n */\nexport function angularVitestEsbuildPlugin(): Plugin {\n return {\n name: '@analogjs/vitest-angular-esbuild-oxc-plugin',\n enforce: 'pre',\n config(userConfig: UserConfig) {\n const jsTransformConfigKey = getJsTransformConfigKey();\n\n return {\n [jsTransformConfigKey]:\n jsTransformConfigKey === 'oxc'\n ? (userConfig.oxc ?? false)\n : (userConfig.esbuild ?? false),\n };\n },\n };\n}\n\n/**\n * Post-processes `.ts` files with the JS transformer (esbuild / OXC) to\n * re-align sourcemaps so breakpoints and coverage reports work correctly.\n *\n * Inline style/template virtual modules (`?inline`) are excluded because\n * they are already handled by the Angular compiler.\n */\nexport function angularVitestSourcemapPlugin(): Plugin {\n return {\n name: '@analogjs/vitest-angular-sourcemap-plugin',\n transform: {\n filter: {\n // Match `.ts` at the end of the path OR before a `?` query string.\n // Vite/Vitest appends query params for virtual modules (e.g.\n // `component.ts?inline`), so a plain `$` anchor would reject them\n // and leave sourcemaps misaligned — causing Angular TestBed teardown\n // crashes (`_doc` undefined in `removeAllRootElements`).\n // The negative lookahead `(?!x)` prevents matching `.tsx` or `.d.ts`.\n id: /\\.ts(?:\\?|$)/,\n },\n async handler(code: string, id: string) {\n const [, query] = id.split('?');\n\n if (query && query.includes('inline')) {\n return;\n }\n\n if (isRolldown()) {\n // lang must be 'ts' (not 'js') so OXC parses TypeScript syntax;\n // using 'js' would cause parse errors on type annotations.\n const result = await vite.transformWithOxc(code, id, {\n lang: 'ts',\n });\n\n return result as unknown as TransformResult;\n } else {\n const result = await vite.transformWithEsbuild(code, id, {\n loader: 'ts',\n });\n\n return result;\n }\n },\n },\n };\n}\n\nexport function angularVitestPlugins(): Plugin[] {\n return [\n angularVitestPlugin(),\n angularVitestEsbuildPlugin(),\n angularVitestSourcemapPlugin(),\n ];\n}\n"],"mappings":";;;AAMA,IAAM,4BAA4B;CAChC;CACA;CACA;CACA;CACD;;;;;;;;;AAUD,SAAgB,sBAA8B;AAC5C,QAAO;EACL,MAAM;EACN,OAAO;EACP,SAAS;EACT,OAAO,YAAY;AACjB,UAAO;IACL,cAAc,EACZ,SAAS;KACP;KACA;KACA;KACA;KACD,EACF;IACD,KAAK,EACH,YAAY;KACV,GAAG;KACH;KACA;KACD,EACF;IACD,MAAM,EACJ,MAAO,WAAmB,MAAM,QAAQ,aACzC;IACF;;EAKH,WAAW;GACT,QAAQ,EACN,IAAI,0BACL;GACD,MAAM,QAAQ,OAAO,IAAI;AACvB,QACG,WAAW,KAAK,GAAG,IAAI,MAAM,SAAS,SAAS,IAChD,MAAM,SAAS,eAAe,EAC9B;AACA,SAAI,YAAY,CACd;KAGF,MAAM,EAAE,MAAM,QAAQ,MAAM,KAAK,qBAAqB,OAAO,IAAI;MAC/D,QAAQ;MACR,QAAQ;MACR,QAAQ;MACR,WAAW;MACX,YAAY;MACb,CAAC;AAEF,YAAO;MACL;MACA;MACD;;;GAKN;EACF;;;;;;;;AASH,SAAgB,6BAAqC;AACnD,QAAO;EACL,MAAM;EACN,SAAS;EACT,OAAO,YAAwB;GAC7B,MAAM,uBAAuB,yBAAyB;AAEtD,UAAO,GACJ,uBACC,yBAAyB,QACpB,WAAW,OAAO,QAClB,WAAW,WAAW,OAC9B;;EAEJ;;;;;;;;;AAUH,SAAgB,+BAAuC;AACrD,QAAO;EACL,MAAM;EACN,WAAW;GACT,QAAQ,EAON,IAAI,gBACL;GACD,MAAM,QAAQ,MAAc,IAAY;IACtC,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAE/B,QAAI,SAAS,MAAM,SAAS,SAAS,CACnC;AAGF,QAAI,YAAY,CAOd,QAJe,MAAM,KAAK,iBAAiB,MAAM,IAAI,EACnD,MAAM,MACP,CAAC;QAQF,QAJe,MAAM,KAAK,qBAAqB,MAAM,IAAI,EACvD,QAAQ,MACT,CAAC;;GAKP;EACF;;AAGH,SAAgB,uBAAiC;AAC/C,QAAO;EACL,qBAAqB;EACrB,4BAA4B;EAC5B,8BAA8B;EAC/B"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import type { DepOptimizationConfig, Rolldown } from
|
|
9
|
-
import { CompilerPluginOptions } from
|
|
10
|
-
type EsbuildOptions = NonNullable<DepOptimizationConfig[
|
|
11
|
-
type EsbuildPlugin = NonNullable<EsbuildOptions[
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC 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.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import type { DepOptimizationConfig, Rolldown } from "vite";
|
|
9
|
+
import { CompilerPluginOptions } from "./utils/devkit.js";
|
|
10
|
+
type EsbuildOptions = NonNullable<DepOptimizationConfig["esbuildOptions"]>;
|
|
11
|
+
type EsbuildPlugin = NonNullable<EsbuildOptions["plugins"]>[number];
|
|
12
12
|
export declare function createCompilerPlugin(pluginOptions: CompilerPluginOptions, isTest: boolean, closeTransformer: boolean): EsbuildPlugin;
|
|
13
|
-
export declare function createRolldownCompilerPlugin(pluginOptions: CompilerPluginOptions): Rolldown.Plugin;
|
|
13
|
+
export declare function createRolldownCompilerPlugin(pluginOptions: CompilerPluginOptions, closeTransformer: boolean): Rolldown.Plugin;
|
|
14
14
|
export {};
|
|
@@ -1,47 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
if (closeTransformer) {
|
|
24
|
-
build.onEnd(() => javascriptTransformer.close());
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
};
|
|
1
|
+
import { jt } from "./utils/devkit.js";
|
|
2
|
+
//#region packages/vite-plugin-angular/src/lib/compiler-plugin.ts
|
|
3
|
+
function createCompilerPlugin(pluginOptions, isTest, closeTransformer) {
|
|
4
|
+
const javascriptTransformer = new jt({
|
|
5
|
+
...pluginOptions,
|
|
6
|
+
jit: true
|
|
7
|
+
}, 1);
|
|
8
|
+
return {
|
|
9
|
+
name: "analogjs-angular-esbuild-deps-optimizer-plugin",
|
|
10
|
+
async setup(build) {
|
|
11
|
+
if (!isTest) build.onLoad({ filter: /\.[cm]?js$/ }, async (args) => {
|
|
12
|
+
return {
|
|
13
|
+
contents: await javascriptTransformer.transformFile(args.path),
|
|
14
|
+
loader: "js"
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
if (closeTransformer) build.onEnd(() => javascriptTransformer.close());
|
|
18
|
+
}
|
|
19
|
+
};
|
|
28
20
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
21
|
+
function createRolldownCompilerPlugin(pluginOptions, closeTransformer) {
|
|
22
|
+
const javascriptTransformer = new jt({
|
|
23
|
+
...pluginOptions,
|
|
24
|
+
jit: true
|
|
25
|
+
}, 1);
|
|
26
|
+
return {
|
|
27
|
+
name: "analogjs-rolldown-deps-optimizer-plugin",
|
|
28
|
+
load: {
|
|
29
|
+
filter: { id: /\.[cm]?js$/ },
|
|
30
|
+
async handler(id) {
|
|
31
|
+
const contents = await javascriptTransformer.transformFile(id);
|
|
32
|
+
return {
|
|
33
|
+
code: Buffer.from(contents).toString("utf-8"),
|
|
34
|
+
loader: "js"
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
buildEnd() {
|
|
39
|
+
if (closeTransformer) javascriptTransformer.close();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
46
42
|
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { createCompilerPlugin, createRolldownCompilerPlugin };
|
|
45
|
+
|
|
47
46
|
//# sourceMappingURL=compiler-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler-plugin.js","
|
|
1
|
+
{"version":3,"file":"compiler-plugin.js","names":[],"sources":["../../../src/lib/compiler-plugin.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport type { DepOptimizationConfig, Rolldown } from 'vite';\nimport type { PluginBuild } from 'esbuild';\n\nimport {\n CompilerPluginOptions,\n JavaScriptTransformer,\n} from './utils/devkit.js';\n\ntype EsbuildOptions = NonNullable<DepOptimizationConfig['esbuildOptions']>;\ntype EsbuildPlugin = NonNullable<EsbuildOptions['plugins']>[number];\n\nexport function createCompilerPlugin(\n pluginOptions: CompilerPluginOptions,\n isTest: boolean,\n closeTransformer: boolean,\n): EsbuildPlugin {\n const javascriptTransformer = new JavaScriptTransformer(\n { ...pluginOptions, jit: true },\n 1,\n );\n\n return {\n name: 'analogjs-angular-esbuild-deps-optimizer-plugin',\n async setup(build: PluginBuild) {\n if (!isTest) {\n build.onLoad({ filter: /\\.[cm]?js$/ }, async (args) => {\n const contents = await javascriptTransformer.transformFile(args.path);\n\n return {\n contents,\n loader: 'js',\n };\n });\n }\n\n if (closeTransformer) {\n build.onEnd(() => javascriptTransformer.close());\n }\n },\n };\n}\n\nexport function createRolldownCompilerPlugin(\n pluginOptions: CompilerPluginOptions,\n closeTransformer: boolean,\n): Rolldown.Plugin {\n const javascriptTransformer = new JavaScriptTransformer(\n { ...pluginOptions, jit: true },\n 1,\n );\n return {\n name: 'analogjs-rolldown-deps-optimizer-plugin',\n load: {\n filter: {\n id: /\\.[cm]?js$/,\n },\n async handler(id) {\n const contents = await javascriptTransformer.transformFile(id);\n\n return {\n code: Buffer.from(contents).toString('utf-8'),\n loader: 'js',\n } as any;\n },\n },\n // Close the JavaScriptTransformer worker pool when Rolldown finishes to\n // prevent leaked handles. Skipped for Astro, which owns the lifecycle.\n buildEnd() {\n if (closeTransformer) {\n javascriptTransformer.close();\n }\n },\n };\n}\n"],"mappings":";;AAmBA,SAAgB,qBACd,eACA,QACA,kBACe;CACf,MAAM,wBAAwB,IAAI,GAChC;EAAE,GAAG;EAAe,KAAK;EAAM,EAC/B,EACD;AAED,QAAO;EACL,MAAM;EACN,MAAM,MAAM,OAAoB;AAC9B,OAAI,CAAC,OACH,OAAM,OAAO,EAAE,QAAQ,cAAc,EAAE,OAAO,SAAS;AAGrD,WAAO;KACL,UAHe,MAAM,sBAAsB,cAAc,KAAK,KAAK;KAInE,QAAQ;KACT;KACD;AAGJ,OAAI,iBACF,OAAM,YAAY,sBAAsB,OAAO,CAAC;;EAGrD;;AAGH,SAAgB,6BACd,eACA,kBACiB;CACjB,MAAM,wBAAwB,IAAI,GAChC;EAAE,GAAG;EAAe,KAAK;EAAM,EAC/B,EACD;AACD,QAAO;EACL,MAAM;EACN,MAAM;GACJ,QAAQ,EACN,IAAI,cACL;GACD,MAAM,QAAQ,IAAI;IAChB,MAAM,WAAW,MAAM,sBAAsB,cAAc,GAAG;AAE9D,WAAO;KACL,MAAM,OAAO,KAAK,SAAS,CAAC,SAAS,QAAQ;KAC7C,QAAQ;KACT;;GAEJ;EAGD,WAAW;AACT,OAAI,iBACF,uBAAsB,OAAO;;EAGlC"}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface AngularComponentMetadata {
|
|
2
|
+
className: string;
|
|
3
|
+
selector?: string;
|
|
4
|
+
styleUrls: string[];
|
|
5
|
+
templateUrls: string[];
|
|
6
|
+
inlineTemplates: string[];
|
|
4
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Extract Angular component identities from raw source code before Angular's
|
|
10
|
+
* compilation pipeline strips decorators. This is used for dev-time
|
|
11
|
+
* diagnostics such as duplicate selectors, duplicate component class names,
|
|
12
|
+
* selectorless shared components, and inline-template validation.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAngularComponentMetadata(code: string): AngularComponentMetadata[];
|
|
15
|
+
/** Extract all `styleUrl` / `styleUrls` values from Angular component source. */
|
|
5
16
|
export declare function getStyleUrls(code: string): string[];
|
|
17
|
+
/** Extract all `templateUrl` values from Angular component source. */
|
|
6
18
|
export declare function getTemplateUrls(code: string): string[];
|
|
19
|
+
/** Extract inline `template` strings from Angular component source. */
|
|
20
|
+
export declare function getInlineTemplates(code: string): string[];
|
|
21
|
+
export declare class StyleUrlsResolver {
|
|
22
|
+
private readonly styleUrlsCache;
|
|
23
|
+
resolve(code: string, id: string): string[];
|
|
24
|
+
}
|
|
7
25
|
export declare class TemplateUrlsResolver {
|
|
8
|
-
|
|
9
|
-
|
|
26
|
+
private readonly templateUrlsCache;
|
|
27
|
+
resolve(code: string, id: string): string[];
|
|
10
28
|
}
|