@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
package/setup-vitest.js
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import 'zone.js';
|
|
2
|
-
import 'zone.js/plugins/sync-test';
|
|
3
|
-
import 'zone.js/plugins/proxy';
|
|
4
|
-
import 'zone.js/testing';
|
|
5
|
-
/**
|
|
6
|
-
* Patch Vitest's describe/test/beforeEach/afterEach functions so test code
|
|
7
|
-
* always runs in a testZone (ProxyZone).
|
|
8
|
-
*/
|
|
9
|
-
/* global Zone */
|
|
10
|
-
const { Zone } = globalThis;
|
|
11
|
-
if (Zone === undefined) {
|
|
12
|
-
throw new Error('Missing: Zone (zone.js)');
|
|
13
|
-
}
|
|
14
|
-
if (globalThis['__vitest_zone_patch__'] === true) {
|
|
15
|
-
throw new Error("'vitest' has already been patched with 'Zone'.");
|
|
16
|
-
}
|
|
17
|
-
globalThis['__vitest_zone_patch__'] = true;
|
|
18
|
-
const { SyncTestZoneSpec } = Zone;
|
|
19
|
-
const { ProxyZoneSpec } = Zone;
|
|
20
|
-
if (SyncTestZoneSpec === undefined) {
|
|
21
|
-
throw new Error('Missing: SyncTestZoneSpec (zone.js/plugins/sync-test)');
|
|
22
|
-
}
|
|
23
|
-
if (ProxyZoneSpec === undefined) {
|
|
24
|
-
throw new Error('Missing: ProxyZoneSpec (zone.js/plugins/proxy.js)');
|
|
25
|
-
}
|
|
26
|
-
const env = globalThis;
|
|
27
|
-
const ambientZone = Zone.current;
|
|
28
|
-
// Create a synchronous-only zone in which to run `describe` blocks in order to
|
|
29
|
-
// Raise an error if any asynchronous operations are attempted
|
|
30
|
-
// Inside of a `describe` but outside of a `beforeEach` or `it`.
|
|
31
|
-
const syncZone = ambientZone.fork(new SyncTestZoneSpec('vitest.describe'));
|
|
32
|
-
function wrapDescribeInZone(describeBody) {
|
|
33
|
-
return function (...args) {
|
|
34
|
-
return syncZone.run(describeBody, null, args);
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
// Create a proxy zone in which to run `test` blocks so that the tests function
|
|
38
|
-
// Can retroactively install different zones.
|
|
39
|
-
const testProxyZone = ambientZone.fork(new ProxyZoneSpec());
|
|
40
|
-
function wrapTestInZone(testBody) {
|
|
41
|
-
if (testBody === undefined) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const wrappedFunc = function wrappedFunc(...args) {
|
|
45
|
-
return testProxyZone.run(testBody, null, args);
|
|
46
|
-
};
|
|
47
|
-
try {
|
|
48
|
-
Object.defineProperty(wrappedFunc, 'length', {
|
|
49
|
-
configurable: true,
|
|
50
|
-
enumerable: false,
|
|
51
|
-
writable: true,
|
|
52
|
-
});
|
|
53
|
-
wrappedFunc.length = testBody.length;
|
|
54
|
-
}
|
|
55
|
-
catch (e) {
|
|
56
|
-
return testBody.length === 0
|
|
57
|
-
? () => testProxyZone.run(testBody, null)
|
|
58
|
-
: (done) => testProxyZone.run(testBody, null, [done]);
|
|
59
|
-
}
|
|
60
|
-
return wrappedFunc;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Allows Vitest to handle Angular test fixtures
|
|
64
|
-
*
|
|
65
|
-
* Vitest Snapshot guide ==> https://vitest.dev/guide/snapshot.html
|
|
66
|
-
*
|
|
67
|
-
* @returns customSnapshotSerializer for Angular Fixture Component
|
|
68
|
-
*/
|
|
69
|
-
const customSnapshotSerializer = () => {
|
|
70
|
-
function serialize(val, config, indentation, depth, refs, printer) {
|
|
71
|
-
// `printer` is a function that serializes a value using existing plugins.
|
|
72
|
-
return `${printer(fixtureVitestSerializer(val), config, indentation, depth, refs)}`;
|
|
73
|
-
}
|
|
74
|
-
function test(val) {
|
|
75
|
-
// * If it's a ComponentFixture we apply the transformation rules
|
|
76
|
-
return val && isAngularFixture(val);
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
serialize,
|
|
80
|
-
test,
|
|
81
|
-
};
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Check if is an Angular fixture
|
|
85
|
-
*
|
|
86
|
-
* @param val Angular fixture
|
|
87
|
-
* @returns boolean who check if is an angular fixture
|
|
88
|
-
*/
|
|
89
|
-
function isAngularFixture(val) {
|
|
90
|
-
if (typeof val !== 'object') {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
if (val['componentRef'] || val['componentInstance']) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
if (val['componentType']) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
// * Angular fixture keys in Fixture component Object
|
|
100
|
-
const fixtureKeys = [
|
|
101
|
-
'componentRef',
|
|
102
|
-
'ngZone',
|
|
103
|
-
'effectRunner',
|
|
104
|
-
'_autoDetect',
|
|
105
|
-
'_isStable',
|
|
106
|
-
'_isDestroyed',
|
|
107
|
-
'_resolve',
|
|
108
|
-
'_promise',
|
|
109
|
-
'_onUnstableSubscription',
|
|
110
|
-
'_onStableSubscription',
|
|
111
|
-
'_onMicrotaskEmptySubscription',
|
|
112
|
-
'_onErrorSubscription',
|
|
113
|
-
'changeDetectorRef',
|
|
114
|
-
'elementRef',
|
|
115
|
-
'debugElement',
|
|
116
|
-
'componentInstance',
|
|
117
|
-
'nativeElement',
|
|
118
|
-
];
|
|
119
|
-
// * Angular fixture keys in Fixture componentRef Object
|
|
120
|
-
const fixtureComponentRefKeys = [
|
|
121
|
-
'location',
|
|
122
|
-
'_rootLView',
|
|
123
|
-
'_tNode',
|
|
124
|
-
'previousInputValues',
|
|
125
|
-
'instance',
|
|
126
|
-
'changeDetectorRef',
|
|
127
|
-
'hostView',
|
|
128
|
-
'componentType',
|
|
129
|
-
];
|
|
130
|
-
return (JSON.stringify(Object.keys(val)) === JSON.stringify(fixtureKeys) ||
|
|
131
|
-
JSON.stringify(Object.keys(val)) === JSON.stringify(fixtureComponentRefKeys));
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Serialize Angular fixture for Vitest
|
|
135
|
-
*
|
|
136
|
-
* @param fixture Angular Fixture Component
|
|
137
|
-
* @returns HTML Child Node
|
|
138
|
-
*/
|
|
139
|
-
function fixtureVitestSerializer(fixture) {
|
|
140
|
-
// * Get Component meta data
|
|
141
|
-
const componentType = (fixture && fixture.componentType
|
|
142
|
-
? fixture.componentType
|
|
143
|
-
: fixture.componentRef.componentType);
|
|
144
|
-
let inputsData = '';
|
|
145
|
-
const selector = Reflect.getOwnPropertyDescriptor(componentType, '__annotations__')?.value[0].selector;
|
|
146
|
-
if (componentType && componentType.propDecorators) {
|
|
147
|
-
inputsData = Object.entries(componentType.propDecorators)
|
|
148
|
-
.map(([key, value]) => `${key}="${value}"`)
|
|
149
|
-
.join('');
|
|
150
|
-
}
|
|
151
|
-
// * Get DOM Elements
|
|
152
|
-
const divElement = fixture && fixture.nativeElement
|
|
153
|
-
? fixture.nativeElement
|
|
154
|
-
: fixture.location.nativeElement;
|
|
155
|
-
// * Convert string data to HTML data
|
|
156
|
-
const doc = new DOMParser().parseFromString(`<${selector} ${inputsData}>${divElement.innerHTML}</${selector}>`, 'text/html');
|
|
157
|
-
return doc.body.childNodes[0];
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Bind describe method to wrap describe.each function
|
|
161
|
-
*/
|
|
162
|
-
const bindDescribe = (self, originalVitestFn) => function bindDescribe(...eachArgs) {
|
|
163
|
-
return function bindDescribe(...args) {
|
|
164
|
-
args[1] = wrapDescribeInZone(args[1]);
|
|
165
|
-
return originalVitestFn.apply(self, eachArgs).apply(self, args);
|
|
166
|
-
};
|
|
167
|
-
};
|
|
168
|
-
/**
|
|
169
|
-
* Bind test method to wrap test.each function
|
|
170
|
-
*/
|
|
171
|
-
const bindTest = (self, originalVitestFn) => function bindTest(...eachArgs) {
|
|
172
|
-
return function bindTest(...args) {
|
|
173
|
-
args[1] = wrapTestInZone(args[1]);
|
|
174
|
-
return originalVitestFn.apply(self, eachArgs).apply(self, args);
|
|
175
|
-
};
|
|
176
|
-
};
|
|
177
|
-
['describe'].forEach((methodName) => {
|
|
178
|
-
const originalvitestFn = env[methodName];
|
|
179
|
-
env[methodName] = function (...args) {
|
|
180
|
-
args[1] = wrapDescribeInZone(args[1]);
|
|
181
|
-
return originalvitestFn.apply(this, args);
|
|
182
|
-
};
|
|
183
|
-
env[methodName].each = bindDescribe(originalvitestFn, originalvitestFn.each);
|
|
184
|
-
if (methodName === 'describe') {
|
|
185
|
-
env[methodName].only = bindDescribe(originalvitestFn, originalvitestFn.only);
|
|
186
|
-
env[methodName].skip = bindDescribe(originalvitestFn, originalvitestFn.skip);
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
['test', 'it'].forEach((methodName) => {
|
|
190
|
-
const originalvitestFn = env[methodName];
|
|
191
|
-
env[methodName] = function (...args) {
|
|
192
|
-
args[1] = wrapTestInZone(args[1]);
|
|
193
|
-
return originalvitestFn.apply(this, args);
|
|
194
|
-
};
|
|
195
|
-
env[methodName].each = bindTest(originalvitestFn, originalvitestFn.each);
|
|
196
|
-
env[methodName].only = bindTest(originalvitestFn, originalvitestFn.only);
|
|
197
|
-
env[methodName].skip = bindTest(originalvitestFn, originalvitestFn.skip);
|
|
198
|
-
if (methodName === 'test' || methodName === 'it') {
|
|
199
|
-
env[methodName].todo = function todo(...args) {
|
|
200
|
-
return originalvitestFn.todo.apply(this, args);
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
['beforeEach', 'afterEach', 'beforeAll', 'afterAll'].forEach((methodName) => {
|
|
205
|
-
const originalvitestFn = env[methodName];
|
|
206
|
-
env[methodName] = function (...args) {
|
|
207
|
-
args[0] = wrapTestInZone(args[0]);
|
|
208
|
-
return originalvitestFn.apply(this, args);
|
|
209
|
-
};
|
|
210
|
-
});
|
|
211
|
-
['expect'].forEach((methodName) => {
|
|
212
|
-
const originalvitestFn = env[methodName];
|
|
213
|
-
return originalvitestFn.addSnapshotSerializer(customSnapshotSerializer());
|
|
214
|
-
});
|
|
215
|
-
//# sourceMappingURL=setup-vitest.js.map
|
package/setup-vitest.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-vitest.js","sourceRoot":"","sources":["../../../packages/vite-plugin-angular/setup-vitest.ts"],"names":[],"mappings":"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"}
|
package/src/lib/models.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=models.js.map
|
package/src/lib/models.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/models.ts"],"names":[],"mappings":""}
|
package/src/lib/tools/README.md
DELETED
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/vite-plugin-angular-tools/src/index.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=compiler-plugin-options.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compiler-plugin-options.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/utils/compiler-plugin-options.ts"],"names":[],"mappings":""}
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
/**
|
|
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 assert from 'node:assert';
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
/**
|
|
11
|
-
* Analyzes one or more modified files for changes to determine if any
|
|
12
|
-
* class declarations for Angular components are candidates for hot
|
|
13
|
-
* module replacement (HMR). If any source files are also modified but
|
|
14
|
-
* are not candidates then all candidates become invalid. This invalidation
|
|
15
|
-
* ensures that a full rebuild occurs and the running application stays
|
|
16
|
-
* synchronized with the code.
|
|
17
|
-
* @param modifiedFiles A set of modified files to analyze.
|
|
18
|
-
* @param param1 An Angular compiler instance
|
|
19
|
-
* @param staleSourceFiles A map of paths to previous source file instances.
|
|
20
|
-
* @returns A set of HMR candidate component class declarations.
|
|
21
|
-
*/
|
|
22
|
-
export function collectHmrCandidates(modifiedFiles, { compiler }, staleSourceFiles) {
|
|
23
|
-
const candidates = new Set();
|
|
24
|
-
for (const file of modifiedFiles) {
|
|
25
|
-
// If the file is a template for component(s), add component classes as candidates
|
|
26
|
-
const templateFileNodes = compiler.getComponentsWithTemplateFile(file);
|
|
27
|
-
if (templateFileNodes.size) {
|
|
28
|
-
templateFileNodes.forEach((node) => candidates.add(node));
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
// If the file is a style for component(s), add component classes as candidates
|
|
32
|
-
const styleFileNodes = compiler.getComponentsWithStyleFile(file);
|
|
33
|
-
if (styleFileNodes.size) {
|
|
34
|
-
styleFileNodes.forEach((node) => candidates.add(node));
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
const staleSource = staleSourceFiles?.get(file);
|
|
38
|
-
if (staleSource === undefined) {
|
|
39
|
-
// Unknown file requires a rebuild so clear out the candidates and stop collecting
|
|
40
|
-
candidates.clear();
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
const updatedSource = compiler.getCurrentProgram().getSourceFile(file);
|
|
44
|
-
if (updatedSource === undefined) {
|
|
45
|
-
// No longer existing program file requires a rebuild so clear out the candidates and stop collecting
|
|
46
|
-
candidates.clear();
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
// Analyze the stale and updated file for changes
|
|
50
|
-
const fileCandidates = analyzeFileUpdates(staleSource, updatedSource, compiler);
|
|
51
|
-
if (fileCandidates) {
|
|
52
|
-
fileCandidates.forEach((node) => candidates.add(node));
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
// Unsupported HMR changes present
|
|
56
|
-
// Only template and style literal changes are allowed.
|
|
57
|
-
candidates.clear();
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return candidates;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Analyzes the updates of a source file for potential HMR component class candidates.
|
|
65
|
-
* A source file can contain candidates if only the Angular component metadata of a class
|
|
66
|
-
* has been changed and the metadata changes are only of supported fields.
|
|
67
|
-
* @param stale The stale (previous) source file instance.
|
|
68
|
-
* @param updated The updated source file instance.
|
|
69
|
-
* @param compiler An Angular compiler instance.
|
|
70
|
-
* @returns An array of candidate class declarations; or `null` if unsupported changes are present.
|
|
71
|
-
*/
|
|
72
|
-
export function analyzeFileUpdates(stale, updated, compiler) {
|
|
73
|
-
if (stale.statements.length !== updated.statements.length) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const candidates = [];
|
|
77
|
-
for (let i = 0; i < updated.statements.length; ++i) {
|
|
78
|
-
const updatedNode = updated.statements[i];
|
|
79
|
-
const staleNode = stale.statements[i];
|
|
80
|
-
if (ts.isClassDeclaration(updatedNode)) {
|
|
81
|
-
if (!ts.isClassDeclaration(staleNode)) {
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
// Check class declaration differences (name/heritage/modifiers)
|
|
85
|
-
if (updatedNode.name?.text !== staleNode.name?.text) {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
if (!equalRangeText(updatedNode.heritageClauses, updated, staleNode.heritageClauses, stale)) {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
const updatedModifiers = ts.getModifiers(updatedNode);
|
|
92
|
-
const staleModifiers = ts.getModifiers(staleNode);
|
|
93
|
-
if (updatedModifiers?.length !== staleModifiers?.length ||
|
|
94
|
-
!updatedModifiers?.every((updatedModifier) => staleModifiers?.some((staleModifier) => updatedModifier.kind === staleModifier.kind))) {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
// Check for component class nodes
|
|
98
|
-
const meta = compiler?.getMeta(updatedNode);
|
|
99
|
-
console.log('meta', stale.fileName, meta);
|
|
100
|
-
if (meta?.decorator &&
|
|
101
|
-
meta.isComponent === true) {
|
|
102
|
-
const updatedDecorators = ts.getDecorators(updatedNode);
|
|
103
|
-
const staleDecorators = ts.getDecorators(staleNode);
|
|
104
|
-
if (!staleDecorators ||
|
|
105
|
-
staleDecorators.length !== updatedDecorators?.length) {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
// TODO: Check other decorators instead of assuming all multi-decorator components are unsupported
|
|
109
|
-
if (staleDecorators.length > 1) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
// Find index of component metadata decorator
|
|
113
|
-
const metaDecoratorIndex = updatedDecorators?.indexOf(meta.decorator);
|
|
114
|
-
assert(metaDecoratorIndex !== undefined, 'Component metadata decorator should always be present on component class.');
|
|
115
|
-
const updatedDecoratorExpression = meta.decorator.expression;
|
|
116
|
-
assert(ts.isCallExpression(updatedDecoratorExpression) &&
|
|
117
|
-
updatedDecoratorExpression.arguments.length === 1, 'Component metadata decorator should contain a call expression with a single argument.');
|
|
118
|
-
// Check the matching stale index for the component decorator
|
|
119
|
-
const staleDecoratorExpression = staleDecorators[metaDecoratorIndex]?.expression;
|
|
120
|
-
if (!staleDecoratorExpression ||
|
|
121
|
-
!ts.isCallExpression(staleDecoratorExpression) ||
|
|
122
|
-
staleDecoratorExpression.arguments.length !== 1) {
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
// Check decorator name/expression
|
|
126
|
-
// NOTE: This would typically be `Component` but can also be a property expression or some other alias.
|
|
127
|
-
// To avoid complex checks, this ensures the textual representation does not change. This has a low chance
|
|
128
|
-
// of a false positive if the expression is changed to still reference the `Component` type but has different
|
|
129
|
-
// text. However, it is rare for `Component` to not be used directly and additionally unlikely that it would
|
|
130
|
-
// be changed between edits. A false positive would also only lead to a difference of a full page reload versus
|
|
131
|
-
// an HMR update.
|
|
132
|
-
if (!equalRangeText(updatedDecoratorExpression.expression, updated, staleDecoratorExpression.expression, stale)) {
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
// Compare component meta decorator object literals
|
|
136
|
-
const analysis = analyzeMetaUpdates(staleDecoratorExpression, stale, updatedDecoratorExpression, updated);
|
|
137
|
-
if (analysis === MetaUpdateAnalysis.Unsupported) {
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
// Compare text of the member nodes to determine if any changes have occurred
|
|
141
|
-
if (!equalRangeText(updatedNode.members, updated, staleNode.members, stale)) {
|
|
142
|
-
// A change to a member outside a component's metadata is unsupported
|
|
143
|
-
return null;
|
|
144
|
-
}
|
|
145
|
-
// If all previous class checks passed, this class is supported for HMR updates
|
|
146
|
-
if (analysis === MetaUpdateAnalysis.Supported) {
|
|
147
|
-
candidates.push(updatedNode);
|
|
148
|
-
}
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
// Compare text of the statement nodes to determine if any changes have occurred
|
|
153
|
-
// TODO: Consider expanding this to check semantic updates for each node kind
|
|
154
|
-
if (!equalRangeText(updatedNode, updated, staleNode, stale)) {
|
|
155
|
-
// A change to a statement outside a component's metadata is unsupported
|
|
156
|
-
return null;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return candidates;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* The set of Angular component metadata fields that are supported by HMR updates.
|
|
163
|
-
*/
|
|
164
|
-
const SUPPORTED_FIELD_NAMES = new Set([
|
|
165
|
-
'template',
|
|
166
|
-
'templateUrl',
|
|
167
|
-
'styles',
|
|
168
|
-
'styleUrl',
|
|
169
|
-
'stylesUrl',
|
|
170
|
-
]);
|
|
171
|
-
var MetaUpdateAnalysis;
|
|
172
|
-
(function (MetaUpdateAnalysis) {
|
|
173
|
-
MetaUpdateAnalysis[MetaUpdateAnalysis["Supported"] = 0] = "Supported";
|
|
174
|
-
MetaUpdateAnalysis[MetaUpdateAnalysis["Unsupported"] = 1] = "Unsupported";
|
|
175
|
-
MetaUpdateAnalysis[MetaUpdateAnalysis["None"] = 2] = "None";
|
|
176
|
-
})(MetaUpdateAnalysis || (MetaUpdateAnalysis = {}));
|
|
177
|
-
/**
|
|
178
|
-
* Analyzes the metadata fields of a decorator call expression for unsupported HMR updates.
|
|
179
|
-
* Only updates to supported fields can be present for HMR to be viable.
|
|
180
|
-
* @param staleCall A call expression instance.
|
|
181
|
-
* @param staleSource The source file instance containing the stale call instance.
|
|
182
|
-
* @param updatedCall A call expression instance.
|
|
183
|
-
* @param updatedSource The source file instance containing the updated call instance.
|
|
184
|
-
* @returns A MetaUpdateAnalysis enum value.
|
|
185
|
-
*/
|
|
186
|
-
function analyzeMetaUpdates(staleCall, staleSource, updatedCall, updatedSource) {
|
|
187
|
-
const staleObject = staleCall.arguments[0];
|
|
188
|
-
const updatedObject = updatedCall.arguments[0];
|
|
189
|
-
let hasSupportedUpdate = false;
|
|
190
|
-
if (!ts.isObjectLiteralExpression(staleObject) ||
|
|
191
|
-
!ts.isObjectLiteralExpression(updatedObject)) {
|
|
192
|
-
return MetaUpdateAnalysis.Unsupported;
|
|
193
|
-
}
|
|
194
|
-
const supportedFields = new Map();
|
|
195
|
-
const unsupportedFields = [];
|
|
196
|
-
for (const property of staleObject.properties) {
|
|
197
|
-
if (!ts.isPropertyAssignment(property) ||
|
|
198
|
-
ts.isComputedPropertyName(property.name)) {
|
|
199
|
-
// Unsupported object literal property
|
|
200
|
-
return MetaUpdateAnalysis.Unsupported;
|
|
201
|
-
}
|
|
202
|
-
const name = property.name.text;
|
|
203
|
-
if (SUPPORTED_FIELD_NAMES.has(name)) {
|
|
204
|
-
supportedFields.set(name, property.initializer);
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
unsupportedFields.push(property.initializer);
|
|
208
|
-
}
|
|
209
|
-
let i = 0;
|
|
210
|
-
for (const property of updatedObject.properties) {
|
|
211
|
-
if (!ts.isPropertyAssignment(property) ||
|
|
212
|
-
ts.isComputedPropertyName(property.name)) {
|
|
213
|
-
// Unsupported object literal property
|
|
214
|
-
return MetaUpdateAnalysis.Unsupported;
|
|
215
|
-
}
|
|
216
|
-
const name = property.name.text;
|
|
217
|
-
if (SUPPORTED_FIELD_NAMES.has(name)) {
|
|
218
|
-
const staleInitializer = supportedFields.get(name);
|
|
219
|
-
// If the supported field was added or has its content changed, there has been a supported update
|
|
220
|
-
if (!staleInitializer ||
|
|
221
|
-
!equalRangeText(property.initializer, updatedSource, staleInitializer, staleSource)) {
|
|
222
|
-
hasSupportedUpdate = true;
|
|
223
|
-
}
|
|
224
|
-
// Remove the field entry to allow tracking removed fields
|
|
225
|
-
supportedFields.delete(name);
|
|
226
|
-
continue;
|
|
227
|
-
}
|
|
228
|
-
// Compare in order
|
|
229
|
-
if (!equalRangeText(property.initializer, updatedSource, unsupportedFields[i++], staleSource)) {
|
|
230
|
-
return MetaUpdateAnalysis.Unsupported;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
if (i !== unsupportedFields.length) {
|
|
234
|
-
return MetaUpdateAnalysis.Unsupported;
|
|
235
|
-
}
|
|
236
|
-
// Any remaining supported field indicates a field removal. This is also considered a supported update.
|
|
237
|
-
hasSupportedUpdate ||= supportedFields.size > 0;
|
|
238
|
-
return hasSupportedUpdate
|
|
239
|
-
? MetaUpdateAnalysis.Supported
|
|
240
|
-
: MetaUpdateAnalysis.None;
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Compares the text from a provided range in a source file to the text of a range in a second source file.
|
|
244
|
-
* The comparison avoids making any intermediate string copies.
|
|
245
|
-
* @param firstRange A text range within the first source file.
|
|
246
|
-
* @param firstSource A source file instance.
|
|
247
|
-
* @param secondRange A text range within the second source file.
|
|
248
|
-
* @param secondSource A source file instance.
|
|
249
|
-
* @returns true, if the text from both ranges is equal; false, otherwise.
|
|
250
|
-
*/
|
|
251
|
-
function equalRangeText(firstRange, firstSource, secondRange, secondSource) {
|
|
252
|
-
// Check matching undefined values
|
|
253
|
-
if (!firstRange || !secondRange) {
|
|
254
|
-
return firstRange === secondRange;
|
|
255
|
-
}
|
|
256
|
-
// Ensure lengths are equal
|
|
257
|
-
const firstLength = firstRange.end - firstRange.pos;
|
|
258
|
-
const secondLength = secondRange.end - secondRange.pos;
|
|
259
|
-
if (firstLength !== secondLength) {
|
|
260
|
-
return false;
|
|
261
|
-
}
|
|
262
|
-
// Check each character
|
|
263
|
-
for (let i = 0; i < firstLength; ++i) {
|
|
264
|
-
const firstChar = firstSource.text.charCodeAt(i + firstRange.pos);
|
|
265
|
-
const secondChar = secondSource.text.charCodeAt(i + secondRange.pos);
|
|
266
|
-
if (firstChar !== secondChar) {
|
|
267
|
-
return false;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return true;
|
|
271
|
-
}
|
|
272
|
-
//# sourceMappingURL=hmr-candidates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hmr-candidates.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/utils/hmr-candidates.ts"],"names":[],"mappings":"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"}
|