@ngxs/hmr-plugin 3.8.2 → 18.0.0-dev.master-f4c2c19
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/{esm2015/src/actions/hmr-before-destroy.action.js → esm2022/src/actions/hmr-before-destroy.action.mjs} +4 -4
- package/{esm2015/src/actions/hmr-init.action.js → esm2022/src/actions/hmr-init.action.mjs} +4 -4
- package/esm2022/src/hmr-bootstrap.mjs +28 -0
- package/esm2022/src/hmr-manager.mjs +73 -0
- package/esm2022/src/internal/hmr-lifecycle.mjs +66 -0
- package/{esm2015/src/internal/hmr-options-builder.js → esm2022/src/internal/hmr-options-builder.mjs} +1 -1
- package/esm2022/src/internal/hmr-state-context-factory.mjs +36 -0
- package/{esm2015/src/utils/externals.js → esm2022/src/utils/externals.mjs} +2 -2
- package/esm2022/src/utils/internals.mjs +11 -0
- package/{fesm2015/ngxs-hmr-plugin.js → fesm2022/ngxs-hmr-plugin.mjs} +44 -50
- package/fesm2022/ngxs-hmr-plugin.mjs.map +1 -0
- package/package.json +17 -11
- package/src/hmr-manager.d.ts +1 -1
- package/src/internal/hmr-lifecycle.d.ts +3 -3
- package/src/symbols.d.ts +4 -4
- package/bundles/ngxs-hmr-plugin.umd.js +0 -790
- package/bundles/ngxs-hmr-plugin.umd.js.map +0 -1
- package/esm2015/src/hmr-bootstrap.js +0 -31
- package/esm2015/src/hmr-manager.js +0 -76
- package/esm2015/src/internal/hmr-lifecycle.js +0 -67
- package/esm2015/src/internal/hmr-state-context-factory.js +0 -36
- package/esm2015/src/utils/internals.js +0 -11
- package/fesm2015/ngxs-hmr-plugin.js.map +0 -1
- package/ngxs-hmr-plugin.d.ts +0 -5
- /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
- /package/{esm2015/ngxs-hmr-plugin.js → esm2022/ngxs-hmr-plugin.mjs} +0 -0
- /package/{esm2015/src/internal/hmr-storage.js → esm2022/src/internal/hmr-storage.mjs} +0 -0
- /package/{esm2015/src/public_api.js → esm2022/src/public_api.mjs} +0 -0
- /package/{esm2015/src/symbols.js → esm2022/src/symbols.mjs} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export class HmrBeforeDestroyAction {
|
|
2
|
-
constructor(payload) {
|
|
3
|
-
this.payload = payload;
|
|
4
|
-
}
|
|
5
2
|
static get type() {
|
|
6
3
|
// NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
|
|
7
4
|
return '@@HMR_BEFORE_DESTROY';
|
|
8
5
|
}
|
|
6
|
+
constructor(payload) {
|
|
7
|
+
this.payload = payload;
|
|
8
|
+
}
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWJlZm9yZS1kZXN0cm95LmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2FjdGlvbnMvaG1yLWJlZm9yZS1kZXN0cm95LmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sS0FBSyxJQUFJO1FBQ2Isc0lBQXNJO1FBQ3RJLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQW1CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQUcsQ0FBQztDQUN6RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5neHNIbXJTbmFwc2hvdCB9IGZyb20gJy4uL3N5bWJvbHMnO1xuXG5leHBvcnQgY2xhc3MgSG1yQmVmb3JlRGVzdHJveUFjdGlvbiB7XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICAvLyBOT1RFOiBOb3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgdGhlIHR5cGUgaW4gdGhpcyB3YXkgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvcHVsbC82NDQjaXNzdWVjb21tZW50LTQzNjAwMzEzOFxuICAgIHJldHVybiAnQEBITVJfQkVGT1JFX0RFU1RST1knO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFBhcnRpYWw8Tmd4c0htclNuYXBzaG90Pikge31cbn1cbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export class HmrInitAction {
|
|
2
|
-
constructor(payload) {
|
|
3
|
-
this.payload = payload;
|
|
4
|
-
}
|
|
5
2
|
static get type() {
|
|
6
3
|
// NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
|
|
7
4
|
return '@@HMR_INIT';
|
|
8
5
|
}
|
|
6
|
+
constructor(payload) {
|
|
7
|
+
this.payload = payload;
|
|
8
|
+
}
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWluaXQuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaG1yLXBsdWdpbi9zcmMvYWN0aW9ucy9obXItaW5pdC5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGFBQWE7SUFDeEIsTUFBTSxLQUFLLElBQUk7UUFDYixzSUFBc0k7UUFDdEksT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQW1CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQUcsQ0FBQztDQUN6RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5neHNIbXJTbmFwc2hvdCB9IGZyb20gJy4uL3N5bWJvbHMnO1xuXG5leHBvcnQgY2xhc3MgSG1ySW5pdEFjdGlvbiB7XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICAvLyBOT1RFOiBOb3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgdGhlIHR5cGUgaW4gdGhpcyB3YXkgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvcHVsbC82NDQjaXNzdWVjb21tZW50LTQzNjAwMzEzOFxuICAgIHJldHVybiAnQEBITVJfSU5JVCc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogUGFydGlhbDxOZ3hzSG1yU25hcHNob3Q+KSB7fVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { HmrManager } from './hmr-manager';
|
|
2
|
+
import { HmrStorage } from './internal/hmr-storage';
|
|
3
|
+
import { markApplicationAsHmrReloaded, setHmrReloadedTo } from './utils/internals';
|
|
4
|
+
/**
|
|
5
|
+
* Hot Module Replacement plugin for NGXS
|
|
6
|
+
* @deprecated As of Angular v10, HMR is no longer supported and will be deprecated.
|
|
7
|
+
* More information [here](https://www.ngxs.io/plugins/hmr).
|
|
8
|
+
*/
|
|
9
|
+
export async function hmr(webpackModule, bootstrapFn, options = {}) {
|
|
10
|
+
if (!webpackModule.hot) {
|
|
11
|
+
console.error('Are you using the --hmr flag for ng serve?');
|
|
12
|
+
throw new Error('HMR is not enabled for webpack-dev-server!');
|
|
13
|
+
}
|
|
14
|
+
markApplicationAsHmrReloaded();
|
|
15
|
+
webpackModule.hot.accept();
|
|
16
|
+
const dataTransfer = webpackModule.hot.data || {};
|
|
17
|
+
const storage = new HmrStorage(dataTransfer.snapshot || {});
|
|
18
|
+
const manager = new HmrManager(options, storage);
|
|
19
|
+
return await manager.hmrModule(bootstrapFn, () => {
|
|
20
|
+
manager.beforeModuleBootstrap();
|
|
21
|
+
webpackModule.hot.dispose((data) => {
|
|
22
|
+
setHmrReloadedTo(true);
|
|
23
|
+
data.snapshot = manager.beforeModuleOnDestroy();
|
|
24
|
+
manager.createNewModule();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2htci1ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsR0FBRyxDQUN2QixhQUE0QixFQUM1QixXQUFpQyxFQUNqQyxVQUEwQixFQUFFO0lBRTVCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsNEJBQTRCLEVBQUUsQ0FBQztJQUUvQixhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBSzNCLE1BQU0sWUFBWSxHQUFvQixhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFFbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQU0sWUFBWSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBTSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFdEQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVoQyxhQUFhLENBQUMsR0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRTtZQUNuRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIbXJNYW5hZ2VyIH0gZnJvbSAnLi9obXItbWFuYWdlcic7XG5pbXBvcnQgeyBCb290c3RyYXBNb2R1bGVGbiwgTmd4c0htck9wdGlvbnMsIFdlYnBhY2tNb2R1bGUgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgSG1yU3RvcmFnZSB9IGZyb20gJy4vaW50ZXJuYWwvaG1yLXN0b3JhZ2UnO1xuaW1wb3J0IHsgbWFya0FwcGxpY2F0aW9uQXNIbXJSZWxvYWRlZCwgc2V0SG1yUmVsb2FkZWRUbyB9IGZyb20gJy4vdXRpbHMvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBIb3QgTW9kdWxlIFJlcGxhY2VtZW50IHBsdWdpbiBmb3IgTkdYU1xuICogQGRlcHJlY2F0ZWQgQXMgb2YgQW5ndWxhciB2MTAsIEhNUiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIGRlcHJlY2F0ZWQuXG4gKiBNb3JlIGluZm9ybWF0aW9uIFtoZXJlXShodHRwczovL3d3dy5uZ3hzLmlvL3BsdWdpbnMvaG1yKS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhtcjxUPihcbiAgd2VicGFja01vZHVsZTogV2VicGFja01vZHVsZSxcbiAgYm9vdHN0cmFwRm46IEJvb3RzdHJhcE1vZHVsZUZuPFQ+LFxuICBvcHRpb25zOiBOZ3hzSG1yT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPE5nTW9kdWxlUmVmPFQ+PiB7XG4gIGlmICghd2VicGFja01vZHVsZS5ob3QpIHtcbiAgICBjb25zb2xlLmVycm9yKCdBcmUgeW91IHVzaW5nIHRoZSAtLWhtciBmbGFnIGZvciBuZyBzZXJ2ZT8nKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0hNUiBpcyBub3QgZW5hYmxlZCBmb3Igd2VicGFjay1kZXYtc2VydmVyIScpO1xuICB9XG5cbiAgbWFya0FwcGxpY2F0aW9uQXNIbXJSZWxvYWRlZCgpO1xuXG4gIHdlYnBhY2tNb2R1bGUuaG90LmFjY2VwdCgpO1xuXG4gIGludGVyZmFjZSBIbXJEYXRhVHJhbnNmZXIge1xuICAgIHNuYXBzaG90PzogYW55O1xuICB9XG4gIGNvbnN0IGRhdGFUcmFuc2ZlcjogSG1yRGF0YVRyYW5zZmVyID0gd2VicGFja01vZHVsZS5ob3QuZGF0YSB8fCB7fTtcblxuICBjb25zdCBzdG9yYWdlID0gbmV3IEhtclN0b3JhZ2U8YW55PihkYXRhVHJhbnNmZXIuc25hcHNob3QgfHwge30pO1xuICBjb25zdCBtYW5hZ2VyID0gbmV3IEhtck1hbmFnZXI8YW55PihvcHRpb25zLCBzdG9yYWdlKTtcblxuICByZXR1cm4gYXdhaXQgbWFuYWdlci5obXJNb2R1bGUoYm9vdHN0cmFwRm4sICgpID0+IHtcbiAgICBtYW5hZ2VyLmJlZm9yZU1vZHVsZUJvb3RzdHJhcCgpO1xuXG4gICAgd2VicGFja01vZHVsZS5ob3QhLmRpc3Bvc2UoKGRhdGE6IEhtckRhdGFUcmFuc2ZlcikgPT4ge1xuICAgICAgc2V0SG1yUmVsb2FkZWRUbyh0cnVlKTtcbiAgICAgIGRhdGEuc25hcHNob3QgPSBtYW5hZ2VyLmJlZm9yZU1vZHVsZU9uRGVzdHJveSgpO1xuICAgICAgbWFuYWdlci5jcmVhdGVOZXdNb2R1bGUoKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ApplicationRef } from '@angular/core';
|
|
2
|
+
import { ɵInitialState, ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';
|
|
3
|
+
import { HmrStateContextFactory } from './internal/hmr-state-context-factory';
|
|
4
|
+
import { HmrOptionBuilder } from './internal/hmr-options-builder';
|
|
5
|
+
import { HmrInitAction } from './actions/hmr-init.action';
|
|
6
|
+
import { HmrLifecycle } from './internal/hmr-lifecycle';
|
|
7
|
+
export class HmrManager {
|
|
8
|
+
constructor(options, storage) {
|
|
9
|
+
this.storage = storage;
|
|
10
|
+
this.optionsBuilder = new HmrOptionBuilder(options);
|
|
11
|
+
}
|
|
12
|
+
get applicationRef() {
|
|
13
|
+
return this.ngModule.injector.get(ApplicationRef);
|
|
14
|
+
}
|
|
15
|
+
get appBootstrappedState() {
|
|
16
|
+
return this.ngModule.injector.get(ɵNgxsAppBootstrappedState);
|
|
17
|
+
}
|
|
18
|
+
async hmrModule(bootstrapFn, tick) {
|
|
19
|
+
ɵInitialState.set(this.storage.snapshot);
|
|
20
|
+
this.ngModule = await bootstrapFn();
|
|
21
|
+
this.context = new HmrStateContextFactory(this.ngModule);
|
|
22
|
+
this.lifecycle = this.createLifecycle();
|
|
23
|
+
tick();
|
|
24
|
+
ɵInitialState.pop();
|
|
25
|
+
return this.ngModule;
|
|
26
|
+
}
|
|
27
|
+
beforeModuleBootstrap() {
|
|
28
|
+
this.lifecycle.hmrNgxsStoreOnInit((ctx, state) => {
|
|
29
|
+
ctx.dispatch(new HmrInitAction(state));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
beforeModuleOnDestroy() {
|
|
33
|
+
this.optionsBuilder.clearLogs();
|
|
34
|
+
return this.lifecycle.hmrNgxsStoreBeforeOnDestroy();
|
|
35
|
+
}
|
|
36
|
+
createNewModule() {
|
|
37
|
+
const removeOldHosts = this.cloneHostsBeforeDestroy();
|
|
38
|
+
this.removeNgStyles();
|
|
39
|
+
this.ngModule.destroy();
|
|
40
|
+
removeOldHosts();
|
|
41
|
+
}
|
|
42
|
+
createLifecycle() {
|
|
43
|
+
return new HmrLifecycle(this.ngModule.instance, this.appBootstrappedState, this.storage, this.context, this.optionsBuilder);
|
|
44
|
+
}
|
|
45
|
+
cloneHostsBeforeDestroy() {
|
|
46
|
+
const elements = this.applicationRef.components.map((component) => component.location.nativeElement);
|
|
47
|
+
const removableList = elements.map((componentNode) => {
|
|
48
|
+
const newNode = document.createElement(componentNode.tagName);
|
|
49
|
+
const parentNode = componentNode.parentNode;
|
|
50
|
+
const currentDisplay = newNode.style.display;
|
|
51
|
+
newNode.style.display = 'none';
|
|
52
|
+
parentNode.insertBefore(newNode, componentNode);
|
|
53
|
+
return () => {
|
|
54
|
+
newNode.style.display = currentDisplay;
|
|
55
|
+
try {
|
|
56
|
+
parentNode.removeChild(componentNode);
|
|
57
|
+
}
|
|
58
|
+
catch { }
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
return function removeOldHosts() {
|
|
62
|
+
removableList.forEach((removeOldHost) => removeOldHost());
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
removeNgStyles() {
|
|
66
|
+
const head = document.head;
|
|
67
|
+
const styles = Array.from(head.querySelectorAll('style'));
|
|
68
|
+
styles
|
|
69
|
+
.filter((style) => style.innerText.includes('_ng'))
|
|
70
|
+
.map((style) => head.removeChild(style));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9obXItcGx1Z2luL3NyYy9obXItbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl4RCxNQUFNLE9BQU8sVUFBVTtJQU9yQixZQUFZLE9BQXVCLEVBQUUsT0FBc0I7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFZLGNBQWM7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVksb0JBQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQ3BCLFdBQWlDLEVBQ2pDLElBQWdCO1FBRWhCLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sV0FBVyxFQUFF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LFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEUsR0FBRyxDQUFDLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsSUFBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYsIE5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyDJtUluaXRpYWxTdGF0ZSwgybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBIbXJTdG9yYWdlIH0gZnJvbSAnLi9pbnRlcm5hbC9obXItc3RvcmFnZSc7XG5pbXBvcnQge1xuICBCb290c3RyYXBNb2R1bGVGbixcbiAgTmd4c0htckxpZmVDeWNsZSxcbiAgTmd4c0htck9wdGlvbnMsXG4gIE5neHNIbXJTbmFwc2hvdFxufSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgSG1yU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vaW50ZXJuYWwvaG1yLXN0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBIbXJPcHRpb25CdWlsZGVyIH0gZnJvbSAnLi9pbnRlcm5hbC9obXItb3B0aW9ucy1idWlsZGVyJztcbmltcG9ydCB7IEhtckluaXRBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvaG1yLWluaXQuYWN0aW9uJztcbmltcG9ydCB7IEhtckxpZmVjeWNsZSB9IGZyb20gJy4vaW50ZXJuYWwvaG1yLWxpZmVjeWNsZSc7XG5cbnR5cGUgT2xkSG9zdFJlbW92ZXJGbiA9ICgpID0+IHZvaWQ7XG5cbmV4cG9ydCBjbGFzcyBIbXJNYW5hZ2VyPFQgZXh0ZW5kcyBQYXJ0aWFsPE5neHNIbXJMaWZlQ3ljbGU8Uz4+LCBTID0gTmd4c0htclNuYXBzaG90PiB7XG4gIHB1YmxpYyBzdG9yYWdlOiBIbXJTdG9yYWdlPFM+O1xuICBwdWJsaWMgY29udGV4dDogSG1yU3RhdGVDb250ZXh0RmFjdG9yeTxULCBTPjtcbiAgcHVibGljIGxpZmVjeWNsZTogSG1yTGlmZWN5Y2xlPFQsIFM+O1xuICBwdWJsaWMgb3B0aW9uc0J1aWxkZXI6IEhtck9wdGlvbkJ1aWxkZXI7XG4gIHByaXZhdGUgbmdNb2R1bGU6IE5nTW9kdWxlUmVmPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE5neHNIbXJPcHRpb25zLCBzdG9yYWdlOiBIbXJTdG9yYWdlPFM+KSB7XG4gICAgdGhpcy5zdG9yYWdlID0gc3RvcmFnZTtcbiAgICB0aGlzLm9wdGlvbnNCdWlsZGVyID0gbmV3IEhtck9wdGlvbkJ1aWxkZXIob3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBhcHBsaWNhdGlvblJlZigpOiBBcHBsaWNhdGlvblJlZiB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2R1bGUuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFwcEJvb3RzdHJhcHBlZFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLm5nTW9kdWxlLmluamVjdG9yLmdldCjJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaG1yTW9kdWxlKFxuICAgIGJvb3RzdHJhcEZuOiBCb290c3RyYXBNb2R1bGVGbjxUPixcbiAgICB0aWNrOiAoKSA9PiB2b2lkXG4gICk6IFByb21pc2U8TmdNb2R1bGVSZWY8VD4+IHtcbiAgICDJtUluaXRpYWxTdGF0ZS5zZXQodGhpcy5zdG9yYWdlLnNuYXBzaG90KTtcbiAgICB0aGlzLm5nTW9kdWxlID0gYXdhaXQgYm9vdHN0cmFwRm4oKTtcbiAgICB0aGlzLmNvbnRleHQgPSBuZXcgSG1yU3RhdGVDb250ZXh0RmFjdG9yeSh0aGlzLm5nTW9kdWxlKTtcbiAgICB0aGlzLmxpZmVjeWNsZSA9IHRoaXMuY3JlYXRlTGlmZWN5Y2xlKCk7XG5cbiAgICB0aWNrKCk7XG5cbiAgICDJtUluaXRpYWxTdGF0ZS5wb3AoKTtcbiAgICByZXR1cm4gdGhpcy5uZ01vZHVsZTtcbiAgfVxuXG4gIHB1YmxpYyBiZWZvcmVNb2R1bGVCb290c3RyYXAoKTogdm9pZCB7XG4gICAgdGhpcy5saWZlY3ljbGUuaG1yTmd4c1N0b3JlT25Jbml0KChjdHgsIHN0YXRlKSA9PiB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEhtckluaXRBY3Rpb24oc3RhdGUpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBiZWZvcmVNb2R1bGVPbkRlc3Ryb3koKTogUGFydGlhbDxTPiB7XG4gICAgdGhpcy5vcHRpb25zQnVpbGRlci5jbGVhckxvZ3MoKTtcbiAgICByZXR1cm4gdGhpcy5saWZlY3ljbGUuaG1yTmd4c1N0b3JlQmVmb3JlT25EZXN0cm95KCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlTmV3TW9kdWxlKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlbW92ZU9sZEhvc3RzOiAoKSA9PiB2b2lkID0gdGhpcy5jbG9uZUhvc3RzQmVmb3JlRGVzdHJveSgpO1xuICAgIHRoaXMucmVtb3ZlTmdTdHlsZXMoKTtcbiAgICB0aGlzLm5nTW9kdWxlLmRlc3Ryb3koKTtcbiAgICByZW1vdmVPbGRIb3N0cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaWZlY3ljbGUoKTogSG1yTGlmZWN5Y2xlPFQsIFM+IHtcbiAgICByZXR1cm4gbmV3IEhtckxpZmVjeWNsZShcbiAgICAgIHRoaXMubmdNb2R1bGUuaW5zdGFuY2UsXG4gICAgICB0aGlzLmFwcEJvb3RzdHJhcHBlZFN0YXRlLFxuICAgICAgdGhpcy5zdG9yYWdlLFxuICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgdGhpcy5vcHRpb25zQnVpbGRlclxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNsb25lSG9zdHNCZWZvcmVEZXN0cm95KCk6ICgpID0+IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzOiBFbGVtZW50W10gPSB0aGlzLmFwcGxpY2F0aW9uUmVmLmNvbXBvbmVudHMubWFwKFxuICAgICAgKGNvbXBvbmVudDogQ29tcG9uZW50UmVmPEVsZW1lbnQ+KSA9PiBjb21wb25lbnQubG9jYXRpb24ubmF0aXZlRWxlbWVudFxuICAgICk7XG5cbiAgICBjb25zdCByZW1vdmFibGVMaXN0OiBPbGRIb3N0UmVtb3ZlckZuW10gPSBlbGVtZW50cy5tYXAoKGNvbXBvbmVudE5vZGU6IEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IG5ld05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGNvbXBvbmVudE5vZGUudGFnTmFtZSk7XG4gICAgICBjb25zdCBwYXJlbnROb2RlOiBOb2RlID0gY29tcG9uZW50Tm9kZS5wYXJlbnROb2RlIGFzIE5vZGU7XG4gICAgICBjb25zdCBjdXJyZW50RGlzcGxheTogc3RyaW5nIHwgbnVsbCA9IG5ld05vZGUuc3R5bGUuZGlzcGxheTtcblxuICAgICAgbmV3Tm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgY29tcG9uZW50Tm9kZSk7XG5cbiAgICAgIHJldHVybiAoKTogdm9pZCA9PiB7XG4gICAgICAgIG5ld05vZGUuc3R5bGUuZGlzcGxheSA9IGN1cnJlbnREaXNwbGF5O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29tcG9uZW50Tm9kZSk7XG4gICAgICAgIH0gY2F0Y2gge31cbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gcmVtb3ZlT2xkSG9zdHMoKTogdm9pZCB7XG4gICAgICByZW1vdmFibGVMaXN0LmZvckVhY2goKHJlbW92ZU9sZEhvc3Q6IE9sZEhvc3RSZW1vdmVyRm4pID0+IHJlbW92ZU9sZEhvc3QoKSk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTmdTdHlsZXMoKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZDogSFRNTEhlYWRFbGVtZW50ID0gZG9jdW1lbnQuaGVhZCE7XG4gICAgY29uc3Qgc3R5bGVzOiBIVE1MU3R5bGVFbGVtZW50W10gPSBBcnJheS5mcm9tKGhlYWQhLnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykpO1xuXG4gICAgc3R5bGVzXG4gICAgICAuZmlsdGVyKChzdHlsZTogSFRNTFN0eWxlRWxlbWVudCkgPT4gc3R5bGUuaW5uZXJUZXh0LmluY2x1ZGVzKCdfbmcnKSlcbiAgICAgIC5tYXAoKHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50KSA9PiBoZWFkIS5yZW1vdmVDaGlsZChzdHlsZSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { HmrBeforeDestroyAction } from '../actions/hmr-before-destroy.action';
|
|
2
|
+
export class HmrLifecycle {
|
|
3
|
+
constructor(ngAppModule, appBootstrappedState, storage, context, options) {
|
|
4
|
+
this.ngAppModule = ngAppModule;
|
|
5
|
+
this.appBootstrappedState = appBootstrappedState;
|
|
6
|
+
this.storage = storage;
|
|
7
|
+
this.context = context;
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
hmrNgxsStoreOnInit(hmrAfterOnInit) {
|
|
11
|
+
let moduleHmrInit = this.getModuleHmrInitCallback();
|
|
12
|
+
moduleHmrInit = moduleHmrInit.bind(this.ngAppModule);
|
|
13
|
+
this.detectIvyWithJIT();
|
|
14
|
+
this.stateEventLoop((ctx, state) => {
|
|
15
|
+
moduleHmrInit(ctx, state);
|
|
16
|
+
hmrAfterOnInit(ctx, state);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
getModuleHmrInitCallback() {
|
|
20
|
+
if (typeof this.ngAppModule.hmrNgxsStoreOnInit === 'function') {
|
|
21
|
+
return this.ngAppModule.hmrNgxsStoreOnInit;
|
|
22
|
+
}
|
|
23
|
+
return function defaultModuleHmrInit(ctx, state) {
|
|
24
|
+
ctx.patchState(state);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
hmrNgxsStoreBeforeOnDestroy() {
|
|
28
|
+
let state = {};
|
|
29
|
+
const ctx = this.context.createStateContext();
|
|
30
|
+
if (typeof this.ngAppModule.hmrNgxsStoreBeforeOnDestroy === 'function') {
|
|
31
|
+
state = this.ngAppModule.hmrNgxsStoreBeforeOnDestroy(ctx);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
state = ctx.getState();
|
|
35
|
+
}
|
|
36
|
+
ctx.dispatch(new HmrBeforeDestroyAction(state));
|
|
37
|
+
return state;
|
|
38
|
+
}
|
|
39
|
+
stateEventLoop(callback) {
|
|
40
|
+
if (!this.storage.hasData())
|
|
41
|
+
return;
|
|
42
|
+
const state$ = this.context.store.select(state => state);
|
|
43
|
+
this.appBootstrappedState.subscribe(() => {
|
|
44
|
+
let eventId;
|
|
45
|
+
const storeEventId = state$.subscribe(() => {
|
|
46
|
+
// setTimeout used for zone detection after set hmr state
|
|
47
|
+
clearInterval(eventId);
|
|
48
|
+
eventId = window.setTimeout(() => {
|
|
49
|
+
// close check on the message queue
|
|
50
|
+
storeEventId.unsubscribe();
|
|
51
|
+
// if events are no longer running on the call stack,
|
|
52
|
+
// then we can update the state
|
|
53
|
+
callback(this.context.createStateContext(), this.storage.snapshot);
|
|
54
|
+
}, this.options.deferTime);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
detectIvyWithJIT() {
|
|
59
|
+
const jit = this.ngAppModule.constructor.hasOwnProperty('__annotations__');
|
|
60
|
+
const ivy = this.ngAppModule.constructor.hasOwnProperty('ɵmod');
|
|
61
|
+
if (jit && ivy) {
|
|
62
|
+
throw new Error(`@ngxs/hmr-plugin doesn't work with JIT mode in Angular Ivy. Please use AOT mode.`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWxpZmVjeWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2ludGVybmFsL2htci1saWZlY3ljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHOUUsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxXQUFjLEVBQ2Qsb0JBQStDLEVBQy9DLE9BQXNCLEVBQ3RCLE9BQXFDLEVBQ3JDLE9BQXlCO1FBSnpCLGdCQUFXLEdBQVgsV0FBVyxDQUFHO1FBQ2QseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQUMvQyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQ2hDLENBQUM7SUFFRyxrQkFBa0IsQ0FBQyxjQUE4QjtRQUN0RCxJQUFJLGFBQWEsR0FBbUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDcEUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sU0FBUyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsS0FBSztZQUM3QyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSwyQkFBMkI7UUFDaEMsSUFBSSxLQUFLLEdBQWUsRUFBRSxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFvQixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0QsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkUsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBd0I7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTztRQUVwQyxNQUFNLE1BQU0sR0FBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxPQUFlLENBQUM7WUFDcEIsTUFBTSxZQUFZLEdBQWlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN2RCx5REFBeUQ7Z0JBQ3pELGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUMvQixtQ0FBbUM7b0JBQ25DLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDM0IscURBQXFEO29CQUNyRCwrQkFBK0I7b0JBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFzQixDQUFDLENBQUM7Z0JBQ25GLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sR0FBRyxHQUFZLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sR0FBRyxHQUFZLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0ZBQWtGLENBQ25GLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IEhtck9wdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2htci1vcHRpb25zLWJ1aWxkZXInO1xuaW1wb3J0IHsgSG1yQ2FsbGJhY2ssIE5neHNIbXJMaWZlQ3ljbGUgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IEhtclN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL2htci1zdGF0ZS1jb250ZXh0LWZhY3RvcnknO1xuaW1wb3J0IHsgSG1yQmVmb3JlRGVzdHJveUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvaG1yLWJlZm9yZS1kZXN0cm95LmFjdGlvbic7XG5pbXBvcnQgeyBIbXJTdG9yYWdlIH0gZnJvbSAnLi9obXItc3RvcmFnZSc7XG5cbmV4cG9ydCBjbGFzcyBIbXJMaWZlY3ljbGU8VCBleHRlbmRzIFBhcnRpYWw8Tmd4c0htckxpZmVDeWNsZTxTPj4sIFM+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ0FwcE1vZHVsZTogVCxcbiAgICBwcml2YXRlIGFwcEJvb3RzdHJhcHBlZFN0YXRlOiDJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSxcbiAgICBwcml2YXRlIHN0b3JhZ2U6IEhtclN0b3JhZ2U8Uz4sXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBIbXJTdGF0ZUNvbnRleHRGYWN0b3J5PFQsIFM+LFxuICAgIHByaXZhdGUgb3B0aW9uczogSG1yT3B0aW9uQnVpbGRlclxuICApIHt9XG5cbiAgcHVibGljIGhtck5neHNTdG9yZU9uSW5pdChobXJBZnRlck9uSW5pdDogSG1yQ2FsbGJhY2s8Uz4pIHtcbiAgICBsZXQgbW9kdWxlSG1ySW5pdDogSG1yQ2FsbGJhY2s8Uz4gPSB0aGlzLmdldE1vZHVsZUhtckluaXRDYWxsYmFjaygpO1xuICAgIG1vZHVsZUhtckluaXQgPSBtb2R1bGVIbXJJbml0LmJpbmQodGhpcy5uZ0FwcE1vZHVsZSk7XG4gICAgdGhpcy5kZXRlY3RJdnlXaXRoSklUKCk7XG4gICAgdGhpcy5zdGF0ZUV2ZW50TG9vcCgoY3R4LCBzdGF0ZSkgPT4ge1xuICAgICAgbW9kdWxlSG1ySW5pdChjdHgsIHN0YXRlKTtcbiAgICAgIGhtckFmdGVyT25Jbml0KGN0eCwgc3RhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGVIbXJJbml0Q2FsbGJhY2soKTogSG1yQ2FsbGJhY2s8Uz4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5uZ0FwcE1vZHVsZS5obXJOZ3hzU3RvcmVPbkluaXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLm5nQXBwTW9kdWxlLmhtck5neHNTdG9yZU9uSW5pdDtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGRlZmF1bHRNb2R1bGVIbXJJbml0KGN0eCwgc3RhdGUpIHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHN0YXRlKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGhtck5neHNTdG9yZUJlZm9yZU9uRGVzdHJveSgpOiBQYXJ0aWFsPFM+IHtcbiAgICBsZXQgc3RhdGU6IFBhcnRpYWw8Uz4gPSB7fTtcbiAgICBjb25zdCBjdHg6IFN0YXRlQ29udGV4dDxTPiA9IHRoaXMuY29udGV4dC5jcmVhdGVTdGF0ZUNvbnRleHQoKTtcbiAgICBpZiAodHlwZW9mIHRoaXMubmdBcHBNb2R1bGUuaG1yTmd4c1N0b3JlQmVmb3JlT25EZXN0cm95ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBzdGF0ZSA9IHRoaXMubmdBcHBNb2R1bGUuaG1yTmd4c1N0b3JlQmVmb3JlT25EZXN0cm95KGN0eCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlID0gY3R4LmdldFN0YXRlKCk7XG4gICAgfVxuXG4gICAgY3R4LmRpc3BhdGNoKG5ldyBIbXJCZWZvcmVEZXN0cm95QWN0aW9uKHN0YXRlKSk7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZUV2ZW50TG9vcChjYWxsYmFjazogSG1yQ2FsbGJhY2s8Uz4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RvcmFnZS5oYXNEYXRhKCkpIHJldHVybjtcblxuICAgIGNvbnN0IHN0YXRlJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5jb250ZXh0LnN0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZSk7XG5cbiAgICB0aGlzLmFwcEJvb3RzdHJhcHBlZFN0YXRlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBsZXQgZXZlbnRJZDogbnVtYmVyO1xuICAgICAgY29uc3Qgc3RvcmVFdmVudElkOiBTdWJzY3JpcHRpb24gPSBzdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gc2V0VGltZW91dCB1c2VkIGZvciB6b25lIGRldGVjdGlvbiBhZnRlciBzZXQgaG1yIHN0YXRlXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoZXZlbnRJZCk7XG4gICAgICAgIGV2ZW50SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLy8gY2xvc2UgY2hlY2sgb24gdGhlIG1lc3NhZ2UgcXVldWVcbiAgICAgICAgICBzdG9yZUV2ZW50SWQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAvLyBpZiBldmVudHMgYXJlIG5vIGxvbmdlciBydW5uaW5nIG9uIHRoZSBjYWxsIHN0YWNrLFxuICAgICAgICAgIC8vIHRoZW4gd2UgY2FuIHVwZGF0ZSB0aGUgc3RhdGVcbiAgICAgICAgICBjYWxsYmFjayh0aGlzLmNvbnRleHQuY3JlYXRlU3RhdGVDb250ZXh0KCksIHRoaXMuc3RvcmFnZS5zbmFwc2hvdCBhcyBQYXJ0aWFsPFM+KTtcbiAgICAgICAgfSwgdGhpcy5vcHRpb25zLmRlZmVyVGltZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0SXZ5V2l0aEpJVCgpOiB2b2lkIHtcbiAgICBjb25zdCBqaXQ6IGJvb2xlYW4gPSB0aGlzLm5nQXBwTW9kdWxlLmNvbnN0cnVjdG9yLmhhc093blByb3BlcnR5KCdfX2Fubm90YXRpb25zX18nKTtcbiAgICBjb25zdCBpdnk6IGJvb2xlYW4gPSB0aGlzLm5nQXBwTW9kdWxlLmNvbnN0cnVjdG9yLmhhc093blByb3BlcnR5KCfJtW1vZCcpO1xuICAgIGlmIChqaXQgJiYgaXZ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBAbmd4cy9obXItcGx1Z2luIGRvZXNuJ3Qgd29yayB3aXRoIEpJVCBtb2RlIGluIEFuZ3VsYXIgSXZ5LiBQbGVhc2UgdXNlIEFPVCBtb2RlLmBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/{esm2015/src/internal/hmr-options-builder.js → esm2022/src/internal/hmr-options-builder.mjs}
RENAMED
|
@@ -9,4 +9,4 @@ export class HmrOptionBuilder {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLW9wdGlvbnMtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2ludGVybmFsL2htci1vcHRpb25zLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixZQUFZLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBa0I7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksR0FBRyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDMUUsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5neHNIbXJPcHRpb25zIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5cbmV4cG9ydCBjbGFzcyBIbXJPcHRpb25CdWlsZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IGRlZmVyVGltZTogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgYXV0b0NsZWFyTG9nczogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcih7IGRlZmVyVGltZSwgYXV0b0NsZWFyTG9ncyB9OiBOZ3hzSG1yT3B0aW9ucykge1xuICAgIHRoaXMuZGVmZXJUaW1lID0gZGVmZXJUaW1lIHx8IDEwMDtcbiAgICB0aGlzLmF1dG9DbGVhckxvZ3MgPSBhdXRvQ2xlYXJMb2dzID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXV0b0NsZWFyTG9ncztcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckxvZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b0NsZWFyTG9ncykge1xuICAgICAgY29uc29sZS5jbGVhcigpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Store } from '@ngxs/store';
|
|
2
|
+
import { isStateOperator } from '@ngxs/store/operators';
|
|
3
|
+
export class HmrStateContextFactory {
|
|
4
|
+
constructor(module) {
|
|
5
|
+
const store = module.injector.get(Store, undefined);
|
|
6
|
+
if (!store) {
|
|
7
|
+
throw new Error('Store not found, maybe you forgot to import the NgxsModule');
|
|
8
|
+
}
|
|
9
|
+
this.store = store;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @description
|
|
13
|
+
* must be taken out into @ngxs/store/internals
|
|
14
|
+
*/
|
|
15
|
+
createStateContext() {
|
|
16
|
+
return {
|
|
17
|
+
dispatch: actions => this.store.dispatch(actions),
|
|
18
|
+
getState: () => this.store.snapshot(),
|
|
19
|
+
setState: val => {
|
|
20
|
+
if (isStateOperator(val)) {
|
|
21
|
+
const currentState = this.store.snapshot();
|
|
22
|
+
val = val(currentState);
|
|
23
|
+
}
|
|
24
|
+
this.store.reset(val);
|
|
25
|
+
return val;
|
|
26
|
+
},
|
|
27
|
+
patchState: val => {
|
|
28
|
+
const currentState = this.store.snapshot();
|
|
29
|
+
const newState = { ...currentState, ...val };
|
|
30
|
+
this.store.reset(newState);
|
|
31
|
+
return newState;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLXN0YXRlLWNvbnRleHQtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2ludGVybmFsL2htci1zdGF0ZS1jb250ZXh0LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBWSxNQUFzQjtRQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBUSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU87WUFDTCxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDbEQsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFJLElBQUksQ0FBQyxLQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDZCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM1QyxHQUFHLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMxQixDQUFDO2dCQUVELElBQUksQ0FBQyxLQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixPQUFVLEdBQUcsQ0FBQztZQUNoQixDQUFDO1lBQ0QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM1QyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQVksR0FBSSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxLQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZS9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTmdNb2R1bGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEhtclN0YXRlQ29udGV4dEZhY3Rvcnk8VCwgUz4ge1xuICBwdWJsaWMgc3RvcmU6IFN0b3JlO1xuXG4gIGNvbnN0cnVjdG9yKG1vZHVsZTogTmdNb2R1bGVSZWY8VD4pIHtcbiAgICBjb25zdCBzdG9yZSA9IG1vZHVsZS5pbmplY3Rvci5nZXQ8U3RvcmU+KFN0b3JlLCB1bmRlZmluZWQpO1xuXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdG9yZSBub3QgZm91bmQsIG1heWJlIHlvdSBmb3Jnb3QgdG8gaW1wb3J0IHRoZSBOZ3hzTW9kdWxlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZSA9IHN0b3JlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBtdXN0IGJlIHRha2VuIG91dCBpbnRvICBAbmd4cy9zdG9yZS9pbnRlcm5hbHNcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVTdGF0ZUNvbnRleHQoKTogU3RhdGVDb250ZXh0PFM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGF0Y2g6IGFjdGlvbnMgPT4gdGhpcy5zdG9yZSEuZGlzcGF0Y2goYWN0aW9ucyksXG4gICAgICBnZXRTdGF0ZTogKCkgPT4gPFM+dGhpcy5zdG9yZSEuc25hcHNob3QoKSxcbiAgICAgIHNldFN0YXRlOiB2YWwgPT4ge1xuICAgICAgICBpZiAoaXNTdGF0ZU9wZXJhdG9yKHZhbCkpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnN0b3JlIS5zbmFwc2hvdCgpO1xuICAgICAgICAgIHZhbCA9IHZhbChjdXJyZW50U3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZSEucmVzZXQodmFsKTtcbiAgICAgICAgcmV0dXJuIDxTPnZhbDtcbiAgICAgIH0sXG4gICAgICBwYXRjaFN0YXRlOiB2YWwgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnN0b3JlIS5zbmFwc2hvdCgpO1xuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uY3VycmVudFN0YXRlLCAuLi4oPG9iamVjdD52YWwpIH07XG4gICAgICAgIHRoaXMuc3RvcmUhLnJlc2V0KG5ld1N0YXRlKTtcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export function hmrIsReloaded() {
|
|
2
|
-
return !!(window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */] && window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */].hmrReloaded);
|
|
2
|
+
return !!(window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */] && window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */].hmrReloaded);
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaG1yLXBsdWdpbi9zcmMvdXRpbHMvZXh0ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxxREFBbUIsSUFBSSxNQUFNLHFEQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIbXJSdW50aW1lIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5cbmV4cG9ydCBmdW5jdGlvbiBobXJJc1JlbG9hZGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEod2luZG93W0htclJ1bnRpbWUuU3RhdHVzXSAmJiB3aW5kb3dbSG1yUnVudGltZS5TdGF0dXNdLmhtclJlbG9hZGVkKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function setHmrReloadedTo(value) {
|
|
2
|
+
if (window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */]) {
|
|
3
|
+
window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */].hmrReloaded = value;
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
export function markApplicationAsHmrReloaded() {
|
|
7
|
+
window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */] = window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */] || {
|
|
8
|
+
hmrReloaded: false
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaG1yLXBsdWdpbi9zcmMvdXRpbHMvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLElBQUksTUFBTSxxREFBbUIsRUFBRSxDQUFDO1FBQzlCLE1BQU0scURBQW1CLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNoRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsTUFBTSxxREFBbUIsR0FBRyxNQUFNLHFEQUFtQixJQUFJO1FBQ3ZELFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG1yUnVudGltZSB9IGZyb20gJy4uL3N5bWJvbHMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0SG1yUmVsb2FkZWRUbyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICBpZiAod2luZG93W0htclJ1bnRpbWUuU3RhdHVzXSkge1xuICAgIHdpbmRvd1tIbXJSdW50aW1lLlN0YXR1c10uaG1yUmVsb2FkZWQgPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFya0FwcGxpY2F0aW9uQXNIbXJSZWxvYWRlZCgpOiB2b2lkIHtcbiAgd2luZG93W0htclJ1bnRpbWUuU3RhdHVzXSA9IHdpbmRvd1tIbXJSdW50aW1lLlN0YXR1c10gfHwge1xuICAgIGhtclJlbG9hZGVkOiBmYWxzZVxuICB9O1xufVxuIl19
|
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
1
|
import { ApplicationRef } from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { ɵNgxsAppBootstrappedState as _NgxsAppBootstrappedState, ɵInitialState as _InitialState } from '@ngxs/store/internals';
|
|
4
3
|
import { Store } from '@ngxs/store';
|
|
5
4
|
import { isStateOperator } from '@ngxs/store/operators';
|
|
6
5
|
|
|
7
6
|
class HmrInitAction {
|
|
8
|
-
constructor(payload) {
|
|
9
|
-
this.payload = payload;
|
|
10
|
-
}
|
|
11
7
|
static get type() {
|
|
12
8
|
// NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
|
|
13
9
|
return '@@HMR_INIT';
|
|
14
10
|
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
class HmrBeforeDestroyAction {
|
|
18
11
|
constructor(payload) {
|
|
19
12
|
this.payload = payload;
|
|
20
13
|
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
class HmrBeforeDestroyAction {
|
|
21
17
|
static get type() {
|
|
22
18
|
// NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
|
|
23
19
|
return '@@HMR_BEFORE_DESTROY';
|
|
24
20
|
}
|
|
21
|
+
constructor(payload) {
|
|
22
|
+
this.payload = payload;
|
|
23
|
+
}
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
class HmrStateContextFactory {
|
|
@@ -50,7 +49,7 @@ class HmrStateContextFactory {
|
|
|
50
49
|
},
|
|
51
50
|
patchState: val => {
|
|
52
51
|
const currentState = this.store.snapshot();
|
|
53
|
-
const newState =
|
|
52
|
+
const newState = { ...currentState, ...val };
|
|
54
53
|
this.store.reset(newState);
|
|
55
54
|
return newState;
|
|
56
55
|
}
|
|
@@ -71,9 +70,9 @@ class HmrOptionBuilder {
|
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
class HmrLifecycle {
|
|
74
|
-
constructor(ngAppModule,
|
|
73
|
+
constructor(ngAppModule, appBootstrappedState, storage, context, options) {
|
|
75
74
|
this.ngAppModule = ngAppModule;
|
|
76
|
-
this.
|
|
75
|
+
this.appBootstrappedState = appBootstrappedState;
|
|
77
76
|
this.storage = storage;
|
|
78
77
|
this.context = context;
|
|
79
78
|
this.options = options;
|
|
@@ -110,9 +109,8 @@ class HmrLifecycle {
|
|
|
110
109
|
stateEventLoop(callback) {
|
|
111
110
|
if (!this.storage.hasData())
|
|
112
111
|
return;
|
|
113
|
-
const appBootstrapped$ = this.bootstrap.appBootstrapped$;
|
|
114
112
|
const state$ = this.context.store.select(state => state);
|
|
115
|
-
|
|
113
|
+
this.appBootstrappedState.subscribe(() => {
|
|
116
114
|
let eventId;
|
|
117
115
|
const storeEventId = state$.subscribe(() => {
|
|
118
116
|
// setTimeout used for zone detection after set hmr state
|
|
@@ -144,19 +142,17 @@ class HmrManager {
|
|
|
144
142
|
get applicationRef() {
|
|
145
143
|
return this.ngModule.injector.get(ApplicationRef);
|
|
146
144
|
}
|
|
147
|
-
get
|
|
148
|
-
return this.ngModule.injector.get(
|
|
145
|
+
get appBootstrappedState() {
|
|
146
|
+
return this.ngModule.injector.get(_NgxsAppBootstrappedState);
|
|
149
147
|
}
|
|
150
|
-
hmrModule(bootstrapFn, tick) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return this.ngModule;
|
|
159
|
-
});
|
|
148
|
+
async hmrModule(bootstrapFn, tick) {
|
|
149
|
+
_InitialState.set(this.storage.snapshot);
|
|
150
|
+
this.ngModule = await bootstrapFn();
|
|
151
|
+
this.context = new HmrStateContextFactory(this.ngModule);
|
|
152
|
+
this.lifecycle = this.createLifecycle();
|
|
153
|
+
tick();
|
|
154
|
+
_InitialState.pop();
|
|
155
|
+
return this.ngModule;
|
|
160
156
|
}
|
|
161
157
|
beforeModuleBootstrap() {
|
|
162
158
|
this.lifecycle.hmrNgxsStoreOnInit((ctx, state) => {
|
|
@@ -174,7 +170,7 @@ class HmrManager {
|
|
|
174
170
|
removeOldHosts();
|
|
175
171
|
}
|
|
176
172
|
createLifecycle() {
|
|
177
|
-
return new HmrLifecycle(this.ngModule.instance, this.
|
|
173
|
+
return new HmrLifecycle(this.ngModule.instance, this.appBootstrappedState, this.storage, this.context, this.optionsBuilder);
|
|
178
174
|
}
|
|
179
175
|
cloneHostsBeforeDestroy() {
|
|
180
176
|
const elements = this.applicationRef.components.map((component) => component.location.nativeElement);
|
|
@@ -189,7 +185,7 @@ class HmrManager {
|
|
|
189
185
|
try {
|
|
190
186
|
parentNode.removeChild(componentNode);
|
|
191
187
|
}
|
|
192
|
-
catch
|
|
188
|
+
catch { }
|
|
193
189
|
};
|
|
194
190
|
});
|
|
195
191
|
return function removeOldHosts() {
|
|
@@ -218,12 +214,12 @@ class HmrStorage {
|
|
|
218
214
|
}
|
|
219
215
|
|
|
220
216
|
function setHmrReloadedTo(value) {
|
|
221
|
-
if (window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */]) {
|
|
222
|
-
window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */].hmrReloaded = value;
|
|
217
|
+
if (window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */]) {
|
|
218
|
+
window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */].hmrReloaded = value;
|
|
223
219
|
}
|
|
224
220
|
}
|
|
225
221
|
function markApplicationAsHmrReloaded() {
|
|
226
|
-
window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */] = window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */] || {
|
|
222
|
+
window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */] = window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */] || {
|
|
227
223
|
hmrReloaded: false
|
|
228
224
|
};
|
|
229
225
|
}
|
|
@@ -233,30 +229,28 @@ function markApplicationAsHmrReloaded() {
|
|
|
233
229
|
* @deprecated As of Angular v10, HMR is no longer supported and will be deprecated.
|
|
234
230
|
* More information [here](https://www.ngxs.io/plugins/hmr).
|
|
235
231
|
*/
|
|
236
|
-
function hmr(webpackModule, bootstrapFn, options = {}) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
manager.createNewModule();
|
|
253
|
-
});
|
|
232
|
+
async function hmr(webpackModule, bootstrapFn, options = {}) {
|
|
233
|
+
if (!webpackModule.hot) {
|
|
234
|
+
console.error('Are you using the --hmr flag for ng serve?');
|
|
235
|
+
throw new Error('HMR is not enabled for webpack-dev-server!');
|
|
236
|
+
}
|
|
237
|
+
markApplicationAsHmrReloaded();
|
|
238
|
+
webpackModule.hot.accept();
|
|
239
|
+
const dataTransfer = webpackModule.hot.data || {};
|
|
240
|
+
const storage = new HmrStorage(dataTransfer.snapshot || {});
|
|
241
|
+
const manager = new HmrManager(options, storage);
|
|
242
|
+
return await manager.hmrModule(bootstrapFn, () => {
|
|
243
|
+
manager.beforeModuleBootstrap();
|
|
244
|
+
webpackModule.hot.dispose((data) => {
|
|
245
|
+
setHmrReloadedTo(true);
|
|
246
|
+
data.snapshot = manager.beforeModuleOnDestroy();
|
|
247
|
+
manager.createNewModule();
|
|
254
248
|
});
|
|
255
249
|
});
|
|
256
250
|
}
|
|
257
251
|
|
|
258
252
|
function hmrIsReloaded() {
|
|
259
|
-
return !!(window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */] && window["NGXS_HMR_LIFECYCLE_STATUS" /* Status */].hmrReloaded);
|
|
253
|
+
return !!(window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */] && window["NGXS_HMR_LIFECYCLE_STATUS" /* HmrRuntime.Status */].hmrReloaded);
|
|
260
254
|
}
|
|
261
255
|
|
|
262
256
|
/**
|
|
@@ -268,4 +262,4 @@ function hmrIsReloaded() {
|
|
|
268
262
|
*/
|
|
269
263
|
|
|
270
264
|
export { HmrBeforeDestroyAction, HmrInitAction, hmr, hmrIsReloaded };
|
|
271
|
-
//# sourceMappingURL=ngxs-hmr-plugin.
|
|
265
|
+
//# sourceMappingURL=ngxs-hmr-plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngxs-hmr-plugin.mjs","sources":["../../../packages/hmr-plugin/src/actions/hmr-init.action.ts","../../../packages/hmr-plugin/src/actions/hmr-before-destroy.action.ts","../../../packages/hmr-plugin/src/internal/hmr-state-context-factory.ts","../../../packages/hmr-plugin/src/internal/hmr-options-builder.ts","../../../packages/hmr-plugin/src/internal/hmr-lifecycle.ts","../../../packages/hmr-plugin/src/hmr-manager.ts","../../../packages/hmr-plugin/src/internal/hmr-storage.ts","../../../packages/hmr-plugin/src/utils/internals.ts","../../../packages/hmr-plugin/src/hmr-bootstrap.ts","../../../packages/hmr-plugin/src/utils/externals.ts","../../../packages/hmr-plugin/index.ts","../../../packages/hmr-plugin/ngxs-hmr-plugin.ts"],"sourcesContent":["import { NgxsHmrSnapshot } from '../symbols';\n\nexport class HmrInitAction {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '@@HMR_INIT';\n }\n\n constructor(public payload: Partial<NgxsHmrSnapshot>) {}\n}\n","import { NgxsHmrSnapshot } from '../symbols';\n\nexport class HmrBeforeDestroyAction {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '@@HMR_BEFORE_DESTROY';\n }\n\n constructor(public payload: Partial<NgxsHmrSnapshot>) {}\n}\n","import { StateContext, Store } from '@ngxs/store';\nimport { isStateOperator } from '@ngxs/store/operators';\nimport { NgModuleRef } from '@angular/core';\n\nexport class HmrStateContextFactory<T, S> {\n public store: Store;\n\n constructor(module: NgModuleRef<T>) {\n const store = module.injector.get<Store>(Store, undefined);\n\n if (!store) {\n throw new Error('Store not found, maybe you forgot to import the NgxsModule');\n }\n\n this.store = store;\n }\n\n /**\n * @description\n * must be taken out into @ngxs/store/internals\n */\n public createStateContext(): StateContext<S> {\n return {\n dispatch: actions => this.store!.dispatch(actions),\n getState: () => <S>this.store!.snapshot(),\n setState: val => {\n if (isStateOperator(val)) {\n const currentState = this.store!.snapshot();\n val = val(currentState);\n }\n\n this.store!.reset(val);\n return <S>val;\n },\n patchState: val => {\n const currentState = this.store!.snapshot();\n const newState = { ...currentState, ...(<object>val) };\n this.store!.reset(newState);\n return newState;\n }\n };\n }\n}\n","import { NgxsHmrOptions } from '../symbols';\n\nexport class HmrOptionBuilder {\n public readonly deferTime: number;\n public readonly autoClearLogs: boolean;\n\n constructor({ deferTime, autoClearLogs }: NgxsHmrOptions) {\n this.deferTime = deferTime || 100;\n this.autoClearLogs = autoClearLogs === undefined ? true : autoClearLogs;\n }\n\n public clearLogs(): void {\n if (this.autoClearLogs) {\n console.clear();\n }\n }\n}\n","import { ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';\nimport { Observable, Subscription } from 'rxjs';\nimport { StateContext } from '@ngxs/store';\n\nimport { HmrOptionBuilder } from './hmr-options-builder';\nimport { HmrCallback, NgxsHmrLifeCycle } from '../symbols';\nimport { HmrStateContextFactory } from './hmr-state-context-factory';\nimport { HmrBeforeDestroyAction } from '../actions/hmr-before-destroy.action';\nimport { HmrStorage } from './hmr-storage';\n\nexport class HmrLifecycle<T extends Partial<NgxsHmrLifeCycle<S>>, S> {\n constructor(\n private ngAppModule: T,\n private appBootstrappedState: ɵNgxsAppBootstrappedState,\n private storage: HmrStorage<S>,\n private context: HmrStateContextFactory<T, S>,\n private options: HmrOptionBuilder\n ) {}\n\n public hmrNgxsStoreOnInit(hmrAfterOnInit: HmrCallback<S>) {\n let moduleHmrInit: HmrCallback<S> = this.getModuleHmrInitCallback();\n moduleHmrInit = moduleHmrInit.bind(this.ngAppModule);\n this.detectIvyWithJIT();\n this.stateEventLoop((ctx, state) => {\n moduleHmrInit(ctx, state);\n hmrAfterOnInit(ctx, state);\n });\n }\n\n private getModuleHmrInitCallback(): HmrCallback<S> {\n if (typeof this.ngAppModule.hmrNgxsStoreOnInit === 'function') {\n return this.ngAppModule.hmrNgxsStoreOnInit;\n }\n return function defaultModuleHmrInit(ctx, state) {\n ctx.patchState(state);\n };\n }\n\n public hmrNgxsStoreBeforeOnDestroy(): Partial<S> {\n let state: Partial<S> = {};\n const ctx: StateContext<S> = this.context.createStateContext();\n if (typeof this.ngAppModule.hmrNgxsStoreBeforeOnDestroy === 'function') {\n state = this.ngAppModule.hmrNgxsStoreBeforeOnDestroy(ctx);\n } else {\n state = ctx.getState();\n }\n\n ctx.dispatch(new HmrBeforeDestroyAction(state));\n return state;\n }\n\n private stateEventLoop(callback: HmrCallback<S>): void {\n if (!this.storage.hasData()) return;\n\n const state$: Observable<any> = this.context.store.select(state => state);\n\n this.appBootstrappedState.subscribe(() => {\n let eventId: number;\n const storeEventId: Subscription = state$.subscribe(() => {\n // setTimeout used for zone detection after set hmr state\n clearInterval(eventId);\n eventId = window.setTimeout(() => {\n // close check on the message queue\n storeEventId.unsubscribe();\n // if events are no longer running on the call stack,\n // then we can update the state\n callback(this.context.createStateContext(), this.storage.snapshot as Partial<S>);\n }, this.options.deferTime);\n });\n });\n }\n\n private detectIvyWithJIT(): void {\n const jit: boolean = this.ngAppModule.constructor.hasOwnProperty('__annotations__');\n const ivy: boolean = this.ngAppModule.constructor.hasOwnProperty('ɵmod');\n if (jit && ivy) {\n throw new Error(\n `@ngxs/hmr-plugin doesn't work with JIT mode in Angular Ivy. Please use AOT mode.`\n );\n }\n }\n}\n","import { ApplicationRef, ComponentRef, NgModuleRef } from '@angular/core';\nimport { ɵInitialState, ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';\n\nimport { HmrStorage } from './internal/hmr-storage';\nimport {\n BootstrapModuleFn,\n NgxsHmrLifeCycle,\n NgxsHmrOptions,\n NgxsHmrSnapshot\n} from './symbols';\nimport { HmrStateContextFactory } from './internal/hmr-state-context-factory';\nimport { HmrOptionBuilder } from './internal/hmr-options-builder';\nimport { HmrInitAction } from './actions/hmr-init.action';\nimport { HmrLifecycle } from './internal/hmr-lifecycle';\n\ntype OldHostRemoverFn = () => void;\n\nexport class HmrManager<T extends Partial<NgxsHmrLifeCycle<S>>, S = NgxsHmrSnapshot> {\n public storage: HmrStorage<S>;\n public context: HmrStateContextFactory<T, S>;\n public lifecycle: HmrLifecycle<T, S>;\n public optionsBuilder: HmrOptionBuilder;\n private ngModule: NgModuleRef<T>;\n\n constructor(options: NgxsHmrOptions, storage: HmrStorage<S>) {\n this.storage = storage;\n this.optionsBuilder = new HmrOptionBuilder(options);\n }\n\n private get applicationRef(): ApplicationRef {\n return this.ngModule.injector.get(ApplicationRef);\n }\n\n private get appBootstrappedState() {\n return this.ngModule.injector.get(ɵNgxsAppBootstrappedState);\n }\n\n public async hmrModule(\n bootstrapFn: BootstrapModuleFn<T>,\n tick: () => void\n ): Promise<NgModuleRef<T>> {\n ɵInitialState.set(this.storage.snapshot);\n this.ngModule = await bootstrapFn();\n this.context = new HmrStateContextFactory(this.ngModule);\n this.lifecycle = this.createLifecycle();\n\n tick();\n\n ɵInitialState.pop();\n return this.ngModule;\n }\n\n public beforeModuleBootstrap(): void {\n this.lifecycle.hmrNgxsStoreOnInit((ctx, state) => {\n ctx.dispatch(new HmrInitAction(state));\n });\n }\n\n public beforeModuleOnDestroy(): Partial<S> {\n this.optionsBuilder.clearLogs();\n return this.lifecycle.hmrNgxsStoreBeforeOnDestroy();\n }\n\n public createNewModule(): void {\n const removeOldHosts: () => void = this.cloneHostsBeforeDestroy();\n this.removeNgStyles();\n this.ngModule.destroy();\n removeOldHosts();\n }\n\n private createLifecycle(): HmrLifecycle<T, S> {\n return new HmrLifecycle(\n this.ngModule.instance,\n this.appBootstrappedState,\n this.storage,\n this.context,\n this.optionsBuilder\n );\n }\n\n private cloneHostsBeforeDestroy(): () => void {\n const elements: Element[] = this.applicationRef.components.map(\n (component: ComponentRef<Element>) => component.location.nativeElement\n );\n\n const removableList: OldHostRemoverFn[] = elements.map((componentNode: Element) => {\n const newNode = document.createElement(componentNode.tagName);\n const parentNode: Node = componentNode.parentNode as Node;\n const currentDisplay: string | null = newNode.style.display;\n\n newNode.style.display = 'none';\n parentNode.insertBefore(newNode, componentNode);\n\n return (): void => {\n newNode.style.display = currentDisplay;\n try {\n parentNode.removeChild(componentNode);\n } catch {}\n };\n });\n\n return function removeOldHosts(): void {\n removableList.forEach((removeOldHost: OldHostRemoverFn) => removeOldHost());\n };\n }\n\n private removeNgStyles(): void {\n const head: HTMLHeadElement = document.head!;\n const styles: HTMLStyleElement[] = Array.from(head!.querySelectorAll('style'));\n\n styles\n .filter((style: HTMLStyleElement) => style.innerText.includes('_ng'))\n .map((style: HTMLStyleElement) => head!.removeChild(style));\n }\n}\n","export class HmrStorage<S> {\n constructor(private _snapshot: Partial<S> = {}) {}\n\n public hasData(): boolean {\n return Object.keys(this._snapshot).length > 0;\n }\n\n public get snapshot(): Partial<S> {\n return this._snapshot;\n }\n}\n","import { HmrRuntime } from '../symbols';\n\ndeclare const window: any;\n\nexport function setHmrReloadedTo(value: boolean): void {\n if (window[HmrRuntime.Status]) {\n window[HmrRuntime.Status].hmrReloaded = value;\n }\n}\n\nexport function markApplicationAsHmrReloaded(): void {\n window[HmrRuntime.Status] = window[HmrRuntime.Status] || {\n hmrReloaded: false\n };\n}\n","import { NgModuleRef } from '@angular/core';\nimport { HmrManager } from './hmr-manager';\nimport { BootstrapModuleFn, NgxsHmrOptions, WebpackModule } from './symbols';\nimport { HmrStorage } from './internal/hmr-storage';\nimport { markApplicationAsHmrReloaded, setHmrReloadedTo } from './utils/internals';\n\n/**\n * Hot Module Replacement plugin for NGXS\n * @deprecated As of Angular v10, HMR is no longer supported and will be deprecated.\n * More information [here](https://www.ngxs.io/plugins/hmr).\n */\nexport async function hmr<T>(\n webpackModule: WebpackModule,\n bootstrapFn: BootstrapModuleFn<T>,\n options: NgxsHmrOptions = {}\n): Promise<NgModuleRef<T>> {\n if (!webpackModule.hot) {\n console.error('Are you using the --hmr flag for ng serve?');\n throw new Error('HMR is not enabled for webpack-dev-server!');\n }\n\n markApplicationAsHmrReloaded();\n\n webpackModule.hot.accept();\n\n interface HmrDataTransfer {\n snapshot?: any;\n }\n const dataTransfer: HmrDataTransfer = webpackModule.hot.data || {};\n\n const storage = new HmrStorage<any>(dataTransfer.snapshot || {});\n const manager = new HmrManager<any>(options, storage);\n\n return await manager.hmrModule(bootstrapFn, () => {\n manager.beforeModuleBootstrap();\n\n webpackModule.hot!.dispose((data: HmrDataTransfer) => {\n setHmrReloadedTo(true);\n data.snapshot = manager.beforeModuleOnDestroy();\n manager.createNewModule();\n });\n });\n}\n","import { HmrRuntime } from '../symbols';\n\ndeclare const window: any;\n\nexport function hmrIsReloaded(): boolean {\n return !!(window[HmrRuntime.Status] && window[HmrRuntime.Status].hmrReloaded);\n}\n","/**\n * The public api for consumers of @ngxs/hmr-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵNgxsAppBootstrappedState","ɵInitialState"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "../../node_modules/ng-packagr/package.schema.json",
|
|
3
2
|
"name": "@ngxs/hmr-plugin",
|
|
4
|
-
"version": "
|
|
3
|
+
"version": "18.0.0-dev.master-f4c2c19",
|
|
5
4
|
"license": "MIT",
|
|
6
5
|
"sideEffects": true,
|
|
7
6
|
"peerDependencies": {
|
|
8
|
-
"@angular/core": ">=
|
|
7
|
+
"@angular/core": ">=16.0.0 <19.0.0"
|
|
8
|
+
},
|
|
9
|
+
"module": "fesm2022/ngxs-hmr-plugin.mjs",
|
|
10
|
+
"typings": "index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
"./package.json": {
|
|
13
|
+
"default": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./index.d.ts",
|
|
17
|
+
"esm2022": "./esm2022/ngxs-hmr-plugin.mjs",
|
|
18
|
+
"esm": "./esm2022/ngxs-hmr-plugin.mjs",
|
|
19
|
+
"default": "./fesm2022/ngxs-hmr-plugin.mjs"
|
|
20
|
+
}
|
|
9
21
|
},
|
|
10
|
-
"main": "bundles/ngxs-hmr-plugin.umd.js",
|
|
11
|
-
"module": "fesm2015/ngxs-hmr-plugin.js",
|
|
12
|
-
"es2015": "fesm2015/ngxs-hmr-plugin.js",
|
|
13
|
-
"esm2015": "esm2015/ngxs-hmr-plugin.js",
|
|
14
|
-
"fesm2015": "fesm2015/ngxs-hmr-plugin.js",
|
|
15
|
-
"typings": "ngxs-hmr-plugin.d.ts",
|
|
16
22
|
"dependencies": {
|
|
17
|
-
"tslib": "^2.
|
|
23
|
+
"tslib": "^2.3.0"
|
|
18
24
|
},
|
|
19
25
|
"repository": {
|
|
20
26
|
"type": "git",
|
|
@@ -59,4 +65,4 @@
|
|
|
59
65
|
"type": "opencollective",
|
|
60
66
|
"url": "https://opencollective.com/ngxs"
|
|
61
67
|
}
|
|
62
|
-
}
|
|
68
|
+
}
|
package/src/hmr-manager.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare class HmrManager<T extends Partial<NgxsHmrLifeCycle<S>>, S = Ngxs
|
|
|
12
12
|
private ngModule;
|
|
13
13
|
constructor(options: NgxsHmrOptions, storage: HmrStorage<S>);
|
|
14
14
|
private get applicationRef();
|
|
15
|
-
private get
|
|
15
|
+
private get appBootstrappedState();
|
|
16
16
|
hmrModule(bootstrapFn: BootstrapModuleFn<T>, tick: () => void): Promise<NgModuleRef<T>>;
|
|
17
17
|
beforeModuleBootstrap(): void;
|
|
18
18
|
beforeModuleOnDestroy(): Partial<S>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';
|
|
2
2
|
import { HmrOptionBuilder } from './hmr-options-builder';
|
|
3
3
|
import { HmrCallback, NgxsHmrLifeCycle } from '../symbols';
|
|
4
4
|
import { HmrStateContextFactory } from './hmr-state-context-factory';
|
|
5
5
|
import { HmrStorage } from './hmr-storage';
|
|
6
6
|
export declare class HmrLifecycle<T extends Partial<NgxsHmrLifeCycle<S>>, S> {
|
|
7
7
|
private ngAppModule;
|
|
8
|
-
private
|
|
8
|
+
private appBootstrappedState;
|
|
9
9
|
private storage;
|
|
10
10
|
private context;
|
|
11
11
|
private options;
|
|
12
|
-
constructor(ngAppModule: T,
|
|
12
|
+
constructor(ngAppModule: T, appBootstrappedState: ɵNgxsAppBootstrappedState, storage: HmrStorage<S>, context: HmrStateContextFactory<T, S>, options: HmrOptionBuilder);
|
|
13
13
|
hmrNgxsStoreOnInit(hmrAfterOnInit: HmrCallback<S>): void;
|
|
14
14
|
private getModuleHmrInitCallback;
|
|
15
15
|
hmrNgxsStoreBeforeOnDestroy(): Partial<S>;
|