@ngxs-labs/action-lifecycle-hooks 0.1.6 → 1.0.5
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/esm2020/index.mjs +3 -0
- package/esm2020/lib/action-decorator-helpers.mjs +37 -0
- package/esm2020/lib/ngxs-action-lifecycle-hooks.module.mjs +23 -0
- package/esm2020/lib/ngxs-action-lifecycle-hooks.state.mjs +47 -0
- package/esm2020/lib/utils.mjs +15 -0
- package/esm2020/ngxs-labs-action-lifecycle-hooks.mjs +5 -0
- package/fesm2015/ngxs-labs-action-lifecycle-hooks.mjs +118 -0
- package/fesm2015/ngxs-labs-action-lifecycle-hooks.mjs.map +1 -0
- package/{fesm2015/ngxs-labs-action-lifecycle-hooks.js → fesm2020/ngxs-labs-action-lifecycle-hooks.mjs} +33 -26
- package/fesm2020/ngxs-labs-action-lifecycle-hooks.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/lib/ngxs-action-lifecycle-hooks.module.d.ts +6 -0
- package/lib/ngxs-action-lifecycle-hooks.state.d.ts +3 -0
- package/package.json +20 -8
- package/bundles/ngxs-labs-action-lifecycle-hooks.umd.js +0 -425
- package/bundles/ngxs-labs-action-lifecycle-hooks.umd.js.map +0 -1
- package/bundles/ngxs-labs-action-lifecycle-hooks.umd.min.js +0 -16
- package/bundles/ngxs-labs-action-lifecycle-hooks.umd.min.js.map +0 -1
- package/esm2015/index.js +0 -3
- package/esm2015/index.js.map +0 -1
- package/esm2015/index.metadata.json +0 -1
- package/esm2015/lib/action-decorator-helpers.js +0 -37
- package/esm2015/lib/action-decorator-helpers.js.map +0 -1
- package/esm2015/lib/action-decorator-helpers.metadata.json +0 -1
- package/esm2015/lib/ngxs-action-lifecycle-hooks.module.js +0 -16
- package/esm2015/lib/ngxs-action-lifecycle-hooks.module.js.map +0 -1
- package/esm2015/lib/ngxs-action-lifecycle-hooks.module.metadata.json +0 -1
- package/esm2015/lib/ngxs-action-lifecycle-hooks.state.js +0 -46
- package/esm2015/lib/ngxs-action-lifecycle-hooks.state.js.map +0 -1
- package/esm2015/lib/ngxs-action-lifecycle-hooks.state.metadata.json +0 -1
- package/esm2015/lib/utils.js +0 -14
- package/esm2015/lib/utils.js.map +0 -1
- package/esm2015/lib/utils.metadata.json +0 -1
- package/esm2015/ngxs-labs-action-lifecycle-hooks.js +0 -6
- package/esm2015/ngxs-labs-action-lifecycle-hooks.js.map +0 -1
- package/esm2015/ngxs-labs-action-lifecycle-hooks.metadata.json +0 -1
- package/fesm2015/ngxs-labs-action-lifecycle-hooks.js.map +0 -1
- package/ngxs-labs-action-lifecycle-hooks.d.ts +0 -5
- package/ngxs-labs-action-lifecycle-hooks.metadata.json +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './lib/action-decorator-helpers';
|
|
2
|
+
export * from './lib/ngxs-action-lifecycle-hooks.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FjdGlvbi1saWZlY3ljbGUtaG9va3Mvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbi1kZWNvcmF0b3ItaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3hzLWFjdGlvbi1saWZlY3ljbGUtaG9va3MubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getActionTypeFromInstance } from '@ngxs/store';
|
|
2
|
+
import { addToLifecycleHooks } from './utils';
|
|
3
|
+
export function ActionSuccessful(actionType) {
|
|
4
|
+
var _a;
|
|
5
|
+
addToLifecycleHooks(actionType, 'Successful');
|
|
6
|
+
return _a = class {
|
|
7
|
+
constructor(action) {
|
|
8
|
+
this.action = action;
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
_a.type = `${getActionTypeFromInstance(actionType)} Successful`,
|
|
12
|
+
_a;
|
|
13
|
+
}
|
|
14
|
+
export function ActionErrored(actionType) {
|
|
15
|
+
var _a;
|
|
16
|
+
addToLifecycleHooks(actionType, 'Errored');
|
|
17
|
+
return _a = class {
|
|
18
|
+
constructor(action, error) {
|
|
19
|
+
this.action = action;
|
|
20
|
+
this.error = error;
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
_a.type = `${getActionTypeFromInstance(actionType)} Errored`,
|
|
24
|
+
_a;
|
|
25
|
+
}
|
|
26
|
+
export function ActionCancelled(actionType) {
|
|
27
|
+
var _a;
|
|
28
|
+
addToLifecycleHooks(actionType, 'Canceled');
|
|
29
|
+
return _a = class {
|
|
30
|
+
constructor(action) {
|
|
31
|
+
this.action = action;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
_a.type = `${getActionTypeFromInstance(actionType)} Canceled`,
|
|
35
|
+
_a;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRlY29yYXRvci1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hY3Rpb24tbGlmZWN5Y2xlLWhvb2tzL3NyYy9saWIvYWN0aW9uLWRlY29yYXRvci1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNOUMsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFVBQXNCOztJQUNyRCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDOUMsWUFBTztZQUlMLFlBQW1CLE1BQVc7Z0JBQVgsV0FBTSxHQUFOLE1BQU0sQ0FBSztZQUFHLENBQUM7U0FDbkM7UUFKaUIsT0FBSSxHQUFHLEdBQUcseUJBQXlCLENBQ2pELFVBQVUsQ0FDWCxhQUFjO1dBRWY7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxVQUFzQjs7SUFDbEQsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLFlBQU87WUFFTCxZQUFtQixNQUFXLEVBQVMsS0FBVTtnQkFBOUIsV0FBTSxHQUFOLE1BQU0sQ0FBSztnQkFBUyxVQUFLLEdBQUwsS0FBSyxDQUFLO1lBQUcsQ0FBQztTQUN0RDtRQUZpQixPQUFJLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsVUFBVztXQUUxRTtBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFVBQXNCOztJQUNwRCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsWUFBTztZQUVMLFlBQW1CLE1BQVc7Z0JBQVgsV0FBTSxHQUFOLE1BQU0sQ0FBSztZQUFHLENBQUM7U0FDbkM7UUFGaUIsT0FBSSxHQUFHLEdBQUcseUJBQXlCLENBQUMsVUFBVSxDQUFDLFdBQVk7V0FFM0U7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uVHlwZSwgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGFkZFRvTGlmZWN5Y2xlSG9va3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgU3VjY2Vzc2Z1bDxBPiA9IHsgYWN0aW9uOiBBIH07XG5leHBvcnQgdHlwZSBFcnJvcmVkPEE+ID0geyBhY3Rpb246IEE7IGVycm9yOiBhbnkgfTtcbmV4cG9ydCB0eXBlIENhbmNlbGxlZDxBPiA9IHsgYWN0aW9uOiBBIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBBY3Rpb25TdWNjZXNzZnVsKGFjdGlvblR5cGU6IEFjdGlvblR5cGUpIHtcbiAgYWRkVG9MaWZlY3ljbGVIb29rcyhhY3Rpb25UeXBlLCAnU3VjY2Vzc2Z1bCcpO1xuICByZXR1cm4gY2xhc3Mge1xuICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gYCR7Z2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShcbiAgICAgIGFjdGlvblR5cGVcbiAgICApfSBTdWNjZXNzZnVsYDtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYWN0aW9uOiBhbnkpIHt9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBY3Rpb25FcnJvcmVkKGFjdGlvblR5cGU6IEFjdGlvblR5cGUpIHtcbiAgYWRkVG9MaWZlY3ljbGVIb29rcyhhY3Rpb25UeXBlLCAnRXJyb3JlZCcpO1xuICByZXR1cm4gY2xhc3Mge1xuICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gYCR7Z2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb25UeXBlKX0gRXJyb3JlZGA7XG4gICAgY29uc3RydWN0b3IocHVibGljIGFjdGlvbjogYW55LCBwdWJsaWMgZXJyb3I6IGFueSkge31cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFjdGlvbkNhbmNlbGxlZChhY3Rpb25UeXBlOiBBY3Rpb25UeXBlKSB7XG4gIGFkZFRvTGlmZWN5Y2xlSG9va3MoYWN0aW9uVHlwZSwgJ0NhbmNlbGVkJyk7XG4gIHJldHVybiBjbGFzcyB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSBgJHtnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvblR5cGUpfSBDYW5jZWxlZGA7XG4gICAgY29uc3RydWN0b3IocHVibGljIGFjdGlvbjogYW55KSB7fVxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { NgxsModule } from "@ngxs/store";
|
|
4
|
+
import { NgxsActionLifecycleHooksState } from "./ngxs-action-lifecycle-hooks.state";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngxs/store";
|
|
7
|
+
export class NgxsActionLifecycleHooksModule {
|
|
8
|
+
}
|
|
9
|
+
NgxsActionLifecycleHooksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
NgxsActionLifecycleHooksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, imports: [CommonModule, i1.ɵNgxsFeatureModule] });
|
|
11
|
+
NgxsActionLifecycleHooksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, imports: [CommonModule,
|
|
12
|
+
NgxsModule.forFeature([NgxsActionLifecycleHooksState])] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [
|
|
17
|
+
CommonModule,
|
|
18
|
+
NgxsModule.forFeature([NgxsActionLifecycleHooksState])
|
|
19
|
+
],
|
|
20
|
+
declarations: []
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1hY3Rpb24tbGlmZWN5Y2xlLWhvb2tzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYWN0aW9uLWxpZmVjeWNsZS1ob29rcy9zcmMvbGliL25neHMtYWN0aW9uLWxpZmVjeWNsZS1ob29rcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBU3BGLE1BQU0sT0FBTyw4QkFBOEI7OzJIQUE5Qiw4QkFBOEI7NEhBQTlCLDhCQUE4QixZQUx2QyxZQUFZOzRIQUtILDhCQUE4QixZQUx2QyxZQUFZO1FBQ1osVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUM7MkZBSTdDLDhCQUE4QjtrQkFQMUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsNkJBQTZCLENBQUMsQ0FBQztxQkFDdkQ7b0JBQ0QsWUFBWSxFQUFFLEVBQUU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gXCJAbmd4cy9zdG9yZVwiO1xuaW1wb3J0IHsgTmd4c0FjdGlvbkxpZmVjeWNsZUhvb2tzU3RhdGUgfSBmcm9tIFwiLi9uZ3hzLWFjdGlvbi1saWZlY3ljbGUtaG9va3Muc3RhdGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW05neHNBY3Rpb25MaWZlY3ljbGVIb29rc1N0YXRlXSlcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzQWN0aW9uTGlmZWN5Y2xlSG9va3NNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { State, Actions, Store, ofActionCompleted, getActionTypeFromInstance } from '@ngxs/store';
|
|
4
|
+
import { asapScheduler } from 'rxjs';
|
|
5
|
+
import { observeOn } from 'rxjs/operators';
|
|
6
|
+
import { ActionCancelled, ActionErrored, ActionSuccessful } from './action-decorator-helpers';
|
|
7
|
+
import { actionLifecycleHooks } from './utils';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ngxs/store";
|
|
10
|
+
let NgxsActionLifecycleHooksState = class NgxsActionLifecycleHooksState {
|
|
11
|
+
constructor(actions, store) {
|
|
12
|
+
this.actions = actions;
|
|
13
|
+
this.store = store;
|
|
14
|
+
const arr = Object.keys(actionLifecycleHooks).map((key) => ({ type: key }));
|
|
15
|
+
this.actions.pipe(ofActionCompleted(...arr), observeOn(asapScheduler)).subscribe((actionCompletion) => {
|
|
16
|
+
const actionTypeOk = getActionTypeFromInstance(actionCompletion.action) || '';
|
|
17
|
+
if (actionCompletion.result.successful &&
|
|
18
|
+
actionLifecycleHooks[actionTypeOk].includes('Successful')) {
|
|
19
|
+
const ActionSuccessfulClass = ActionSuccessful(actionCompletion.action);
|
|
20
|
+
this.store.dispatch(new ActionSuccessfulClass(actionCompletion.action));
|
|
21
|
+
}
|
|
22
|
+
if (actionCompletion.result.error &&
|
|
23
|
+
actionLifecycleHooks[actionTypeOk].includes('Errored')) {
|
|
24
|
+
const ActionErroredClass = ActionErrored(actionCompletion.action);
|
|
25
|
+
this.store.dispatch(new ActionErroredClass(actionCompletion.action, actionCompletion.result.error));
|
|
26
|
+
}
|
|
27
|
+
if (actionCompletion.result.canceled &&
|
|
28
|
+
actionLifecycleHooks[actionTypeOk].includes('Canceled')) {
|
|
29
|
+
const ActionCancelledClass = ActionCancelled(actionCompletion.action);
|
|
30
|
+
this.store.dispatch(new ActionCancelledClass(actionCompletion.action));
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
NgxsActionLifecycleHooksState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState, deps: [{ token: i1.Actions }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
NgxsActionLifecycleHooksState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState });
|
|
37
|
+
NgxsActionLifecycleHooksState = __decorate([
|
|
38
|
+
State({
|
|
39
|
+
name: 'NgxsActionLifecycleHooksState',
|
|
40
|
+
}),
|
|
41
|
+
__metadata("design:paramtypes", [Actions, Store])
|
|
42
|
+
], NgxsActionLifecycleHooksState);
|
|
43
|
+
export { NgxsActionLifecycleHooksState };
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState, decorators: [{
|
|
45
|
+
type: Injectable
|
|
46
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i1.Store }]; } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1hY3Rpb24tbGlmZWN5Y2xlLWhvb2tzLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hY3Rpb24tbGlmZWN5Y2xlLWhvb2tzL3NyYy9saWIvbmd4cy1hY3Rpb24tbGlmZWN5Y2xlLWhvb2tzLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBTXhDLElBQU0sNkJBQTZCLEdBQW5DLE1BQU0sNkJBQTZCO0lBQ3hDLFlBQW9CLE9BQWdCLEVBQVUsS0FBWTtRQUF0QyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN4RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDcEcsTUFBTSxZQUFZLEdBQUkseUJBQXlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQzlFLElBQ0UsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ2xDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFDekQ7Z0JBQ0EsTUFBTSxxQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3pFO1lBQ0QsSUFDRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDN0Isb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUN0RDtnQkFDQSxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDckc7WUFDRCxJQUNFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUNoQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQ3ZEO2dCQUNBLE1BQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDeEU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzBIQTNCVSw2QkFBNkI7OEhBQTdCLDZCQUE2QjtBQUE3Qiw2QkFBNkI7SUFKekMsS0FBSyxDQUFNO1FBQ1YsSUFBSSxFQUFFLCtCQUErQjtLQUN0QyxDQUFDO3FDQUc2QixPQUFPLEVBQWlCLEtBQUs7R0FEL0MsNkJBQTZCLENBNEJ6QztTQTVCWSw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXRlLCBBY3Rpb25zLCBTdG9yZSwgb2ZBY3Rpb25Db21wbGV0ZWQsIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBhc2FwU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBvYnNlcnZlT24gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25DYW5jZWxsZWQsIEFjdGlvbkVycm9yZWQsIEFjdGlvblN1Y2Nlc3NmdWwgfSBmcm9tICcuL2FjdGlvbi1kZWNvcmF0b3ItaGVscGVycyc7XG5pbXBvcnQgeyBhY3Rpb25MaWZlY3ljbGVIb29rcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5AU3RhdGU8YW55Pih7XG4gIG5hbWU6ICdOZ3hzQWN0aW9uTGlmZWN5Y2xlSG9va3NTdGF0ZScsXG59KVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5neHNBY3Rpb25MaWZlY3ljbGVIb29rc1N0YXRlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zOiBBY3Rpb25zLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIGNvbnN0IGFyciA9IE9iamVjdC5rZXlzKGFjdGlvbkxpZmVjeWNsZUhvb2tzKS5tYXAoKGtleSkgPT4gKHsgdHlwZToga2V5IH0pKTtcbiAgICB0aGlzLmFjdGlvbnMucGlwZShvZkFjdGlvbkNvbXBsZXRlZCguLi5hcnIpLCBvYnNlcnZlT24oYXNhcFNjaGVkdWxlcikpLnN1YnNjcmliZSgoYWN0aW9uQ29tcGxldGlvbikgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uVHlwZU9rID0gIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uQ29tcGxldGlvbi5hY3Rpb24pIHx8ICcnXG4gICAgICBpZiAoXG4gICAgICAgIGFjdGlvbkNvbXBsZXRpb24ucmVzdWx0LnN1Y2Nlc3NmdWwgJiZcbiAgICAgICAgYWN0aW9uTGlmZWN5Y2xlSG9va3NbYWN0aW9uVHlwZU9rXS5pbmNsdWRlcygnU3VjY2Vzc2Z1bCcpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgQWN0aW9uU3VjY2Vzc2Z1bENsYXNzID0gQWN0aW9uU3VjY2Vzc2Z1bChhY3Rpb25Db21wbGV0aW9uLmFjdGlvbik7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEFjdGlvblN1Y2Nlc3NmdWxDbGFzcyhhY3Rpb25Db21wbGV0aW9uLmFjdGlvbikpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBhY3Rpb25Db21wbGV0aW9uLnJlc3VsdC5lcnJvciAmJlxuICAgICAgICBhY3Rpb25MaWZlY3ljbGVIb29rc1thY3Rpb25UeXBlT2tdLmluY2x1ZGVzKCdFcnJvcmVkJylcbiAgICAgICkge1xuICAgICAgICBjb25zdCBBY3Rpb25FcnJvcmVkQ2xhc3MgPSBBY3Rpb25FcnJvcmVkKGFjdGlvbkNvbXBsZXRpb24uYWN0aW9uKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQWN0aW9uRXJyb3JlZENsYXNzKGFjdGlvbkNvbXBsZXRpb24uYWN0aW9uLCBhY3Rpb25Db21wbGV0aW9uLnJlc3VsdC5lcnJvcikpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBhY3Rpb25Db21wbGV0aW9uLnJlc3VsdC5jYW5jZWxlZCAmJlxuICAgICAgICBhY3Rpb25MaWZlY3ljbGVIb29rc1thY3Rpb25UeXBlT2tdLmluY2x1ZGVzKCdDYW5jZWxlZCcpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgQWN0aW9uQ2FuY2VsbGVkQ2xhc3MgPSBBY3Rpb25DYW5jZWxsZWQoYWN0aW9uQ29tcGxldGlvbi5hY3Rpb24pO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBBY3Rpb25DYW5jZWxsZWRDbGFzcyhhY3Rpb25Db21wbGV0aW9uLmFjdGlvbikpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getActionTypeFromInstance } from '@ngxs/store';
|
|
2
|
+
export const actionLifecycleHooks = {};
|
|
3
|
+
export function addToLifecycleHooks(actionType, hook) {
|
|
4
|
+
const actionTypeOk = getActionTypeFromInstance(actionType) || '';
|
|
5
|
+
if (!actionLifecycleHooks[actionTypeOk]) {
|
|
6
|
+
actionLifecycleHooks[actionTypeOk] = [hook];
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
actionLifecycleHooks[actionTypeOk] = [
|
|
10
|
+
...actionLifecycleHooks[actionTypeOk],
|
|
11
|
+
hook,
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FjdGlvbi1saWZlY3ljbGUtaG9va3Mvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHcEUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQStCLEVBQUUsQ0FBQztBQUVuRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBc0IsRUFBRSxJQUFXO0lBQ3JFLE1BQU0sWUFBWSxHQUFJLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNqRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDdkMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM3QztTQUFNO1FBQ0wsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEdBQUc7WUFDbkMsR0FBRyxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7WUFDckMsSUFBSTtTQUNMLENBQUM7S0FDSDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25UeXBlLCBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5leHBvcnQgdHlwZSBIb29rcyA9ICdTdWNjZXNzZnVsJyB8ICdFcnJvcmVkJyB8ICdDYW5jZWxlZCc7XG5leHBvcnQgY29uc3QgYWN0aW9uTGlmZWN5Y2xlSG9va3M6IHsgW2tleTogc3RyaW5nXTogSG9va3NbXSB9ID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb0xpZmVjeWNsZUhvb2tzKGFjdGlvblR5cGU6IEFjdGlvblR5cGUsIGhvb2s6IEhvb2tzKSB7XG4gIGNvbnN0IGFjdGlvblR5cGVPayA9ICBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvblR5cGUpIHx8ICcnXG4gIGlmICghYWN0aW9uTGlmZWN5Y2xlSG9va3NbYWN0aW9uVHlwZU9rXSkge1xuICAgIGFjdGlvbkxpZmVjeWNsZUhvb2tzW2FjdGlvblR5cGVPa10gPSBbaG9va107XG4gIH0gZWxzZSB7XG4gICAgYWN0aW9uTGlmZWN5Y2xlSG9va3NbYWN0aW9uVHlwZU9rXSA9IFtcbiAgICAgIC4uLmFjdGlvbkxpZmVjeWNsZUhvb2tzW2FjdGlvblR5cGVPa10sXG4gICAgICBob29rLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1sYWJzLWFjdGlvbi1saWZlY3ljbGUtaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FjdGlvbi1saWZlY3ljbGUtaG9va3Mvc3JjL25neHMtbGFicy1hY3Rpb24tbGlmZWN5Y2xlLWhvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as i1 from '@ngxs/store';
|
|
2
|
+
import { getActionTypeFromInstance, ofActionCompleted, State, Actions, Store, NgxsModule } from '@ngxs/store';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { __decorate, __metadata } from 'tslib';
|
|
7
|
+
import { asapScheduler } from 'rxjs';
|
|
8
|
+
import { observeOn } from 'rxjs/operators';
|
|
9
|
+
|
|
10
|
+
const actionLifecycleHooks = {};
|
|
11
|
+
function addToLifecycleHooks(actionType, hook) {
|
|
12
|
+
const actionTypeOk = getActionTypeFromInstance(actionType) || '';
|
|
13
|
+
if (!actionLifecycleHooks[actionTypeOk]) {
|
|
14
|
+
actionLifecycleHooks[actionTypeOk] = [hook];
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
actionLifecycleHooks[actionTypeOk] = [
|
|
18
|
+
...actionLifecycleHooks[actionTypeOk],
|
|
19
|
+
hook,
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function ActionSuccessful(actionType) {
|
|
25
|
+
var _a;
|
|
26
|
+
addToLifecycleHooks(actionType, 'Successful');
|
|
27
|
+
return _a = class {
|
|
28
|
+
constructor(action) {
|
|
29
|
+
this.action = action;
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
_a.type = `${getActionTypeFromInstance(actionType)} Successful`,
|
|
33
|
+
_a;
|
|
34
|
+
}
|
|
35
|
+
function ActionErrored(actionType) {
|
|
36
|
+
var _a;
|
|
37
|
+
addToLifecycleHooks(actionType, 'Errored');
|
|
38
|
+
return _a = class {
|
|
39
|
+
constructor(action, error) {
|
|
40
|
+
this.action = action;
|
|
41
|
+
this.error = error;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
_a.type = `${getActionTypeFromInstance(actionType)} Errored`,
|
|
45
|
+
_a;
|
|
46
|
+
}
|
|
47
|
+
function ActionCancelled(actionType) {
|
|
48
|
+
var _a;
|
|
49
|
+
addToLifecycleHooks(actionType, 'Canceled');
|
|
50
|
+
return _a = class {
|
|
51
|
+
constructor(action) {
|
|
52
|
+
this.action = action;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
_a.type = `${getActionTypeFromInstance(actionType)} Canceled`,
|
|
56
|
+
_a;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
let NgxsActionLifecycleHooksState = class NgxsActionLifecycleHooksState {
|
|
60
|
+
constructor(actions, store) {
|
|
61
|
+
this.actions = actions;
|
|
62
|
+
this.store = store;
|
|
63
|
+
const arr = Object.keys(actionLifecycleHooks).map((key) => ({ type: key }));
|
|
64
|
+
this.actions.pipe(ofActionCompleted(...arr), observeOn(asapScheduler)).subscribe((actionCompletion) => {
|
|
65
|
+
const actionTypeOk = getActionTypeFromInstance(actionCompletion.action) || '';
|
|
66
|
+
if (actionCompletion.result.successful &&
|
|
67
|
+
actionLifecycleHooks[actionTypeOk].includes('Successful')) {
|
|
68
|
+
const ActionSuccessfulClass = ActionSuccessful(actionCompletion.action);
|
|
69
|
+
this.store.dispatch(new ActionSuccessfulClass(actionCompletion.action));
|
|
70
|
+
}
|
|
71
|
+
if (actionCompletion.result.error &&
|
|
72
|
+
actionLifecycleHooks[actionTypeOk].includes('Errored')) {
|
|
73
|
+
const ActionErroredClass = ActionErrored(actionCompletion.action);
|
|
74
|
+
this.store.dispatch(new ActionErroredClass(actionCompletion.action, actionCompletion.result.error));
|
|
75
|
+
}
|
|
76
|
+
if (actionCompletion.result.canceled &&
|
|
77
|
+
actionLifecycleHooks[actionTypeOk].includes('Canceled')) {
|
|
78
|
+
const ActionCancelledClass = ActionCancelled(actionCompletion.action);
|
|
79
|
+
this.store.dispatch(new ActionCancelledClass(actionCompletion.action));
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
NgxsActionLifecycleHooksState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState, deps: [{ token: i1.Actions }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
85
|
+
NgxsActionLifecycleHooksState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState });
|
|
86
|
+
NgxsActionLifecycleHooksState = __decorate([
|
|
87
|
+
State({
|
|
88
|
+
name: 'NgxsActionLifecycleHooksState',
|
|
89
|
+
}),
|
|
90
|
+
__metadata("design:paramtypes", [Actions, Store])
|
|
91
|
+
], NgxsActionLifecycleHooksState);
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState, decorators: [{
|
|
93
|
+
type: Injectable
|
|
94
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i1.Store }]; } });
|
|
95
|
+
|
|
96
|
+
class NgxsActionLifecycleHooksModule {
|
|
97
|
+
}
|
|
98
|
+
NgxsActionLifecycleHooksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
99
|
+
NgxsActionLifecycleHooksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, imports: [CommonModule, i1.ɵNgxsFeatureModule] });
|
|
100
|
+
NgxsActionLifecycleHooksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, imports: [CommonModule,
|
|
101
|
+
NgxsModule.forFeature([NgxsActionLifecycleHooksState])] });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, decorators: [{
|
|
103
|
+
type: NgModule,
|
|
104
|
+
args: [{
|
|
105
|
+
imports: [
|
|
106
|
+
CommonModule,
|
|
107
|
+
NgxsModule.forFeature([NgxsActionLifecycleHooksState])
|
|
108
|
+
],
|
|
109
|
+
declarations: []
|
|
110
|
+
}]
|
|
111
|
+
}] });
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Generated bundle index. Do not edit.
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
export { ActionCancelled, ActionErrored, ActionSuccessful, NgxsActionLifecycleHooksModule };
|
|
118
|
+
//# sourceMappingURL=ngxs-labs-action-lifecycle-hooks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngxs-labs-action-lifecycle-hooks.mjs","sources":["../../../../libs/action-lifecycle-hooks/src/lib/utils.ts","../../../../libs/action-lifecycle-hooks/src/lib/action-decorator-helpers.ts","../../../../libs/action-lifecycle-hooks/src/lib/ngxs-action-lifecycle-hooks.state.ts","../../../../libs/action-lifecycle-hooks/src/lib/ngxs-action-lifecycle-hooks.module.ts","../../../../libs/action-lifecycle-hooks/src/ngxs-labs-action-lifecycle-hooks.ts"],"sourcesContent":["import { ActionType, getActionTypeFromInstance } from '@ngxs/store';\n\nexport type Hooks = 'Successful' | 'Errored' | 'Canceled';\nexport const actionLifecycleHooks: { [key: string]: Hooks[] } = {};\n\nexport function addToLifecycleHooks(actionType: ActionType, hook: Hooks) {\n const actionTypeOk = getActionTypeFromInstance(actionType) || ''\n if (!actionLifecycleHooks[actionTypeOk]) {\n actionLifecycleHooks[actionTypeOk] = [hook];\n } else {\n actionLifecycleHooks[actionTypeOk] = [\n ...actionLifecycleHooks[actionTypeOk],\n hook,\n ];\n }\n}\n","import { ActionType, getActionTypeFromInstance } from '@ngxs/store';\nimport { addToLifecycleHooks } from './utils';\n\nexport type Successful<A> = { action: A };\nexport type Errored<A> = { action: A; error: any };\nexport type Cancelled<A> = { action: A };\n\nexport function ActionSuccessful(actionType: ActionType) {\n addToLifecycleHooks(actionType, 'Successful');\n return class {\n static readonly type = `${getActionTypeFromInstance(\n actionType\n )} Successful`;\n constructor(public action: any) {}\n };\n}\n\nexport function ActionErrored(actionType: ActionType) {\n addToLifecycleHooks(actionType, 'Errored');\n return class {\n static readonly type = `${getActionTypeFromInstance(actionType)} Errored`;\n constructor(public action: any, public error: any) {}\n };\n}\n\nexport function ActionCancelled(actionType: ActionType) {\n addToLifecycleHooks(actionType, 'Canceled');\n return class {\n static readonly type = `${getActionTypeFromInstance(actionType)} Canceled`;\n constructor(public action: any) {}\n };\n}\n","import { Injectable } from '@angular/core';\nimport { State, Actions, Store, ofActionCompleted, getActionTypeFromInstance } from '@ngxs/store';\nimport { asapScheduler } from 'rxjs';\nimport { observeOn } from 'rxjs/operators';\nimport { ActionCancelled, ActionErrored, ActionSuccessful } from './action-decorator-helpers';\nimport { actionLifecycleHooks } from './utils';\n\n@State<any>({\n name: 'NgxsActionLifecycleHooksState',\n})\n@Injectable()\nexport class NgxsActionLifecycleHooksState {\n constructor(private actions: Actions, private store: Store) {\n const arr = Object.keys(actionLifecycleHooks).map((key) => ({ type: key }));\n this.actions.pipe(ofActionCompleted(...arr), observeOn(asapScheduler)).subscribe((actionCompletion) => {\n const actionTypeOk = getActionTypeFromInstance(actionCompletion.action) || ''\n if (\n actionCompletion.result.successful &&\n actionLifecycleHooks[actionTypeOk].includes('Successful')\n ) {\n const ActionSuccessfulClass = ActionSuccessful(actionCompletion.action);\n this.store.dispatch(new ActionSuccessfulClass(actionCompletion.action));\n }\n if (\n actionCompletion.result.error &&\n actionLifecycleHooks[actionTypeOk].includes('Errored')\n ) {\n const ActionErroredClass = ActionErrored(actionCompletion.action);\n this.store.dispatch(new ActionErroredClass(actionCompletion.action, actionCompletion.result.error));\n }\n if (\n actionCompletion.result.canceled &&\n actionLifecycleHooks[actionTypeOk].includes('Canceled')\n ) {\n const ActionCancelledClass = ActionCancelled(actionCompletion.action);\n this.store.dispatch(new ActionCancelledClass(actionCompletion.action));\n }\n });\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgxsModule } from \"@ngxs/store\";\nimport { NgxsActionLifecycleHooksState } from \"./ngxs-action-lifecycle-hooks.state\";\n\n@NgModule({\n imports: [\n CommonModule,\n NgxsModule.forFeature([NgxsActionLifecycleHooksState])\n ],\n declarations: []\n})\nexport class NgxsActionLifecycleHooksModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
+
import * as i1 from '@ngxs/store';
|
|
2
|
+
import { getActionTypeFromInstance, ofActionCompleted, State, Actions, Store, NgxsModule } from '@ngxs/store';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
1
4
|
import { Injectable, NgModule } from '@angular/core';
|
|
2
5
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { getActionTypeFromInstance, ofActionCompleted, Actions, Store, State, NgxsModule } from '@ngxs/store';
|
|
4
6
|
import { __decorate, __metadata } from 'tslib';
|
|
5
7
|
import { asapScheduler } from 'rxjs';
|
|
6
8
|
import { observeOn } from 'rxjs/operators';
|
|
7
9
|
|
|
8
10
|
const actionLifecycleHooks = {};
|
|
9
11
|
function addToLifecycleHooks(actionType, hook) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
const actionTypeOk = getActionTypeFromInstance(actionType) || '';
|
|
13
|
+
if (!actionLifecycleHooks[actionTypeOk]) {
|
|
14
|
+
actionLifecycleHooks[actionTypeOk] = [hook];
|
|
12
15
|
}
|
|
13
16
|
else {
|
|
14
|
-
actionLifecycleHooks[
|
|
15
|
-
...actionLifecycleHooks[
|
|
17
|
+
actionLifecycleHooks[actionTypeOk] = [
|
|
18
|
+
...actionLifecycleHooks[actionTypeOk],
|
|
16
19
|
hook,
|
|
17
20
|
];
|
|
18
21
|
}
|
|
@@ -59,53 +62,57 @@ let NgxsActionLifecycleHooksState = class NgxsActionLifecycleHooksState {
|
|
|
59
62
|
this.store = store;
|
|
60
63
|
const arr = Object.keys(actionLifecycleHooks).map((key) => ({ type: key }));
|
|
61
64
|
this.actions.pipe(ofActionCompleted(...arr), observeOn(asapScheduler)).subscribe((actionCompletion) => {
|
|
65
|
+
const actionTypeOk = getActionTypeFromInstance(actionCompletion.action) || '';
|
|
62
66
|
if (actionCompletion.result.successful &&
|
|
63
|
-
actionLifecycleHooks[
|
|
67
|
+
actionLifecycleHooks[actionTypeOk].includes('Successful')) {
|
|
64
68
|
const ActionSuccessfulClass = ActionSuccessful(actionCompletion.action);
|
|
65
69
|
this.store.dispatch(new ActionSuccessfulClass(actionCompletion.action));
|
|
66
70
|
}
|
|
67
71
|
if (actionCompletion.result.error &&
|
|
68
|
-
actionLifecycleHooks[
|
|
72
|
+
actionLifecycleHooks[actionTypeOk].includes('Errored')) {
|
|
69
73
|
const ActionErroredClass = ActionErrored(actionCompletion.action);
|
|
70
74
|
this.store.dispatch(new ActionErroredClass(actionCompletion.action, actionCompletion.result.error));
|
|
71
75
|
}
|
|
72
76
|
if (actionCompletion.result.canceled &&
|
|
73
|
-
actionLifecycleHooks[
|
|
77
|
+
actionLifecycleHooks[actionTypeOk].includes('Canceled')) {
|
|
74
78
|
const ActionCancelledClass = ActionCancelled(actionCompletion.action);
|
|
75
79
|
this.store.dispatch(new ActionCancelledClass(actionCompletion.action));
|
|
76
80
|
}
|
|
77
81
|
});
|
|
78
82
|
}
|
|
79
83
|
};
|
|
80
|
-
NgxsActionLifecycleHooksState
|
|
81
|
-
|
|
82
|
-
];
|
|
83
|
-
NgxsActionLifecycleHooksState.ctorParameters = () => [
|
|
84
|
-
{ type: Actions },
|
|
85
|
-
{ type: Store }
|
|
86
|
-
];
|
|
84
|
+
NgxsActionLifecycleHooksState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState, deps: [{ token: i1.Actions }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
85
|
+
NgxsActionLifecycleHooksState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState });
|
|
87
86
|
NgxsActionLifecycleHooksState = __decorate([
|
|
88
87
|
State({
|
|
89
88
|
name: 'NgxsActionLifecycleHooksState',
|
|
90
89
|
}),
|
|
91
90
|
__metadata("design:paramtypes", [Actions, Store])
|
|
92
91
|
], NgxsActionLifecycleHooksState);
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksState, decorators: [{
|
|
93
|
+
type: Injectable
|
|
94
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i1.Store }]; } });
|
|
93
95
|
|
|
94
96
|
class NgxsActionLifecycleHooksModule {
|
|
95
97
|
}
|
|
96
|
-
NgxsActionLifecycleHooksModule
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
NgxsActionLifecycleHooksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
99
|
+
NgxsActionLifecycleHooksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, imports: [CommonModule, i1.ɵNgxsFeatureModule] });
|
|
100
|
+
NgxsActionLifecycleHooksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, imports: [CommonModule,
|
|
101
|
+
NgxsModule.forFeature([NgxsActionLifecycleHooksState])] });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxsActionLifecycleHooksModule, decorators: [{
|
|
103
|
+
type: NgModule,
|
|
104
|
+
args: [{
|
|
105
|
+
imports: [
|
|
106
|
+
CommonModule,
|
|
107
|
+
NgxsModule.forFeature([NgxsActionLifecycleHooksState])
|
|
108
|
+
],
|
|
109
|
+
declarations: []
|
|
110
|
+
}]
|
|
111
|
+
}] });
|
|
105
112
|
|
|
106
113
|
/**
|
|
107
114
|
* Generated bundle index. Do not edit.
|
|
108
115
|
*/
|
|
109
116
|
|
|
110
|
-
export { ActionCancelled, ActionErrored, ActionSuccessful, NgxsActionLifecycleHooksModule
|
|
111
|
-
//# sourceMappingURL=ngxs-labs-action-lifecycle-hooks.
|
|
117
|
+
export { ActionCancelled, ActionErrored, ActionSuccessful, NgxsActionLifecycleHooksModule };
|
|
118
|
+
//# sourceMappingURL=ngxs-labs-action-lifecycle-hooks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngxs-labs-action-lifecycle-hooks.mjs","sources":["../../../../libs/action-lifecycle-hooks/src/lib/utils.ts","../../../../libs/action-lifecycle-hooks/src/lib/action-decorator-helpers.ts","../../../../libs/action-lifecycle-hooks/src/lib/ngxs-action-lifecycle-hooks.state.ts","../../../../libs/action-lifecycle-hooks/src/lib/ngxs-action-lifecycle-hooks.module.ts","../../../../libs/action-lifecycle-hooks/src/ngxs-labs-action-lifecycle-hooks.ts"],"sourcesContent":["import { ActionType, getActionTypeFromInstance } from '@ngxs/store';\n\nexport type Hooks = 'Successful' | 'Errored' | 'Canceled';\nexport const actionLifecycleHooks: { [key: string]: Hooks[] } = {};\n\nexport function addToLifecycleHooks(actionType: ActionType, hook: Hooks) {\n const actionTypeOk = getActionTypeFromInstance(actionType) || ''\n if (!actionLifecycleHooks[actionTypeOk]) {\n actionLifecycleHooks[actionTypeOk] = [hook];\n } else {\n actionLifecycleHooks[actionTypeOk] = [\n ...actionLifecycleHooks[actionTypeOk],\n hook,\n ];\n }\n}\n","import { ActionType, getActionTypeFromInstance } from '@ngxs/store';\nimport { addToLifecycleHooks } from './utils';\n\nexport type Successful<A> = { action: A };\nexport type Errored<A> = { action: A; error: any };\nexport type Cancelled<A> = { action: A };\n\nexport function ActionSuccessful(actionType: ActionType) {\n addToLifecycleHooks(actionType, 'Successful');\n return class {\n static readonly type = `${getActionTypeFromInstance(\n actionType\n )} Successful`;\n constructor(public action: any) {}\n };\n}\n\nexport function ActionErrored(actionType: ActionType) {\n addToLifecycleHooks(actionType, 'Errored');\n return class {\n static readonly type = `${getActionTypeFromInstance(actionType)} Errored`;\n constructor(public action: any, public error: any) {}\n };\n}\n\nexport function ActionCancelled(actionType: ActionType) {\n addToLifecycleHooks(actionType, 'Canceled');\n return class {\n static readonly type = `${getActionTypeFromInstance(actionType)} Canceled`;\n constructor(public action: any) {}\n };\n}\n","import { Injectable } from '@angular/core';\nimport { State, Actions, Store, ofActionCompleted, getActionTypeFromInstance } from '@ngxs/store';\nimport { asapScheduler } from 'rxjs';\nimport { observeOn } from 'rxjs/operators';\nimport { ActionCancelled, ActionErrored, ActionSuccessful } from './action-decorator-helpers';\nimport { actionLifecycleHooks } from './utils';\n\n@State<any>({\n name: 'NgxsActionLifecycleHooksState',\n})\n@Injectable()\nexport class NgxsActionLifecycleHooksState {\n constructor(private actions: Actions, private store: Store) {\n const arr = Object.keys(actionLifecycleHooks).map((key) => ({ type: key }));\n this.actions.pipe(ofActionCompleted(...arr), observeOn(asapScheduler)).subscribe((actionCompletion) => {\n const actionTypeOk = getActionTypeFromInstance(actionCompletion.action) || ''\n if (\n actionCompletion.result.successful &&\n actionLifecycleHooks[actionTypeOk].includes('Successful')\n ) {\n const ActionSuccessfulClass = ActionSuccessful(actionCompletion.action);\n this.store.dispatch(new ActionSuccessfulClass(actionCompletion.action));\n }\n if (\n actionCompletion.result.error &&\n actionLifecycleHooks[actionTypeOk].includes('Errored')\n ) {\n const ActionErroredClass = ActionErrored(actionCompletion.action);\n this.store.dispatch(new ActionErroredClass(actionCompletion.action, actionCompletion.result.error));\n }\n if (\n actionCompletion.result.canceled &&\n actionLifecycleHooks[actionTypeOk].includes('Canceled')\n ) {\n const ActionCancelledClass = ActionCancelled(actionCompletion.action);\n this.store.dispatch(new ActionCancelledClass(actionCompletion.action));\n }\n });\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgxsModule } from \"@ngxs/store\";\nimport { NgxsActionLifecycleHooksState } from \"./ngxs-action-lifecycle-hooks.state\";\n\n@NgModule({\n imports: [\n CommonModule,\n NgxsModule.forFeature([NgxsActionLifecycleHooksState])\n ],\n declarations: []\n})\nexport class NgxsActionLifecycleHooksModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "@ngxs/store";
|
|
1
4
|
export declare class NgxsActionLifecycleHooksModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsActionLifecycleHooksModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxsActionLifecycleHooksModule, never, [typeof i1.CommonModule, typeof i2.ɵNgxsFeatureModule], never>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxsActionLifecycleHooksModule>;
|
|
2
8
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Actions, Store } from '@ngxs/store';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class NgxsActionLifecycleHooksState {
|
|
3
4
|
private actions;
|
|
4
5
|
private store;
|
|
5
6
|
constructor(actions: Actions, store: Store);
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsActionLifecycleHooksState, never>;
|
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgxsActionLifecycleHooksState>;
|
|
6
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngxs-labs/action-lifecycle-hooks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@ngxs/store": ">=3.4.0 <4.0.0",
|
|
6
6
|
"@angular/core": ">=8.0.0",
|
|
@@ -10,12 +10,24 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"tslib": "^2.0.0"
|
|
12
12
|
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"fesm2015": "fesm2015/ngxs-labs-action-lifecycle-hooks.
|
|
18
|
-
"typings": "
|
|
19
|
-
"
|
|
13
|
+
"module": "fesm2015/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
14
|
+
"es2020": "fesm2020/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
15
|
+
"esm2020": "esm2020/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
16
|
+
"fesm2020": "fesm2020/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
17
|
+
"fesm2015": "fesm2015/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
18
|
+
"typings": "index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
"./package.json": {
|
|
21
|
+
"default": "./package.json"
|
|
22
|
+
},
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./index.d.ts",
|
|
25
|
+
"esm2020": "./esm2020/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
26
|
+
"es2020": "./fesm2020/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
27
|
+
"es2015": "./fesm2015/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
28
|
+
"node": "./fesm2015/ngxs-labs-action-lifecycle-hooks.mjs",
|
|
29
|
+
"default": "./fesm2020/ngxs-labs-action-lifecycle-hooks.mjs"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
20
32
|
"sideEffects": false
|
|
21
33
|
}
|