ember-vite-hmr 0.6.0 → 0.6.2
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/addon-main.cjs +11 -6
- package/dist/lib/babel-plugin.js +26 -117
- package/dist/lib/hmr.d.ts +2 -0
- package/dist/lib/hmr.js +29 -2
- package/dist/services/webpack-hot-reload.js +4 -1
- package/dist/services/webpack-hot-reload.js.map +1 -1
- package/package.json +1 -1
package/addon-main.cjs
CHANGED
|
@@ -16,23 +16,29 @@ Object.assign(module.exports, {
|
|
|
16
16
|
return addonOptions.babel;
|
|
17
17
|
},
|
|
18
18
|
included(...args) {
|
|
19
|
-
this._getBabelOptions().plugins.push([
|
|
19
|
+
this._getBabelOptions().plugins.push([
|
|
20
|
+
require.resolve('./dist/lib/babel-plugin.js'),
|
|
21
|
+
{ v: 4, appName: this.app.name },
|
|
22
|
+
]);
|
|
20
23
|
this._super.included; // need to access this somehow? otherwise it fails later on...
|
|
21
24
|
|
|
22
25
|
let astPlugin = this._buildPlugin();
|
|
23
26
|
astPlugin.parallelBabel = {
|
|
24
27
|
requireFile: __filename,
|
|
25
28
|
buildUsing: '_buildPlugin',
|
|
26
|
-
params: {}
|
|
29
|
+
params: {},
|
|
27
30
|
};
|
|
28
|
-
const compatAppBuilder = require.resolve(
|
|
31
|
+
const compatAppBuilder = require.resolve(
|
|
32
|
+
'@embroider/compat/src/compat-app-builder',
|
|
33
|
+
{ paths: [process.cwd()] },
|
|
34
|
+
);
|
|
29
35
|
const CompatAppBuilder = require(compatAppBuilder).CompatAppBuilder;
|
|
30
36
|
const etcOptions = CompatAppBuilder.prototype.etcOptions;
|
|
31
37
|
CompatAppBuilder.prototype.etcOptions = function (...args) {
|
|
32
38
|
const opts = etcOptions.call(this, ...args);
|
|
33
39
|
opts.transforms.push(astPlugin);
|
|
34
40
|
return opts;
|
|
35
|
-
}
|
|
41
|
+
};
|
|
36
42
|
included.call(this, ...args);
|
|
37
43
|
},
|
|
38
44
|
|
|
@@ -40,5 +46,4 @@ Object.assign(module.exports, {
|
|
|
40
46
|
const hotAstProcessor = require('./dist/lib/babel-plugin').hotAstProcessor;
|
|
41
47
|
return hotAstProcessor.transform.bind(hotAstProcessor);
|
|
42
48
|
},
|
|
43
|
-
})
|
|
44
|
-
|
|
49
|
+
});
|
package/dist/lib/babel-plugin.js
CHANGED
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.hotAstProcessor = void 0;
|
|
27
27
|
const core_1 = require("@babel/core");
|
|
28
28
|
const glimmer = __importStar(require("@glimmer/syntax"));
|
|
29
|
+
const babel_import_util_1 = require("babel-import-util");
|
|
29
30
|
const builtInComponents = ['LinkTo'];
|
|
30
31
|
const builtInHelpers = [
|
|
31
32
|
'-get-dynamic-var',
|
|
@@ -145,14 +146,6 @@ class HotAstProcessor {
|
|
|
145
146
|
return;
|
|
146
147
|
if (findBlockParams(node.original.split('.')[0], p))
|
|
147
148
|
return;
|
|
148
|
-
if (importVar) {
|
|
149
|
-
if (imports.includes(node.original)) {
|
|
150
|
-
usedImports.add(node.original);
|
|
151
|
-
node.original = `${importVar}.${node.original}`;
|
|
152
|
-
node.parts = node.original.split('.');
|
|
153
|
-
}
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
149
|
const params = [];
|
|
157
150
|
const blockParams = [];
|
|
158
151
|
const letBlock = glimmer.builders.path('let');
|
|
@@ -164,87 +157,25 @@ class HotAstProcessor {
|
|
|
164
157
|
return;
|
|
165
158
|
if (p.parentNode.params[0].original?.includes('.'))
|
|
166
159
|
return;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
160
|
+
if (!p.parentNode.params[0].original)
|
|
161
|
+
return;
|
|
162
|
+
const original = p.parentNode.params[0].original;
|
|
163
|
+
const param = glimmer.builders.path(`${importVar}.${original}`);
|
|
171
164
|
p.parentNode.params.splice(0, 1);
|
|
172
|
-
params.push(param);
|
|
173
|
-
|
|
174
|
-
blockParams.push(name);
|
|
175
|
-
node.type = 'PathExpression';
|
|
176
|
-
node.original = name;
|
|
177
|
-
const block = glimmer.builders.blockItself([], blockParams);
|
|
178
|
-
const b = glimmer.builders.block(letBlock, params, null, block);
|
|
179
|
-
changes.push(b);
|
|
180
|
-
this.counter++;
|
|
165
|
+
p.parentNode.params.push(param);
|
|
166
|
+
usedImports.add(original);
|
|
181
167
|
return;
|
|
182
168
|
}
|
|
183
|
-
if (
|
|
169
|
+
if (importVar) {
|
|
170
|
+
if (imports.includes(node.original)) {
|
|
171
|
+
usedImports.add(node.original);
|
|
172
|
+
node.original = `${importVar}.${node.original}`;
|
|
173
|
+
node.parts = node.original.split('.');
|
|
174
|
+
}
|
|
184
175
|
return;
|
|
185
176
|
}
|
|
186
|
-
if (!builtInHelpers.includes(node.original)) {
|
|
187
|
-
if (p.parentNode?.type === 'ElementModifierStatement')
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const firstLetter = node.original.split('.').slice(-1)[0][0];
|
|
191
|
-
let type = 'helper';
|
|
192
|
-
if ((this.options.itsStatic &&
|
|
193
|
-
p.parentNode?.type === 'MustacheStatement') ||
|
|
194
|
-
firstLetter === firstLetter.toUpperCase()) {
|
|
195
|
-
type = 'component';
|
|
196
|
-
}
|
|
197
|
-
const sub = glimmer.builders.sexpr(type, [
|
|
198
|
-
glimmer.builders.string(node.original),
|
|
199
|
-
...(p.parentNode.type === 'SubExpression' ? p.parentNode.params : []),
|
|
200
|
-
]);
|
|
201
|
-
const param = glimmer.builders.sexpr('webpack-hot-reload', [sub], glimmer.builders.hash([
|
|
202
|
-
glimmer.builders.pair('type', glimmer.builders.string(type)),
|
|
203
|
-
]));
|
|
204
|
-
params.push(param);
|
|
205
|
-
const name = type + '_' + this.counter;
|
|
206
|
-
blockParams.push(name);
|
|
207
|
-
node.type = 'PathExpression';
|
|
208
|
-
node.original = name;
|
|
209
|
-
if (!params.length)
|
|
210
|
-
return;
|
|
211
|
-
const block = glimmer.builders.blockItself([], blockParams);
|
|
212
|
-
const b = glimmer.builders.block(letBlock, params, null, block);
|
|
213
|
-
changes.push(b);
|
|
214
|
-
this.counter++;
|
|
215
177
|
},
|
|
216
178
|
ElementNode: (element, p) => {
|
|
217
|
-
const params = [];
|
|
218
|
-
const blockParams = [];
|
|
219
|
-
const letBlock = glimmer.builders.path('let');
|
|
220
|
-
element.modifiers.forEach((modifier) => {
|
|
221
|
-
if (importVar) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
if (!modifier.path.original)
|
|
225
|
-
return;
|
|
226
|
-
if (modifier.path.original && modifier.path.original.includes('.'))
|
|
227
|
-
return;
|
|
228
|
-
if (builtInHelpers.includes(modifier.path.original)) {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
const sub = glimmer.builders.sexpr('modifier', [
|
|
232
|
-
{
|
|
233
|
-
...((modifier.path.original &&
|
|
234
|
-
glimmer.builders.string(modifier.path.original)) ||
|
|
235
|
-
modifier.path),
|
|
236
|
-
},
|
|
237
|
-
]);
|
|
238
|
-
const param = glimmer.builders.sexpr('webpack-hot-reload', [sub], glimmer.builders.hash([
|
|
239
|
-
glimmer.builders.pair('type', glimmer.builders.string('modifier')),
|
|
240
|
-
]));
|
|
241
|
-
params.push(param);
|
|
242
|
-
const name = 'modifier_' + this.counter;
|
|
243
|
-
blockParams.push(name);
|
|
244
|
-
modifier.path.type = 'PathExpression';
|
|
245
|
-
modifier.path.original = 'modifier_' + this.counter;
|
|
246
|
-
this.counter++;
|
|
247
|
-
});
|
|
248
179
|
if (findBlockParams(element.tag.split('.')[0], p))
|
|
249
180
|
return;
|
|
250
181
|
if (importVar) {
|
|
@@ -254,27 +185,6 @@ class HotAstProcessor {
|
|
|
254
185
|
}
|
|
255
186
|
return;
|
|
256
187
|
}
|
|
257
|
-
if (builtInComponents.includes(element.tag)) {
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
if (element.tag[0] === element.tag[0].toUpperCase()) {
|
|
261
|
-
const sub = glimmer.builders.sexpr('component', [
|
|
262
|
-
glimmer.builders.string(dasherize(element.tag)),
|
|
263
|
-
]);
|
|
264
|
-
const param = glimmer.builders.sexpr('webpack-hot-reload', [sub], glimmer.builders.hash([
|
|
265
|
-
glimmer.builders.pair('type', glimmer.builders.string('component')),
|
|
266
|
-
]));
|
|
267
|
-
params.push(param);
|
|
268
|
-
const name = 'Component_' + this.counter;
|
|
269
|
-
blockParams.push(name);
|
|
270
|
-
element.tag = name;
|
|
271
|
-
}
|
|
272
|
-
const block = glimmer.builders.blockItself([], blockParams);
|
|
273
|
-
if (!params.length)
|
|
274
|
-
return;
|
|
275
|
-
const b = glimmer.builders.block(letBlock, params, null, block);
|
|
276
|
-
changes.push(b);
|
|
277
|
-
this.counter++;
|
|
278
188
|
},
|
|
279
189
|
Program: {
|
|
280
190
|
exit(program) { },
|
|
@@ -333,7 +243,8 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
333
243
|
name: 'hot-reload-imports',
|
|
334
244
|
visitor: {
|
|
335
245
|
Program: {
|
|
336
|
-
enter(path) {
|
|
246
|
+
enter(path, state) {
|
|
247
|
+
state.importUtil = new babel_import_util_1.ImportUtil(t, path);
|
|
337
248
|
templateImportSpecifier = '';
|
|
338
249
|
importVar = null;
|
|
339
250
|
tracked = null;
|
|
@@ -362,7 +273,6 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
362
273
|
exports.hotAstProcessor.meta.importVar = importVar;
|
|
363
274
|
node.body.splice(0, 0, t.importDeclaration([t.importSpecifier(tracked, t.identifier('tracked'))], t.stringLiteral('@glimmer/tracking')));
|
|
364
275
|
let usedImports = new Set();
|
|
365
|
-
const addedIds = new Set();
|
|
366
276
|
path.traverse({
|
|
367
277
|
ImportDeclaration: function (path) {
|
|
368
278
|
path.node.specifiers.forEach(function (s) {
|
|
@@ -373,13 +283,6 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
373
283
|
};
|
|
374
284
|
});
|
|
375
285
|
},
|
|
376
|
-
Identifier(path) {
|
|
377
|
-
if (addedIds.has(path.node)) {
|
|
378
|
-
path.scope
|
|
379
|
-
.getBinding(path.node.name)
|
|
380
|
-
?.referencePaths.push(path);
|
|
381
|
-
}
|
|
382
|
-
},
|
|
383
286
|
CallExpression(path) {
|
|
384
287
|
const call = path.node;
|
|
385
288
|
if (templateImportSpecifier &&
|
|
@@ -408,8 +311,12 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
408
311
|
t.variableDeclarator(importVar),
|
|
409
312
|
]);
|
|
410
313
|
importsKlass = t.classExpression(path.scope.generateUidIdentifier('Imports'), null, t.classBody([...usedImports].map((i) => {
|
|
411
|
-
const
|
|
412
|
-
|
|
314
|
+
const { source, specifiers } = importMap[i];
|
|
315
|
+
const specifier = specifiers.find((s) => s.local.name === i);
|
|
316
|
+
const specifierName = specifier.imported?.name ||
|
|
317
|
+
specifier.imported?.value ||
|
|
318
|
+
'default';
|
|
319
|
+
const x = state.importUtil.import(path, source, specifierName);
|
|
413
320
|
return t.classProperty(t.identifier(i), x, null, [
|
|
414
321
|
t.decorator(tracked),
|
|
415
322
|
]);
|
|
@@ -418,6 +325,8 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
418
325
|
const hotAccepts = [];
|
|
419
326
|
for (const imp of [...usedImports]) {
|
|
420
327
|
const { source, specifiers } = importMap[imp];
|
|
328
|
+
const i = t.importDeclaration([...specifiers], t.stringLiteral(source));
|
|
329
|
+
node.body.splice(0, 0, i);
|
|
421
330
|
const specifier = specifiers.find((s) => s.local.name === imp);
|
|
422
331
|
const specifierName = specifier.imported?.name ||
|
|
423
332
|
specifier.imported?.value ||
|
|
@@ -427,7 +336,7 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
427
336
|
hotAccepts.push(impHot);
|
|
428
337
|
}
|
|
429
338
|
const ifHot = t.ifStatement(t.memberExpression(t.metaProperty(t.identifier('import'), t.identifier('meta')), t.identifier('hot')), t.blockStatement([assignment, ...hotAccepts]));
|
|
430
|
-
node.body.splice(
|
|
339
|
+
node.body.splice(0, 0, importsVar);
|
|
431
340
|
node.body.push(ifHot);
|
|
432
341
|
},
|
|
433
342
|
exit(path, state) {
|
|
@@ -453,7 +362,7 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
453
362
|
});
|
|
454
363
|
const node = path.node;
|
|
455
364
|
const usedImports = exports.hotAstProcessor.meta.usedImports;
|
|
456
|
-
if (usedImports) {
|
|
365
|
+
if (usedImports || exports.hotAstProcessor.usedImports) {
|
|
457
366
|
const lastImport = [...node.body]
|
|
458
367
|
.reverse()
|
|
459
368
|
.find((x) => x.type === 'ImportDeclaration');
|
|
@@ -462,7 +371,7 @@ function hotReplaceAst({ types: t }, options) {
|
|
|
462
371
|
node.body.splice(-1, 1);
|
|
463
372
|
node.body.splice(idx, 0, assignment);
|
|
464
373
|
const hotAccepts = [];
|
|
465
|
-
for (const imp of [...usedImports]) {
|
|
374
|
+
for (const imp of [...usedImports, ...exports.hotAstProcessor.meta.usedImports]) {
|
|
466
375
|
const { source, specifiers } = importMap[imp];
|
|
467
376
|
const specifier = specifiers.find((s) => s.local.name === imp);
|
|
468
377
|
const specifierName = specifier.imported?.name ||
|
package/dist/lib/hmr.d.ts
CHANGED
package/dist/lib/hmr.js
CHANGED
|
@@ -9,6 +9,15 @@ function hmr() {
|
|
|
9
9
|
return {
|
|
10
10
|
name: 'hmr-plugin',
|
|
11
11
|
enforce: 'post',
|
|
12
|
+
resolveId(id) {
|
|
13
|
+
if (id === '/ember-vite-hmr/services/webpack-hot-reload') {
|
|
14
|
+
return this.resolve('ember-vite-hmr/services/webpack-hot-reload', process.cwd());
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
transformIndexHtml(html) {
|
|
18
|
+
return (`<script type="module" src="/ember-vite-hmr/services/webpack-hot-reload" />` +
|
|
19
|
+
html);
|
|
20
|
+
},
|
|
12
21
|
async transform(source, id) {
|
|
13
22
|
const resourcePath = id.replace(/\\/g, '/').split('?')[0];
|
|
14
23
|
const supportedPaths = ['routers', 'controllers', 'routes'];
|
|
@@ -20,10 +29,27 @@ function hmr() {
|
|
|
20
29
|
'controller.js',
|
|
21
30
|
'controller.ts',
|
|
22
31
|
];
|
|
32
|
+
if (resourcePath.includes('/-components/')) {
|
|
33
|
+
return source;
|
|
34
|
+
}
|
|
35
|
+
const name = require(`${process.cwd()}/package.json`).name;
|
|
36
|
+
if (resourcePath.includes(`/assets/${name}.js`)) {
|
|
37
|
+
const result = [
|
|
38
|
+
...source.matchAll(/d\("([^"]+)"/g),
|
|
39
|
+
];
|
|
40
|
+
for (const resultElement of result) {
|
|
41
|
+
const dep = resultElement[1];
|
|
42
|
+
if (!dep.includes('-components'))
|
|
43
|
+
continue;
|
|
44
|
+
source += `\nimport.meta.hot.accept("${dep}", () => void);`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
23
47
|
if (resourcePath.endsWith('.hbs') ||
|
|
24
48
|
resourcePath.endsWith('.gjs') ||
|
|
25
49
|
resourcePath.endsWith('.gts')) {
|
|
26
|
-
const result = [
|
|
50
|
+
const result = [
|
|
51
|
+
...source.matchAll(/import.meta.hot.accept\(\'([^']+)\'/g),
|
|
52
|
+
];
|
|
27
53
|
for (const resultElement of result) {
|
|
28
54
|
const dep = resultElement[1];
|
|
29
55
|
const resolved = await this.resolve(dep, resourcePath, {});
|
|
@@ -31,7 +57,8 @@ function hmr() {
|
|
|
31
57
|
if (id.includes('rewritten-app')) {
|
|
32
58
|
id = id.split('rewritten-app')[1];
|
|
33
59
|
}
|
|
34
|
-
if (path_1.default.resolve(id).replace(/\\/g, '/') === id &&
|
|
60
|
+
if (path_1.default.resolve(id).replace(/\\/g, '/') === id &&
|
|
61
|
+
path_1.default.isAbsolute(id)) {
|
|
35
62
|
if (!id.startsWith('/')) {
|
|
36
63
|
id = '/' + id;
|
|
37
64
|
}
|
|
@@ -66,6 +66,7 @@ if (import.meta.hot) {
|
|
|
66
66
|
loadNew(oldModule, newModule) {
|
|
67
67
|
this.versionMap[newModule.id] = newModule.version;
|
|
68
68
|
const entry = Object.values(requirejs.entries).find(module => module.module.exports.default === oldModule.exports.default);
|
|
69
|
+
if (!entry) return;
|
|
69
70
|
entry.module = {
|
|
70
71
|
exports: newModule.exports
|
|
71
72
|
};
|
|
@@ -132,7 +133,9 @@ let WebpackHotReloadService = (_dec = service(), (_class = class WebpackHotReloa
|
|
|
132
133
|
set(v) {
|
|
133
134
|
const getRoute = v.getRoute;
|
|
134
135
|
v.getRoute = function (name) {
|
|
135
|
-
|
|
136
|
+
const route = getRoute.call(this, `${name}--hot-version--${window.emberHotReloadPlugin.version}`);
|
|
137
|
+
route.fullRouteName = route.fullRouteName.replace(/--hot-version--.*$/, '');
|
|
138
|
+
return route;
|
|
136
139
|
};
|
|
137
140
|
this.___routerMicrolib = v;
|
|
138
141
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-hot-reload.js","sources":["../../src/services/webpack-hot-reload.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport { getOwner } from '@ember/owner';\nimport RouterService from '@ember/routing/router-service';\nimport Router from '@ember/routing/route';\nimport Controller from '@ember/controller';\n\nconst ChangeMap = new WeakMap();\n\nfunction getLatestChange(obj) {\n while (ChangeMap.has(obj)) {\n obj = ChangeMap.get(obj);\n }\n return obj;\n}\n\nlet modulePrefix!: string;\nlet podModulePrefix!: string;\nif (import.meta.hot) {\n const ModuleMap = new Map();\n\n window.emberHotReloadPlugin = {\n _accepting: 0,\n changed: {},\n subscribers: [],\n version: 1,\n moduleDepCallbacks: {},\n versionMap: {},\n clear(module) {\n this.moduleDepCallbacks[module.id] = {};\n },\n register(module, dep, callback) {\n dep = dep.replace(new RegExp(`^${modulePrefix}/`), './');\n this.moduleDepCallbacks[module.id][dep] =\n this.moduleDepCallbacks[module.id][dep] || [];\n this.moduleDepCallbacks[module.id][dep].push(callback);\n },\n loadNew(oldModule, newModule) {\n this.versionMap[newModule.id] = newModule.version;\n const entry = Object.values(requirejs.entries).find(\n (module) => module.module.exports.default === oldModule.exports.default,\n );\n entry.module = {\n exports: newModule.exports,\n };\n },\n\n __import(moduleUrl) {\n return import(/* @vite-ignore */ moduleUrl);\n },\n\n async canAcceptNew(moduleUrl) {\n this._accepting += 1;\n const m = await this.__import(moduleUrl);\n const module = {\n exports: m,\n id: moduleUrl.split('?')[0],\n };\n this._accepting -= 1;\n if (this._accepting === 0) {\n setTimeout(() => this.notifyNew(), 0);\n }\n let ok =\n module.id.includes('/routes/') ||\n module.id.includes('/routers/') ||\n module.id.includes('/controllers/') ||\n module.id.match(/controller\\.(js|ts)$/) ||\n module.id.match(/route\\.(js|ts|gts)$/);\n if (!ok) {\n return false;\n }\n\n if (ModuleMap.get(module.id)) {\n this.changed[module.id] = {\n old: ModuleMap.get(module.id),\n new: module,\n };\n }\n module.version = this.version;\n ModuleMap.set(module.id, module);\n return true;\n },\n notifyNew() {\n this.version += 1;\n Object.values(this.changed).forEach((change) => {\n this.loadNew(change.old, change.new);\n this.subscribers.forEach((fn) => fn(change.old, change.new));\n });\n this.changed = {};\n },\n subscribe(fn) {\n this.subscribers.push(fn);\n },\n unsubscribe(fn) {\n const idx = this.subscribers.indexOf(fn);\n if (idx >= 0) {\n this.subscribers.splice(idx, 1);\n }\n },\n };\n}\n\nexport default class WebpackHotReloadService extends Service {\n declare container: any;\n @service() router!: RouterService;\n\n init() {\n super.init();\n if (!window.emberHotReloadPlugin) return;\n modulePrefix = getOwner(this)!.application.modulePrefix;\n podModulePrefix = getOwner(this)!.application.podModulePrefix;\n this.router._router;\n Object.defineProperty(this.router._router, '_routerMicrolib', {\n set(v) {\n const getRoute = v.getRoute;\n v.getRoute = function (name) {\n return getRoute.call(\n this,\n `${name}--hot-version--${window.emberHotReloadPlugin.version}`,\n );\n };\n this.___routerMicrolib = v;\n },\n get() {\n return this.___routerMicrolib;\n },\n });\n this.container = getOwner(this)?.__container__;\n window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {\n const types = [\n 'route',\n 'controller',\n 'template',\n 'modifier',\n 'helper',\n 'component',\n ];\n Object.keys(this.container.cache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.cache[k];\n }\n });\n Object.keys(this.container.factoryManagerCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.factoryManagerCache[k];\n }\n });\n Object.keys(this.container.registry._resolveCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry._resolveCache[k];\n }\n });\n Object.keys(this.container.validationCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.validationCache[k];\n }\n });\n Object.keys(this.container.registry.registrations).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry.registrations[k];\n }\n });\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n this.router.refresh();\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n this.router.refresh();\n }\n if (\n oldModule.id.startsWith('./templates/') &&\n !oldModule.id.startsWith('./templates/components/')\n ) {\n this.router.refresh();\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n this.router.refresh();\n }\n });\n }\n getLatestChange(obj) {\n return getLatestChange(obj);\n }\n}\n\n// Don't remove this declaration: this is what enables TypeScript to resolve\n// this service using `Owner.lookup('service:hot-reload')`, as well\n// as to check when you pass the service name as an argument to the decorator,\n// like `@service('hot-reload') declare altName: HotReloadService;`.\ndeclare module '@ember/service' {\n interface Registry {\n 'hot-reload': WebpackHotReloadService;\n }\n}\n"],"names":["ChangeMap","WeakMap","getLatestChange","obj","has","get","modulePrefix","podModulePrefix","import","meta","hot","ModuleMap","Map","window","emberHotReloadPlugin","_accepting","changed","subscribers","version","moduleDepCallbacks","versionMap","clear","module","id","register","dep","callback","replace","RegExp","push","loadNew","oldModule","newModule","entry","Object","values","requirejs","entries","find","exports","default","__import","moduleUrl","canAcceptNew","m","split","setTimeout","notifyNew","ok","includes","match","old","new","set","forEach","change","fn","subscribe","unsubscribe","idx","indexOf","splice","WebpackHotReloadService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","init","getOwner","application","router","_router","defineProperty","v","getRoute","name","call","___routerMicrolib","container","__container__","types","keys","cache","k","some","t","startsWith","factoryManagerCache","registry","_resolveCache","validationCache","registrations","prototype","Router","refresh","Controller","_applyDecoratedDescriptor","configurable","enumerable","writable","initializer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webpack-hot-reload.js","sources":["../../src/services/webpack-hot-reload.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport { getOwner } from '@ember/owner';\nimport RouterService from '@ember/routing/router-service';\nimport Router from '@ember/routing/route';\nimport Controller from '@ember/controller';\n\nconst ChangeMap = new WeakMap();\n\nfunction getLatestChange(obj) {\n while (ChangeMap.has(obj)) {\n obj = ChangeMap.get(obj);\n }\n return obj;\n}\n\nlet modulePrefix!: string;\nlet podModulePrefix!: string;\nif (import.meta.hot) {\n const ModuleMap = new Map();\n\n window.emberHotReloadPlugin = {\n _accepting: 0,\n changed: {},\n subscribers: [],\n version: 1,\n moduleDepCallbacks: {},\n versionMap: {},\n clear(module) {\n this.moduleDepCallbacks[module.id] = {};\n },\n register(module, dep, callback) {\n dep = dep.replace(new RegExp(`^${modulePrefix}/`), './');\n this.moduleDepCallbacks[module.id][dep] =\n this.moduleDepCallbacks[module.id][dep] || [];\n this.moduleDepCallbacks[module.id][dep].push(callback);\n },\n loadNew(oldModule, newModule) {\n this.versionMap[newModule.id] = newModule.version;\n const entry = Object.values(requirejs.entries).find(\n (module) => module.module.exports.default === oldModule.exports.default,\n );\n if (!entry) return;\n entry.module = {\n exports: newModule.exports,\n };\n },\n\n __import(moduleUrl) {\n return import(/* @vite-ignore */ moduleUrl);\n },\n\n async canAcceptNew(moduleUrl) {\n this._accepting += 1;\n const m = await this.__import(moduleUrl);\n const module = {\n exports: m,\n id: moduleUrl.split('?')[0],\n };\n this._accepting -= 1;\n if (this._accepting === 0) {\n setTimeout(() => this.notifyNew(), 0);\n }\n let ok =\n module.id.includes('/routes/') ||\n module.id.includes('/routers/') ||\n module.id.includes('/controllers/') ||\n module.id.match(/controller\\.(js|ts)$/) ||\n module.id.match(/route\\.(js|ts|gts)$/);\n if (!ok) {\n return false;\n }\n\n if (ModuleMap.get(module.id)) {\n this.changed[module.id] = {\n old: ModuleMap.get(module.id),\n new: module,\n };\n }\n module.version = this.version;\n ModuleMap.set(module.id, module);\n return true;\n },\n notifyNew() {\n this.version += 1;\n Object.values(this.changed).forEach((change) => {\n this.loadNew(change.old, change.new);\n this.subscribers.forEach((fn) => fn(change.old, change.new));\n });\n this.changed = {};\n },\n subscribe(fn) {\n this.subscribers.push(fn);\n },\n unsubscribe(fn) {\n const idx = this.subscribers.indexOf(fn);\n if (idx >= 0) {\n this.subscribers.splice(idx, 1);\n }\n },\n };\n}\n\nexport default class WebpackHotReloadService extends Service {\n declare container: any;\n @service() router!: RouterService;\n\n init() {\n super.init();\n if (!window.emberHotReloadPlugin) return;\n modulePrefix = getOwner(this)!.application.modulePrefix;\n podModulePrefix = getOwner(this)!.application.podModulePrefix;\n this.router._router;\n Object.defineProperty(this.router._router, '_routerMicrolib', {\n set(v) {\n const getRoute = v.getRoute;\n v.getRoute = function (name) {\n const route = getRoute.call(\n this,\n `${name}--hot-version--${window.emberHotReloadPlugin.version}`,\n );\n route.fullRouteName = route.fullRouteName.replace(\n /--hot-version--.*$/,\n '',\n );\n return route;\n };\n this.___routerMicrolib = v;\n },\n get() {\n return this.___routerMicrolib;\n },\n });\n this.container = getOwner(this)?.__container__;\n window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {\n const types = [\n 'route',\n 'controller',\n 'template',\n 'modifier',\n 'helper',\n 'component',\n ];\n Object.keys(this.container.cache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.cache[k];\n }\n });\n Object.keys(this.container.factoryManagerCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.factoryManagerCache[k];\n }\n });\n Object.keys(this.container.registry._resolveCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry._resolveCache[k];\n }\n });\n Object.keys(this.container.validationCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.validationCache[k];\n }\n });\n Object.keys(this.container.registry.registrations).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry.registrations[k];\n }\n });\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n this.router.refresh();\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n this.router.refresh();\n }\n if (\n oldModule.id.startsWith('./templates/') &&\n !oldModule.id.startsWith('./templates/components/')\n ) {\n this.router.refresh();\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n this.router.refresh();\n }\n });\n }\n getLatestChange(obj) {\n return getLatestChange(obj);\n }\n}\n\n// Don't remove this declaration: this is what enables TypeScript to resolve\n// this service using `Owner.lookup('service:hot-reload')`, as well\n// as to check when you pass the service name as an argument to the decorator,\n// like `@service('hot-reload') declare altName: HotReloadService;`.\ndeclare module '@ember/service' {\n interface Registry {\n 'hot-reload': WebpackHotReloadService;\n }\n}\n"],"names":["ChangeMap","WeakMap","getLatestChange","obj","has","get","modulePrefix","podModulePrefix","import","meta","hot","ModuleMap","Map","window","emberHotReloadPlugin","_accepting","changed","subscribers","version","moduleDepCallbacks","versionMap","clear","module","id","register","dep","callback","replace","RegExp","push","loadNew","oldModule","newModule","entry","Object","values","requirejs","entries","find","exports","default","__import","moduleUrl","canAcceptNew","m","split","setTimeout","notifyNew","ok","includes","match","old","new","set","forEach","change","fn","subscribe","unsubscribe","idx","indexOf","splice","WebpackHotReloadService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","init","getOwner","application","router","_router","defineProperty","v","getRoute","name","route","call","fullRouteName","___routerMicrolib","container","__container__","types","keys","cache","k","some","t","startsWith","factoryManagerCache","registry","_resolveCache","validationCache","registrations","prototype","Router","refresh","Controller","_applyDecoratedDescriptor","configurable","enumerable","writable","initializer"],"mappings":"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"}
|