ngx-easy-state-manager 0.0.2 → 0.0.3
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.
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { Injectable } from
|
|
2
|
-
import { BehaviorSubject } from
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { BehaviorSubject } from "rxjs";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class EasyStateManagerService {
|
|
5
5
|
constructor() {
|
|
6
6
|
this._store = {};
|
|
7
7
|
}
|
|
8
|
-
assignState(key, value
|
|
9
|
-
if (componentName) {
|
|
10
|
-
value = { value, componentName };
|
|
11
|
-
}
|
|
8
|
+
assignState(key, value) {
|
|
12
9
|
if (key in this._store) {
|
|
10
|
+
const storeValue = this._store[key].value;
|
|
11
|
+
// check type mismatch
|
|
12
|
+
if (storeValue && typeof storeValue !== typeof value) {
|
|
13
|
+
throw new Error(`Type mismatch: ${typeof this._store[key].value} !== ${typeof value}`);
|
|
14
|
+
}
|
|
13
15
|
this._store[key].next(value);
|
|
14
16
|
}
|
|
15
17
|
else {
|
|
@@ -20,7 +22,7 @@ export class EasyStateManagerService {
|
|
|
20
22
|
if (key && key in this._store) {
|
|
21
23
|
return this._store[key].value;
|
|
22
24
|
}
|
|
23
|
-
return
|
|
25
|
+
return undefined;
|
|
24
26
|
}
|
|
25
27
|
selectStateChange(key) {
|
|
26
28
|
if (key in this._store) {
|
|
@@ -35,12 +37,12 @@ export class EasyStateManagerService {
|
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, providedIn:
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, providedIn: "root" }); }
|
|
39
41
|
}
|
|
40
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, decorators: [{
|
|
41
43
|
type: Injectable,
|
|
42
44
|
args: [{
|
|
43
|
-
providedIn:
|
|
45
|
+
providedIn: "root",
|
|
44
46
|
}]
|
|
45
47
|
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVhc3ktc3RhdGUtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktc3RhdGUtbWFuYWdlci9zcmMvbGliL25neC1lYXN5LXN0YXRlLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyx1QkFBdUI7SUFIcEM7UUFJVSxXQUFNLEdBQVUsRUFBRSxDQUFDO0tBd0M1QjtJQXRDUSxXQUFXLENBQUksR0FBVyxFQUFFLEtBQVE7UUFDekMsSUFBSyxHQUFjLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzFDLHNCQUFzQjtZQUN0QixJQUFJLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUNiLGtCQUFrQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxRQUFRLE9BQU8sS0FBSyxFQUFFLENBQ3RFLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFJLEdBQVk7UUFDN0IsSUFBSSxHQUFHLElBQUssR0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0saUJBQWlCLENBQUksR0FBVztRQUNyQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBdUIsQ0FBQztRQUNoRCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFTLENBQUMsQ0FBQztRQUVyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXO1FBQzVCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7OEdBeENVLHVCQUF1QjtrSEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEVhc3lTdGF0ZU1hbmFnZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9zdG9yZTogU3RvcmUgPSB7fTtcclxuXHJcbiAgcHVibGljIGFzc2lnblN0YXRlPFQ+KGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgaWYgKChrZXkgYXMgc3RyaW5nKSBpbiB0aGlzLl9zdG9yZSkge1xyXG4gICAgICBjb25zdCBzdG9yZVZhbHVlID0gdGhpcy5fc3RvcmVba2V5XS52YWx1ZTtcclxuICAgICAgLy8gY2hlY2sgdHlwZSBtaXNtYXRjaFxyXG4gICAgICBpZiAoc3RvcmVWYWx1ZSAmJiB0eXBlb2Ygc3RvcmVWYWx1ZSAhPT0gdHlwZW9mIHZhbHVlKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYFR5cGUgbWlzbWF0Y2g6ICR7dHlwZW9mIHRoaXMuX3N0b3JlW2tleV0udmFsdWV9ICE9PSAke3R5cGVvZiB2YWx1ZX1gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fc3RvcmVba2V5XS5uZXh0KHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3N0b3JlW2tleV0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGF0ZTxUPihrZXk/OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmIChrZXkgJiYgKGtleSBhcyBzdHJpbmcpIGluIHRoaXMuX3N0b3JlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9zdG9yZVtrZXldLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RTdGF0ZUNoYW5nZTxUPihrZXk6IHN0cmluZyk6IEJlaGF2aW9yU3ViamVjdDxhbnk+IHtcclxuICAgIGlmIChrZXkgaW4gdGhpcy5fc3RvcmUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlW2tleV0gYXMgQmVoYXZpb3JTdWJqZWN0PFQ+O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3N0b3JlW2tleV0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KG51bGwgYXMgVCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlW2tleV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChrZXkgaW4gdGhpcy5fc3RvcmUpIHtcclxuICAgICAgZGVsZXRlIHRoaXMuX3N0b3JlW2tleV07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIFN0b3JlID0ge1xyXG4gIFtrZXk6IHN0cmluZ106IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG59O1xyXG4iXX0=
|
|
@@ -6,11 +6,13 @@ class EasyStateManagerService {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this._store = {};
|
|
8
8
|
}
|
|
9
|
-
assignState(key, value
|
|
10
|
-
if (componentName) {
|
|
11
|
-
value = { value, componentName };
|
|
12
|
-
}
|
|
9
|
+
assignState(key, value) {
|
|
13
10
|
if (key in this._store) {
|
|
11
|
+
const storeValue = this._store[key].value;
|
|
12
|
+
// check type mismatch
|
|
13
|
+
if (storeValue && typeof storeValue !== typeof value) {
|
|
14
|
+
throw new Error(`Type mismatch: ${typeof this._store[key].value} !== ${typeof value}`);
|
|
15
|
+
}
|
|
14
16
|
this._store[key].next(value);
|
|
15
17
|
}
|
|
16
18
|
else {
|
|
@@ -21,7 +23,7 @@ class EasyStateManagerService {
|
|
|
21
23
|
if (key && key in this._store) {
|
|
22
24
|
return this._store[key].value;
|
|
23
25
|
}
|
|
24
|
-
return
|
|
26
|
+
return undefined;
|
|
25
27
|
}
|
|
26
28
|
selectStateChange(key) {
|
|
27
29
|
if (key in this._store) {
|
|
@@ -36,12 +38,12 @@ class EasyStateManagerService {
|
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, providedIn:
|
|
41
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, providedIn: "root" }); }
|
|
40
42
|
}
|
|
41
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: EasyStateManagerService, decorators: [{
|
|
42
44
|
type: Injectable,
|
|
43
45
|
args: [{
|
|
44
|
-
providedIn:
|
|
46
|
+
providedIn: "root",
|
|
45
47
|
}]
|
|
46
48
|
}] });
|
|
47
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-easy-state-manager.mjs","sources":["../../../projects/ngx-easy-state-manager/src/lib/ngx-easy-state-manager.service.ts","../../../projects/ngx-easy-state-manager/src/public-api.ts","../../../projects/ngx-easy-state-manager/src/ngx-easy-state-manager.ts"],"sourcesContent":["import { Injectable } from
|
|
1
|
+
{"version":3,"file":"ngx-easy-state-manager.mjs","sources":["../../../projects/ngx-easy-state-manager/src/lib/ngx-easy-state-manager.service.ts","../../../projects/ngx-easy-state-manager/src/public-api.ts","../../../projects/ngx-easy-state-manager/src/ngx-easy-state-manager.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class EasyStateManagerService {\r\n private _store: Store = {};\r\n\r\n public assignState<T>(key: string, value: T): void {\r\n if ((key as string) in this._store) {\r\n const storeValue = this._store[key].value;\r\n // check type mismatch\r\n if (storeValue && typeof storeValue !== typeof value) {\r\n throw new Error(\r\n `Type mismatch: ${typeof this._store[key].value} !== ${typeof value}`\r\n );\r\n }\r\n\r\n this._store[key].next(value);\r\n } else {\r\n this._store[key] = new BehaviorSubject<T>(value);\r\n }\r\n }\r\n\r\n public getState<T>(key?: string): T | undefined {\r\n if (key && (key as string) in this._store) {\r\n return this._store[key].value;\r\n }\r\n return undefined;\r\n }\r\n\r\n public selectStateChange<T>(key: string): BehaviorSubject<any> {\r\n if (key in this._store) {\r\n return this._store[key] as BehaviorSubject<T>;\r\n }\r\n\r\n this._store[key] = new BehaviorSubject<T>(null as T);\r\n\r\n return this._store[key];\r\n }\r\n\r\n public deleteState(key: string): void {\r\n if (key in this._store) {\r\n delete this._store[key];\r\n }\r\n }\r\n}\r\n\r\ntype Store = {\r\n [key: string]: BehaviorSubject<any>;\r\n};\r\n","/*\r\n * Public API Surface of ngx-easy-state-manager\r\n */\r\n\r\nexport * from './lib/ngx-easy-state-manager.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;QAIU,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;AAwC5B,KAAA;IAtCQ,WAAW,CAAI,GAAW,EAAE,KAAQ,EAAA;AACzC,QAAA,IAAK,GAAc,IAAI,IAAI,CAAC,MAAM,EAAE;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;;YAE1C,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,OAAO,KAAK,EAAE;AACpD,gBAAA,MAAM,IAAI,KAAK,CACb,kBAAkB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAA,KAAA,EAAQ,OAAO,KAAK,CAAA,CAAE,CACtE,CAAC;aACH;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC;SAClD;KACF;AAEM,IAAA,QAAQ,CAAI,GAAY,EAAA;QAC7B,IAAI,GAAG,IAAK,GAAc,IAAI,IAAI,CAAC,MAAM,EAAE;YACzC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;SAC/B;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAEM,IAAA,iBAAiB,CAAI,GAAW,EAAA;AACrC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuB,CAAC;SAC/C;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAI,IAAS,CAAC,CAAC;AAErD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACzB;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzB;KACF;8GAxCU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BehaviorSubject } from "rxjs";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class EasyStateManagerService {
|
|
4
4
|
private _store;
|
|
5
|
-
assignState(key: string, value:
|
|
6
|
-
getState(key?: string):
|
|
7
|
-
selectStateChange(key: string):
|
|
5
|
+
assignState<T>(key: string, value: T): void;
|
|
6
|
+
getState<T>(key?: string): T | undefined;
|
|
7
|
+
selectStateChange<T>(key: string): BehaviorSubject<any>;
|
|
8
8
|
deleteState(key: string): void;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<EasyStateManagerService, never>;
|
|
10
10
|
static ɵprov: i0.ɵɵInjectableDeclaration<EasyStateManagerService>;
|