ember-vite-hmr 1.5.5 → 1.7.0

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/README.md CHANGED
@@ -7,7 +7,9 @@ this can hot reload
7
7
  - helpers
8
8
  - modifiers
9
9
  - components + templates, fcct components and its deps
10
- - routes/controllers/route-templates (although it refreshes the whole route and thus looses all state)
10
+ - routes/controllers/route-templates
11
+
12
+ this tries to keep the state of properties in components and controller
11
13
 
12
14
  it cannot hot reload local properties that turn out to be helpers/modifiers/components.
13
15
 
@@ -1,13 +1,7 @@
1
1
  import Route from '@ember/routing/route';
2
2
  import Component from '@glimmer/component';
3
3
  import { getInternalComponentManager } from '@glimmer/manager';
4
- import { tracked } from '@glimmer/tracking';
5
- import { createComputeRef } from '@glimmer/reference';
6
- import { curry } from '@glimmer/runtime';
7
4
 
8
- (function () {
9
- console.log(tracked, createComputeRef, curry);
10
- })();
11
5
  function findPropertyDescriptor(component, key) {
12
6
  let proto = component;
13
7
  while (proto) {
@@ -1 +1 @@
1
- {"version":3,"file":"setup-hmr-manager.js","sources":["../../src/instance-initializers/setup-hmr-manager.ts"],"sourcesContent":["import Route from '@ember/routing/route';\nimport Controller from '@ember/controller';\nimport Component from '@glimmer/component';\n// @ts-ignore\nimport { getInternalComponentManager } from '@glimmer/manager';\n\n// vite dep optimizer is currently broken and cannot optimize new deps, need to include this ones from start\nimport { tracked } from '@glimmer/tracking';\n// @ts-ignore\nimport { createComputeRef } from '@glimmer/reference';\n// @ts-ignore\nimport { curry } from '@glimmer/runtime';\n\n(function () {\n console.log(tracked, createComputeRef, curry);\n})();\n\ninterface HotComponent extends Component<{ __hot__?: any }> {\n __get_hot_state__?: () => Record<string, any>;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: any;\n};\n\nfunction findPropertyDescriptor(component: Object, key: string) {\n let proto = component;\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc) return desc;\n proto = Object.getPrototypeOf(proto);\n }\n}\n\nfunction getState(component: HotComponent, skip: string[]) {\n const state: Record<string, any> = {};\n if (!component) {\n return state;\n }\n for (const key in component) {\n if (skip.includes(key)) continue;\n const entry = findPropertyDescriptor(component, key);\n if (entry) {\n if (\n entry.writable &&\n !Object.prototype.toString.call(entry.value).includes('Function')\n ) {\n state[key] = component[key as keyof Component];\n }\n if (entry.set) {\n state[key] = component[key as keyof Component];\n }\n }\n }\n return state;\n}\n\nfunction syncState(instance: Mutable<HotComponent>) {\n if (instance.args.__hot__) {\n const state =\n instance.__get_hot_state__?.() || instance.args.__hot__.getState?.();\n for (const k in state) {\n instance[k as keyof HotComponent] = state[k];\n }\n instance.args.__hot__.getState = () => getState(instance, ['args']);\n }\n}\n\nexport function initialize() {\n const ComponentManager = getInternalComponentManager(Component);\n const proto = Object.getPrototypeOf(ComponentManager);\n const create = proto.create;\n proto.create = function (...args: any[]) {\n const instance = create.call(this, ...args);\n syncState(instance.component);\n return instance;\n };\n\n const setupController = Route.prototype.setupController;\n\n const StateCache: Record<string, any> = {};\n\n Route.prototype.setupController = function (...args: any[]) {\n const controller = args[0];\n // @ts-ignore\n const r = setupController.call(this, ...args);\n const fullRouteName = this.fullRouteName;\n const state = StateCache[fullRouteName] || {};\n const skip = ['_qpDelegate', 'target', 'queryParams'];\n const routerState = getState(state.router, skip);\n const controllerState = getState(state.controller, skip);\n for (const k in routerState) {\n (this as any)[k] = routerState[k];\n }\n for (const k in controllerState) {\n controller[k] = controllerState[k];\n }\n StateCache[fullRouteName] = {\n route: this,\n controller,\n };\n return r;\n };\n}\n\nexport default {\n initialize,\n};\n"],"names":["console","log","tracked","createComputeRef","curry","findPropertyDescriptor","component","key","proto","desc","Object","getOwnPropertyDescriptor","getPrototypeOf","getState","skip","state","includes","entry","writable","prototype","toString","call","value","set","syncState","instance","args","__hot__","__get_hot_state__","k","initialize","ComponentManager","getInternalComponentManager","Component","create","setupController","Route","StateCache","controller","r","fullRouteName","routerState","router","controllerState","route"],"mappings":"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"}
1
+ {"version":3,"file":"setup-hmr-manager.js","sources":["../../src/instance-initializers/setup-hmr-manager.ts"],"sourcesContent":["import Route from '@ember/routing/route';\nimport Controller from '@ember/controller';\nimport Component from '@glimmer/component';\n// @ts-ignore\nimport { getInternalComponentManager } from '@glimmer/manager';\n\n\ninterface HotComponent extends Component<{ __hot__?: any }> {\n __get_hot_state__?: () => Record<string, any>;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: any;\n};\n\nfunction findPropertyDescriptor(component: Object, key: string) {\n let proto = component;\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc) return desc;\n proto = Object.getPrototypeOf(proto);\n }\n}\n\nfunction getState(component: HotComponent, skip: string[]) {\n const state: Record<string, any> = {};\n if (!component) {\n return state;\n }\n for (const key in component) {\n if (skip.includes(key)) continue;\n const entry = findPropertyDescriptor(component, key);\n if (entry) {\n if (\n entry.writable &&\n !Object.prototype.toString.call(entry.value).includes('Function')\n ) {\n state[key] = component[key as keyof Component];\n }\n if (entry.set) {\n state[key] = component[key as keyof Component];\n }\n }\n }\n return state;\n}\n\nfunction syncState(instance: Mutable<HotComponent>) {\n if (instance.args.__hot__) {\n const state =\n instance.__get_hot_state__?.() || instance.args.__hot__.getState?.();\n for (const k in state) {\n instance[k as keyof HotComponent] = state[k];\n }\n instance.args.__hot__.getState = () => getState(instance, ['args']);\n }\n}\n\nexport function initialize() {\n const ComponentManager = getInternalComponentManager(Component);\n const proto = Object.getPrototypeOf(ComponentManager);\n const create = proto.create;\n proto.create = function (...args: any[]) {\n const instance = create.call(this, ...args);\n syncState(instance.component);\n return instance;\n };\n\n const setupController = Route.prototype.setupController;\n\n const StateCache: Record<string, any> = {};\n\n Route.prototype.setupController = function (...args: any[]) {\n const controller = args[0];\n // @ts-ignore\n const r = setupController.call(this, ...args);\n const fullRouteName = this.fullRouteName;\n const state = StateCache[fullRouteName] || {};\n const skip = ['_qpDelegate', 'target', 'queryParams'];\n const routerState = getState(state.router, skip);\n const controllerState = getState(state.controller, skip);\n for (const k in routerState) {\n (this as any)[k] = routerState[k];\n }\n for (const k in controllerState) {\n controller[k] = controllerState[k];\n }\n StateCache[fullRouteName] = {\n route: this,\n controller,\n };\n return r;\n };\n}\n\nexport default {\n initialize,\n};\n"],"names":["findPropertyDescriptor","component","key","proto","desc","Object","getOwnPropertyDescriptor","getPrototypeOf","getState","skip","state","includes","entry","writable","prototype","toString","call","value","set","syncState","instance","args","__hot__","__get_hot_state__","k","initialize","ComponentManager","getInternalComponentManager","Component","create","setupController","Route","StateCache","controller","r","fullRouteName","routerState","router","controllerState","route"],"mappings":"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"}
@@ -272,9 +272,12 @@ function hotReplaceAst(babel) {
272
272
  'default';
273
273
  const ast = (0, core_1.parse)(`
274
274
  (async () => {
275
- const c = await import('/ember-vite-hmr/virtual/component:${source}:${specifierName}.gjs');
275
+ const c = await import('/ember-vite-hmr/virtual/component:${source}:${specifierName}.gjs?timestamp=${Date.now()}');
276
276
  ${exports.hotAstProcessor.meta.importVar}.${imp} = c.default;
277
277
  })()
278
+ import.meta.hot.accept('/ember-vite-hmr/virtual/component:${source}:${specifierName}.gjs', (c) => {
279
+ ${exports.hotAstProcessor.meta.importVar}.${imp} = c['${specifierName}'];
280
+ });
278
281
  import.meta.hot.accept('${source}');
279
282
  `);
280
283
  const importVirtual = ast.program.body;
package/dist/lib/hmr.js CHANGED
@@ -15,7 +15,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.hmr = hmr;
16
16
  const path_1 = __importDefault(require("path"));
17
17
  const core_1 = require("@babel/core");
18
- const getHotComponent = (imp, specifier) => `
18
+ const fs_1 = require("fs");
19
+ function generateContent(yields) {
20
+ if (!yields.includes('default')) {
21
+ yields.push('default');
22
+ }
23
+ let all = yields.map((y) => `(has-block '${y}')`).join(' ');
24
+ let str = '';
25
+ for (const y of yields) {
26
+ str += `
27
+ <:${y} as |a b c d e f g h i j k l|>{{yield a b c d e f g h i j k l to='${y}'}}</:${y}>
28
+ `;
29
+ }
30
+ return `
31
+ {{#if (notAny ${all})}}
32
+ <this.curried @__hot__={{this.hot}} />
33
+ {{else}}
34
+ <this.curried @__hot__={{this.hot}} >
35
+ ${str}
36
+ </this.curried>
37
+ {{/if}}
38
+ `;
39
+ }
40
+ const getHotComponent = (imp, specifier, yields) => `
19
41
  import { ${specifier} as TargetComponent } from "${imp}";
20
42
  import Component from "@glimmer/component";
21
43
  import { tracked } from "@glimmer/tracking";
@@ -23,6 +45,10 @@ import { createComputeRef } from "@glimmer/reference";
23
45
  import { curry } from '@glimmer/runtime';
24
46
  import { CurriedTypes } from '@glimmer/vm';
25
47
 
48
+ function notAny(...yields) {
49
+ return !yields.some((y) => !!y);
50
+ }
51
+
26
52
  export default class HotComponent extends Component {
27
53
  @tracked curried;
28
54
  hot = {};
@@ -42,16 +68,50 @@ export default class HotComponent extends Component {
42
68
  }
43
69
  }
44
70
  <template>
45
- <this.curried @__hot__={{this.hot}}></this.curried>
71
+ ${generateContent(yields)}
46
72
  </template>
47
73
  }
48
74
  `;
75
+ const cachedYields = {};
76
+ function getYieldsFromFile(filename, noCache) {
77
+ if (cachedYields[filename] && !noCache) {
78
+ return cachedYields[filename];
79
+ }
80
+ const content = (0, fs_1.readFileSync)(filename).toString();
81
+ // very basic, todo: make this use AST
82
+ const matches = content.matchAll(/to=['"](\w+)['"]/g);
83
+ const yields = new Set([...matches].map((m) => m === null || m === void 0 ? void 0 : m[1]).filter((m) => !!m));
84
+ if (noCache) {
85
+ return {
86
+ yields,
87
+ modules: [],
88
+ };
89
+ }
90
+ cachedYields[filename] = {
91
+ yields,
92
+ modules: [],
93
+ };
94
+ return cachedYields[filename];
95
+ }
96
+ function difference(a, b) {
97
+ const diff = [];
98
+ for (const bElement of b) {
99
+ if (!a.has(bElement)) {
100
+ diff.push(bElement);
101
+ }
102
+ }
103
+ return diff;
104
+ }
49
105
  const virtualPrefix = '/ember-vite-hmr/virtual/component:';
50
106
  function hmr(enableViteHmrForModes = ['development']) {
51
107
  let conf;
108
+ let server;
52
109
  return {
53
110
  name: 'hmr-plugin',
54
111
  enforce: 'post',
112
+ configureServer(s) {
113
+ server = s;
114
+ },
55
115
  configResolved(config) {
56
116
  conf = config;
57
117
  process.env['EMBER_VITE_HMR_ENABLED'] = enableViteHmrForModes
@@ -77,12 +137,39 @@ function hmr(enableViteHmrForModes = ['development']) {
77
137
  }
78
138
  },
79
139
  load(id) {
80
- if (id.startsWith(virtualPrefix)) {
81
- const [imp, specifier] = id
82
- .slice(virtualPrefix.length, -'.gts'.length)
83
- .split(':');
84
- return getHotComponent(imp, specifier);
85
- }
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ if (cachedYields[id] &&
142
+ difference(cachedYields[id].yields, getYieldsFromFile(id, true).yields)
143
+ .length) {
144
+ for (const y of getYieldsFromFile(id, true).yields) {
145
+ cachedYields[id].yields.add(y);
146
+ }
147
+ const modules = cachedYields[id].modules;
148
+ delete cachedYields[id];
149
+ for (const module of modules) {
150
+ server.moduleGraph.onFileChange(module);
151
+ let m = server.moduleGraph.getModuleById(module);
152
+ if (m) {
153
+ yield server.reloadModule(m);
154
+ }
155
+ }
156
+ }
157
+ if (id.startsWith(virtualPrefix)) {
158
+ const [imp, specifier] = id
159
+ .split('?')[0]
160
+ .slice(virtualPrefix.length, -'.gts'.length)
161
+ .split(':');
162
+ let filename = imp;
163
+ if (filename.includes('__vpc__')) {
164
+ filename = filename.split('__vpc__')[0];
165
+ }
166
+ const resolved = yield this.resolve(filename, id);
167
+ const cached = getYieldsFromFile(resolved.id);
168
+ const yields = cached.yields;
169
+ cached.modules.push(id);
170
+ return getHotComponent(imp, specifier, [...yields].filter((y) => !!y));
171
+ }
172
+ });
86
173
  },
87
174
  transformIndexHtml(html) {
88
175
  if (process.env['EMBER_VITE_HMR_ENABLED'] !== 'true') {
@@ -115,16 +202,17 @@ function hmr(enableViteHmrForModes = ['development']) {
115
202
  const resourcePath = id.replace(/\\/g, '/').split('?')[0];
116
203
  let didReplaceSources = false;
117
204
  const name = require(`${process.cwd()}/package.json`).name;
118
- if (resourcePath.includes(`${name}/app/-embroider-entrypoint.js`)) {
119
- const result = [...source.matchAll(/import \* as [^ ]+ from (.*);/g)];
120
- source += result
121
- .map((r) => {
122
- if (r[1].includes('initializers')) {
123
- return `\nimport.meta.hot.accept(${r[1]}, () => window.location.reload());`;
124
- }
125
- return `\nimport.meta.hot.accept(${r[1]});`;
126
- })
127
- .join('');
205
+ if (resourcePath.includes(`${name}/app/app.js`)) {
206
+ source += `\n
207
+ let prevCompatModules = Object.assign({}, compatModules);
208
+ import.meta.hot.accept('@embroider/virtual/compat-modules', (m) => {
209
+ for (const [name, module] of Object.entries(m.default)) {
210
+ if (name.includes('initializers') && prevCompatModules[name]?.default !== module.default) {
211
+ window.location.reload();
212
+ }
213
+ }
214
+ prevCompatModules = m.default;
215
+ })`;
128
216
  }
129
217
  if (resourcePath.includes('ember-vite-hmr/virtual/components')) {
130
218
  return source;
@@ -155,19 +243,31 @@ function hmr(enableViteHmrForModes = ['development']) {
155
243
  return id;
156
244
  });
157
245
  const result = [
158
- ...source.matchAll(/import.meta.hot.accept\('([^']+)'/g),
246
+ ...source.matchAll(/import.meta.hot.accept\(['"]([^'"]+)['"]/g),
159
247
  ];
160
248
  for (const resultElement of result) {
161
249
  const dep = resultElement[1];
162
- const id = yield resolveDep(dep);
250
+ let possibleVirtual = { dep, specifier: null };
251
+ if (dep.includes(virtualPrefix)) {
252
+ const [imp, specifier] = dep
253
+ .slice(virtualPrefix.length)
254
+ .split(':');
255
+ possibleVirtual.dep = imp;
256
+ possibleVirtual.specifier = specifier;
257
+ }
258
+ let id = yield resolveDep(possibleVirtual.dep);
163
259
  if (!id)
164
260
  continue;
165
261
  if (dep === id)
166
262
  continue;
263
+ if (possibleVirtual.dep !== dep) {
264
+ id = virtualPrefix + id + ':' + possibleVirtual.specifier;
265
+ }
167
266
  didReplaceSources = true;
168
267
  source = source.replace(`import.meta.hot.accept('${dep}'`, `import.meta.hot.accept('${id}'`);
268
+ source = source.replace(`import.meta.hot.accept("${dep}"`, `import.meta.hot.accept("${id}"`);
169
269
  }
170
- const importMatches = [...source.matchAll(/import\('([^']+)'/g)];
270
+ const importMatches = [...source.matchAll(/import\(['"]([^']+)['"]/g)];
171
271
  for (const resultElement of importMatches) {
172
272
  const dep = resultElement[1];
173
273
  if (!dep.startsWith(virtualPrefix)) {
@@ -183,6 +283,7 @@ function hmr(enableViteHmrForModes = ['development']) {
183
283
  continue;
184
284
  didReplaceSources = true;
185
285
  source = source.replace(`import('${virtualPrefix}${imp}`, `import('${virtualPrefix}${id}`);
286
+ source = source.replace(`import("${virtualPrefix}${imp}`, `import("${virtualPrefix}${id}`);
186
287
  }
187
288
  }
188
289
  if (didReplaceSources) {
@@ -33,6 +33,7 @@ let podModulePrefix;
33
33
  if (import.meta.hot) {
34
34
  const ModuleMap = new Map();
35
35
  window.emberHotReloadPlugin = {
36
+ Resolver: null,
36
37
  _accepting: 0,
37
38
  changed: {},
38
39
  subscribers: [],
@@ -49,14 +50,11 @@ if (import.meta.hot) {
49
50
  this.moduleDepCallbacks[module.id][dep].push(callback);
50
51
  },
51
52
  loadNew(oldModule, newModule) {
53
+ ModuleMap.set(newModule.id, newModule);
52
54
  this.versionMap[newModule.id] = newModule.version;
53
- const entry = Object.values(requirejs.entries).find(module => module.module.exports.default === oldModule.exports.default);
55
+ const entry = Object.entries(this.Resolver.explicitModules).find(([name, module]) => module.default === oldModule.exports.default);
54
56
  if (!entry) return;
55
- entry.module = {
56
- id: newModule.id,
57
- exports: newModule.exports,
58
- version: newModule.version
59
- };
57
+ this.Resolver.explicitModules[entry[0]] = newModule.exports;
60
58
  },
61
59
  __import(moduleUrl) {
62
60
  return import(/* @vite-ignore */moduleUrl);
@@ -85,9 +83,10 @@ if (import.meta.hot) {
85
83
  old: ModuleMap.get(module.id),
86
84
  new: module
87
85
  };
86
+ } else {
87
+ ModuleMap.set(module.id, module);
88
88
  }
89
89
  module.version = this.version;
90
- ModuleMap.set(module.id, module);
91
90
  return true;
92
91
  },
93
92
  notifyNew() {
@@ -118,6 +117,7 @@ let ViteHotReloadService = (_dec = service(), _class = class ViteHotReloadServic
118
117
  super.init(args);
119
118
  if (!window.emberHotReloadPlugin) return;
120
119
  const app = getOwner(this).application;
120
+ window.emberHotReloadPlugin.Resolver = app.Resolver;
121
121
  modulePrefix = app.modulePrefix;
122
122
  podModulePrefix = app.podModulePrefix;
123
123
  this.router._router;
@@ -1 +1 @@
1
- {"version":3,"file":"vite-hot-reload.js","sources":["../../src/services/vite-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';\nimport ApplicationInstance from '@ember/application/instance';\n\nconst ChangeMap = new WeakMap();\n\nfunction getLatestChange(obj: any) {\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 routerVersion: 1,\n moduleDepCallbacks: {},\n versionMap: {},\n\n clear(module: Module) {\n this.moduleDepCallbacks[module.id] = {};\n },\n register(module: Module, dep: string, callback: Function) {\n dep = dep.replace(new RegExp(`^${modulePrefix}/`), './');\n this.moduleDepCallbacks[module.id]![dep] =\n this.moduleDepCallbacks[module.id]![dep] || ([] as Function[]);\n this.moduleDepCallbacks[module.id]![dep]!.push(callback);\n },\n loadNew(oldModule: Module, newModule: Module) {\n this.versionMap[newModule.id] = newModule.version;\n const entry = Object.values(\n requirejs.entries as Record<string, ReqJSEntry>,\n ).find(\n (module) => module.module.exports.default === oldModule.exports.default,\n );\n if (!entry) return;\n entry.module = {\n id: newModule.id,\n exports: newModule.exports,\n version: newModule.version,\n };\n },\n\n __import(moduleUrl: string) {\n return import(/* @vite-ignore */ moduleUrl);\n },\n\n async canAcceptNew(moduleUrl: string) {\n this._accepting += 1;\n const m = await this.__import(moduleUrl);\n const module: Module = {\n exports: m,\n id: moduleUrl.split('?')[0]!.replace(/http:\\/\\/.*:[^\\/]*\\//, ''),\n version: 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.includes('/templates/') ||\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 (module.id.includes('templates') && module.id.includes('components')) {\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: any) => 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 ViteHotReloadService extends Service {\n declare container: any;\n @service() router!: RouterService;\n\n init(args: any) {\n super.init(args);\n if (!window.emberHotReloadPlugin) return;\n const app = (getOwner(this) as ApplicationInstance)!.application as any;\n modulePrefix = app.modulePrefix;\n podModulePrefix = app.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: string) {\n const route = getRoute.call(\n this,\n `${name}--hot-version--${window.emberHotReloadPlugin.routerVersion}`,\n );\n route.fullRouteName = `route:${name}`.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) as any)?.__container__;\n window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {\n let changed = false;\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n changed = true;\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n changed = true;\n }\n if (\n oldModule.id.startsWith('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n changed = true;\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n changed = true;\n }\n if (!changed) return;\n window.emberHotReloadPlugin.routerVersion += 1;\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('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n this.router.refresh();\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n this.router.refresh();\n }\n });\n }\n getLatestChange(obj: any) {\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': ViteHotReloadService;\n }\n}\n"],"names":["ChangeMap","WeakMap","getLatestChange","obj","has","get","modulePrefix","podModulePrefix","import","meta","hot","ModuleMap","Map","window","emberHotReloadPlugin","_accepting","changed","subscribers","version","routerVersion","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","ViteHotReloadService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","init","app","getOwner","application","router","_router","defineProperty","v","getRoute","name","route","call","fullRouteName","___routerMicrolib","container","__container__","prototype","Router","Controller","startsWith","types","keys","cache","k","some","t","factoryManagerCache","registry","_resolveCache","validationCache","registrations","refresh","_applyDecoratedDescriptor","configurable","enumerable","writable","initializer"],"mappings":"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"}
1
+ {"version":3,"file":"vite-hot-reload.js","sources":["../../src/services/vite-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';\nimport ApplicationInstance from '@ember/application/instance';\n\nconst ChangeMap = new WeakMap();\n\nfunction getLatestChange(obj: any) {\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 Resolver: null,\n _accepting: 0,\n changed: {},\n subscribers: [],\n version: 1,\n routerVersion: 1,\n moduleDepCallbacks: {},\n versionMap: {},\n\n clear(module: Module) {\n this.moduleDepCallbacks[module.id] = {};\n },\n register(module: Module, dep: string, callback: Function) {\n dep = dep.replace(new RegExp(`^${modulePrefix}/`), './');\n this.moduleDepCallbacks[module.id]![dep] =\n this.moduleDepCallbacks[module.id]![dep] || ([] as Function[]);\n this.moduleDepCallbacks[module.id]![dep]!.push(callback);\n },\n loadNew(oldModule: Module, newModule: Module) {\n ModuleMap.set(newModule.id, newModule);\n this.versionMap[newModule.id] = newModule.version;\n const entry = Object.entries(\n this.Resolver.explicitModules as Record<string, any>,\n ).find(\n ([name, module]) => module.default === oldModule.exports.default,\n );\n if (!entry) return;\n this.Resolver.explicitModules[entry[0]] = newModule.exports;\n },\n\n __import(moduleUrl: string) {\n return import(/* @vite-ignore */ moduleUrl);\n },\n\n async canAcceptNew(moduleUrl: string) {\n this._accepting += 1;\n const m = await this.__import(moduleUrl);\n const module: Module = {\n exports: m,\n id: moduleUrl.split('?')[0]!.replace(/http:\\/\\/.*:[^\\/]*\\//, ''),\n version: 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.includes('/templates/') ||\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 (module.id.includes('templates') && module.id.includes('components')) {\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 } else {\n ModuleMap.set(module.id, module);\n }\n module.version = this.version;\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: any) => 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 ViteHotReloadService extends Service {\n declare container: any;\n @service() router!: RouterService;\n\n init(args: any) {\n super.init(args);\n if (!window.emberHotReloadPlugin) return;\n const app = (getOwner(this) as ApplicationInstance)!.application as any;\n window.emberHotReloadPlugin.Resolver = app.Resolver;\n modulePrefix = app.modulePrefix;\n podModulePrefix = app.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: string) {\n const route = getRoute.call(\n this,\n `${name}--hot-version--${window.emberHotReloadPlugin.routerVersion}`,\n );\n route.fullRouteName = `route:${name}`.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) as any)?.__container__;\n window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {\n let changed = false;\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n changed = true;\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n changed = true;\n }\n if (\n oldModule.id.startsWith('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n changed = true;\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n changed = true;\n }\n if (!changed) return;\n window.emberHotReloadPlugin.routerVersion += 1;\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('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n this.router.refresh();\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n this.router.refresh();\n }\n });\n }\n getLatestChange(obj: any) {\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': ViteHotReloadService;\n }\n}\n"],"names":["ChangeMap","WeakMap","getLatestChange","obj","has","get","modulePrefix","podModulePrefix","import","meta","hot","ModuleMap","Map","window","emberHotReloadPlugin","Resolver","_accepting","changed","subscribers","version","routerVersion","moduleDepCallbacks","versionMap","clear","module","id","register","dep","callback","replace","RegExp","push","loadNew","oldModule","newModule","set","entry","Object","entries","explicitModules","find","name","default","exports","__import","moduleUrl","canAcceptNew","m","split","setTimeout","notifyNew","ok","includes","match","old","new","values","forEach","change","fn","subscribe","unsubscribe","idx","indexOf","splice","ViteHotReloadService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","init","app","getOwner","application","router","_router","defineProperty","v","getRoute","route","call","fullRouteName","___routerMicrolib","container","__container__","prototype","Router","Controller","startsWith","types","keys","cache","k","some","t","factoryManagerCache","registry","_resolveCache","validationCache","registrations","refresh","_applyDecoratedDescriptor","configurable","enumerable","writable","initializer"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-vite-hmr",
3
- "version": "1.5.5",
3
+ "version": "1.7.0",
4
4
  "keywords": [
5
5
  "ember-addon"
6
6
  ],