global-store 1.0.0-beta.21 → 1.0.0-beta.22
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/LICENSE +1 -1
- package/README.md +2 -244
- package/dist/global-store.js +2 -0
- package/dist/global-store.js.map +1 -0
- package/index.js.flow +2 -2
- package/lib/compareVersion.d.ts +2 -1
- package/lib/compareVersion.d.ts.map +1 -0
- package/lib/compareVersion.js +4 -8
- package/lib/compareVersion.js.map +1 -1
- package/lib/createAsyncStore.d.ts +3 -2
- package/lib/createAsyncStore.d.ts.map +1 -0
- package/lib/createAsyncStore.js +13 -59
- package/lib/createAsyncStore.js.map +1 -1
- package/lib/createStore.d.ts +3 -2
- package/lib/createStore.d.ts.map +1 -0
- package/lib/createStore.js +8 -13
- package/lib/createStore.js.map +1 -1
- package/lib/index.d.ts +5 -4
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +4 -22
- package/lib/index.js.map +1 -1
- package/lib/shouldInvokeInitializer.d.ts +2 -1
- package/lib/shouldInvokeInitializer.d.ts.map +1 -0
- package/lib/shouldInvokeInitializer.js +7 -11
- package/lib/shouldInvokeInitializer.js.map +1 -1
- package/lib/toVersionArray.d.ts +3 -2
- package/lib/toVersionArray.d.ts.map +1 -0
- package/lib/toVersionArray.js +2 -6
- package/lib/toVersionArray.js.map +1 -1
- package/lib/types.d.ts +8 -3
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +1 -2
- package/lib/types.js.map +1 -1
- package/lib/typesInternal.d.ts +4 -3
- package/lib/typesInternal.d.ts.map +1 -0
- package/lib/typesInternal.js +1 -2
- package/lib/typesInternal.js.map +1 -1
- package/lib/util.d.ts +4 -3
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +22 -36
- package/lib/util.js.map +1 -1
- package/package.json +44 -62
- package/dist/compareVersion.d.ts +0 -7
- package/dist/createAsyncStore.d.ts +0 -12
- package/dist/createStore.d.ts +0 -28
- package/dist/global-store.es.js +0 -127
- package/dist/global-store.es.js.map +0 -1
- package/dist/global-store.es5.js +0 -2
- package/dist/global-store.es5.js.map +0 -1
- package/dist/global-store.systemjs.js +0 -141
- package/dist/global-store.systemjs.js.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/shouldInvokeInitializer.d.ts +0 -2
- package/dist/toVersionArray.d.ts +0 -3
- package/dist/types.d.ts +0 -9
- package/dist/util.d.ts +0 -14
- package/libm/compareVersion.d.ts +0 -7
- package/libm/compareVersion.js +0 -13
- package/libm/compareVersion.js.map +0 -1
- package/libm/createAsyncStore.d.ts +0 -12
- package/libm/createAsyncStore.js +0 -27
- package/libm/createAsyncStore.js.map +0 -1
- package/libm/createStore.d.ts +0 -28
- package/libm/createStore.js +0 -16
- package/libm/createStore.js.map +0 -1
- package/libm/index.d.ts +0 -4
- package/libm/index.js +0 -5
- package/libm/index.js.map +0 -1
- package/libm/shouldInvokeInitializer.d.ts +0 -2
- package/libm/shouldInvokeInitializer.js +0 -14
- package/libm/shouldInvokeInitializer.js.map +0 -1
- package/libm/toVersionArray.d.ts +0 -3
- package/libm/toVersionArray.js +0 -5
- package/libm/toVersionArray.js.map +0 -1
- package/libm/types.d.ts +0 -9
- package/libm/types.js +0 -2
- package/libm/types.js.map +0 -1
- package/libm/typesInternal.d.ts +0 -16
- package/libm/typesInternal.js +0 -2
- package/libm/typesInternal.js.map +0 -1
- package/libm/util.d.ts +0 -14
- package/libm/util.js +0 -57
- package/libm/util.js.map +0 -1
- package/ts/compareVersion.spec.ts +0 -9
- package/ts/compareVersion.ts +0 -14
- package/ts/createAsyncStore.spec.ts +0 -142
- package/ts/createAsyncStore.ts +0 -31
- package/ts/createStore.spec.ts +0 -217
- package/ts/createStore.ts +0 -43
- package/ts/index.spec.ts +0 -7
- package/ts/index.ts +0 -5
- package/ts/shouldInvokeInitializer.spec.ts +0 -41
- package/ts/shouldInvokeInitializer.ts +0 -17
- package/ts/toVersionArray.ts +0 -8
- package/ts/types.ts +0 -12
- package/ts/typesInternal.ts +0 -21
- package/ts/util.ts +0 -69
package/lib/toVersionArray.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { StoreVersion } from './types';
|
|
2
|
-
export
|
|
1
|
+
import type { StoreVersion } from './types.js';
|
|
2
|
+
export type ParsedVersion = [number, number, number];
|
|
3
3
|
export declare function toVersionArray(v: StoreVersion): ParsedVersion;
|
|
4
|
+
//# sourceMappingURL=toVersionArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toVersionArray.d.ts","sourceRoot":"","sources":["../ts/toVersionArray.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpD,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAG7D"}
|
package/lib/toVersionArray.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toVersionArray = void 0;
|
|
4
|
-
function toVersionArray(v) {
|
|
1
|
+
export function toVersionArray(v) {
|
|
5
2
|
return typeof v === 'number' ? [0, 0, v] :
|
|
6
|
-
v.split('.').map(
|
|
3
|
+
v.split('.').map(v => parseInt(v, 10));
|
|
7
4
|
}
|
|
8
|
-
exports.toVersionArray = toVersionArray;
|
|
9
5
|
//# sourceMappingURL=toVersionArray.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toVersionArray.js","sourceRoot":"","sources":["../ts/toVersionArray.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toVersionArray.js","sourceRoot":"","sources":["../ts/toVersionArray.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAAC,CAAe;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAkB,CAAA;AAC3D,CAAC","sourcesContent":["import type { StoreVersion } from './types.js'\n\nexport type ParsedVersion = [number, number, number]\n\nexport function toVersionArray(v: StoreVersion): ParsedVersion {\n return typeof v === 'number' ? [0, 0, v] :\n v.split('.').map(v => parseInt(v, 10)) as ParsedVersion\n}\n"]}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export type StoreValue = Record<string | symbol, unknown>;
|
|
2
|
+
export type StoreVersion = `${number}.${number}.${number}` | number;
|
|
3
|
+
export type StoreInitializer<T extends StoreValue> = (current: StoreValue, processedVersions: StoreVersion[]) => T;
|
|
4
4
|
export interface StoreOptions<T extends StoreValue> {
|
|
5
5
|
moduleName: string;
|
|
6
6
|
key?: string;
|
|
7
|
+
/**
|
|
8
|
+
* The store version.
|
|
9
|
+
* It can be `major.minor.patch` (recommended) or number.
|
|
10
|
+
*/
|
|
7
11
|
version: StoreVersion;
|
|
8
12
|
initializer: StoreInitializer<T>;
|
|
9
13
|
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GAAG,MAAM,CAAA;AAEnE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;AAElH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACjC"}
|
package/lib/types.js
CHANGED
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"","sourcesContent":["export type StoreValue = Record<string | symbol, unknown>\n\nexport type StoreVersion = `${number}.${number}.${number}` | number\n\nexport type StoreInitializer<T extends StoreValue> = (current: StoreValue, processedVersions: StoreVersion[]) => T\n\nexport interface StoreOptions<T extends StoreValue> {\n moduleName: string,\n key?: string,\n /**\n * The store version.\n * It can be `major.minor.patch` (recommended) or number.\n */\n version: StoreVersion,\n initializer: StoreInitializer<T>\n}\n"]}
|
package/lib/typesInternal.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { StoreInitializer,
|
|
1
|
+
import type { StoreInitializer, StoreValue, StoreVersion } from './types.js';
|
|
2
2
|
export interface StoreId {
|
|
3
3
|
moduleName: string;
|
|
4
4
|
key?: string;
|
|
5
5
|
}
|
|
6
|
-
export
|
|
6
|
+
export type Stores = Record<StoreId['moduleName'], Record<string, {
|
|
7
7
|
versions: StoreVersion[];
|
|
8
8
|
initializers: StoreInitializer<StoreValue>[];
|
|
9
9
|
value: StoreValue;
|
|
@@ -13,4 +13,5 @@ export interface StoreCreator<S> {
|
|
|
13
13
|
resolve: (store: S) => void;
|
|
14
14
|
initializer: StoreInitializer<StoreValue>;
|
|
15
15
|
}
|
|
16
|
-
export
|
|
16
|
+
export type StoreCreators<Store> = Record<StoreId['moduleName'], Record<string, Array<StoreCreator<Store>>>>;
|
|
17
|
+
//# sourceMappingURL=typesInternal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typesInternal.d.ts","sourceRoot":"","sources":["../ts/typesInternal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5E,MAAM,WAAW,OAAO;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;AAE7D,MAAM,MAAM,MAAM,GAAG,MAAM,CACzB,OAAO,CAAC,YAAY,CAAC,EACrB,MAAM,CACJ,MAAM,EACN;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAC9F,CACF,CAAA;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;CAC1C;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,MAAM,CACvC,OAAO,CAAC,YAAY,CAAC,EACrB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
package/lib/typesInternal.js
CHANGED
package/lib/typesInternal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typesInternal.js","sourceRoot":"","sources":["../ts/typesInternal.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"typesInternal.js","sourceRoot":"","sources":["../ts/typesInternal.ts"],"names":[],"mappings":"","sourcesContent":["import type { StoreInitializer, StoreValue, StoreVersion } from './types.js'\n\nexport interface StoreId { moduleName: string, key?: string }\n\nexport type Stores = Record<\n StoreId['moduleName'],\n Record<\n string,\n { versions: StoreVersion[], initializers: StoreInitializer<StoreValue>[], value: StoreValue }\n >\n>\n\nexport interface StoreCreator<S> {\n version: StoreVersion,\n resolve: (store: S) => void,\n initializer: StoreInitializer<StoreValue>\n}\n\nexport type StoreCreators<Store> = Record<\n StoreId['moduleName'],\n Record<string, Array<StoreCreator<Store>>>>\n"]}
|
package/lib/util.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createStore } from './createStore';
|
|
2
|
-
import { StoreInitializer, StoreValue, StoreVersion } from './types';
|
|
3
|
-
import { StoreCreator, StoreId, Stores } from './typesInternal';
|
|
1
|
+
import { createStore } from './createStore.js';
|
|
2
|
+
import type { StoreInitializer, StoreValue, StoreVersion } from './types.js';
|
|
3
|
+
import type { StoreCreator, StoreId, Stores } from './typesInternal.js';
|
|
4
4
|
export declare function getStoreValue<T extends StoreValue>(stores: Stores, id: StoreId): T;
|
|
5
5
|
export declare function initStoreValue<T extends StoreValue>(stores: Stores, id: StoreId, version: StoreVersion, initializer: StoreInitializer<T>): void;
|
|
6
6
|
export declare function resetStoreValue(stores: Stores, id: StoreId): void;
|
|
@@ -12,3 +12,4 @@ export declare function getStore(stores: Stores, id: StoreId): {
|
|
|
12
12
|
export declare function resolveCreators(moduleName: string, key: string, storeCreators: Array<StoreCreator<any>>, cs: typeof createStore): void;
|
|
13
13
|
export declare function sortByVersion<S>(storeCreators: Array<StoreCreator<S>>): StoreCreator<S>[];
|
|
14
14
|
export declare function freezeStoreValue(stores: Stores, id: StoreId, value?: StoreValue): void;
|
|
15
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../ts/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEvE,wBAAgB,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,CAElF;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAOxI;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,QAS1D;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO;;;;EAInD;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,WAAW,QAE/H;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,qBAErE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,UAAU,QAK/E"}
|
package/lib/util.js
CHANGED
|
@@ -1,69 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var compareVersion_1 = require("./compareVersion");
|
|
5
|
-
var shouldInvokeInitializer_1 = require("./shouldInvokeInitializer");
|
|
6
|
-
function getStoreValue(stores, id) {
|
|
1
|
+
import { compareVersion } from './compareVersion.js';
|
|
2
|
+
import { shouldInvokeInitializer } from './shouldInvokeInitializer.js';
|
|
3
|
+
export function getStoreValue(stores, id) {
|
|
7
4
|
return getStore(stores, id).value;
|
|
8
5
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if ((0, shouldInvokeInitializer_1.shouldInvokeInitializer)(store.versions, version)) {
|
|
6
|
+
export function initStoreValue(stores, id, version, initializer) {
|
|
7
|
+
const store = getStore(stores, id);
|
|
8
|
+
if (shouldInvokeInitializer(store.versions, version)) {
|
|
13
9
|
store.initializers.push(initializer);
|
|
14
10
|
store.value = initializer(store.value, store.versions);
|
|
15
11
|
store.versions.push(version);
|
|
16
12
|
}
|
|
17
13
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var versions = store.versions;
|
|
14
|
+
export function resetStoreValue(stores, id) {
|
|
15
|
+
const store = getStore(stores, id);
|
|
16
|
+
const versions = store.versions;
|
|
22
17
|
store.versions = [];
|
|
23
|
-
store.value = store.initializers.reduce(
|
|
18
|
+
store.value = store.initializers.reduce((value, initializer, i) => {
|
|
24
19
|
value = initializer(value, store.versions);
|
|
25
20
|
store.versions.push(versions[i]);
|
|
26
21
|
return value;
|
|
27
22
|
}, {});
|
|
28
23
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var moduleStore = stores[id.moduleName] = stores[id.moduleName] || Object.create(null);
|
|
33
|
-
var key = (_a = id.key) !== null && _a !== void 0 ? _a : 'default';
|
|
24
|
+
export function getStore(stores, id) {
|
|
25
|
+
const moduleStore = stores[id.moduleName] = stores[id.moduleName] || Object.create(null);
|
|
26
|
+
const key = id.key ?? 'default';
|
|
34
27
|
return moduleStore[key] = moduleStore[key] || { versions: [], value: {}, initializers: [] };
|
|
35
28
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
sortByVersion(storeCreators).forEach(function (_a) {
|
|
39
|
-
var version = _a.version, resolve = _a.resolve, initializer = _a.initializer;
|
|
40
|
-
return resolve(cs({ moduleName: moduleName, key: key, version: version, initializer: initializer }));
|
|
41
|
-
});
|
|
29
|
+
export function resolveCreators(moduleName, key, storeCreators, cs) {
|
|
30
|
+
sortByVersion(storeCreators).forEach(({ version, resolve, initializer }) => resolve(cs({ moduleName, key, version, initializer })));
|
|
42
31
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return storeCreators.sort(function (a, b) { return (0, compareVersion_1.compareVersion)(a.version, b.version); });
|
|
32
|
+
export function sortByVersion(storeCreators) {
|
|
33
|
+
return storeCreators.sort((a, b) => compareVersion(a.version, b.version));
|
|
46
34
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var store = getStore(stores, id);
|
|
35
|
+
export function freezeStoreValue(stores, id, value) {
|
|
36
|
+
const store = getStore(stores, id);
|
|
50
37
|
store.value = value ?
|
|
51
38
|
Object.isFrozen(value) ? value : Object.freeze(value) :
|
|
52
39
|
freezeValue(store.value);
|
|
53
40
|
}
|
|
54
|
-
exports.freezeStoreValue = freezeStoreValue;
|
|
55
41
|
function freezeValue(storeValue) {
|
|
56
42
|
if (Object.isFrozen(storeValue))
|
|
57
43
|
throw TypeError('Frozen value cannot be freezed again');
|
|
58
|
-
Object.keys(storeValue).forEach(
|
|
44
|
+
Object.keys(storeValue).forEach(k => freezeIfIsArray(storeValue, k));
|
|
59
45
|
// istanbul ignore next
|
|
60
46
|
if (Object.getOwnPropertySymbols) {
|
|
61
|
-
Object.getOwnPropertySymbols(storeValue).forEach(
|
|
47
|
+
Object.getOwnPropertySymbols(storeValue).forEach(k => freezeIfIsArray(storeValue, k));
|
|
62
48
|
}
|
|
63
49
|
return Object.freeze(storeValue);
|
|
64
50
|
}
|
|
65
51
|
function freezeIfIsArray(storeValue, k) {
|
|
66
|
-
|
|
52
|
+
const value = storeValue[k];
|
|
67
53
|
if (Array.isArray(value)) {
|
|
68
54
|
storeValue[k] = Object.freeze(value);
|
|
69
55
|
}
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../ts/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../ts/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { compareVersion } from './compareVersion.js'\nimport { createStore } from './createStore.js'\nimport { shouldInvokeInitializer } from './shouldInvokeInitializer.js'\nimport type { StoreInitializer, StoreValue, StoreVersion } from './types.js'\nimport type { StoreCreator, StoreId, Stores } from './typesInternal.js'\n\nexport function getStoreValue<T extends StoreValue>(stores: Stores, id: StoreId): T {\n return getStore(stores, id).value as T\n}\n\nexport function initStoreValue<T extends StoreValue>(stores: Stores, id: StoreId, version: StoreVersion, initializer: StoreInitializer<T>) {\n const store = getStore(stores, id)\n if (shouldInvokeInitializer(store.versions, version)) {\n store.initializers.push(initializer as StoreInitializer<StoreValue>)\n store.value = initializer(store.value as T, store.versions)\n store.versions.push(version)\n }\n}\n\nexport function resetStoreValue(stores: Stores, id: StoreId) {\n const store = getStore(stores, id)\n const versions = store.versions\n store.versions = []\n store.value = store.initializers.reduce<StoreValue>((value, initializer, i) => {\n value = initializer(value, store.versions)\n store.versions.push(versions[i])\n return value\n }, {})\n}\n\nexport function getStore(stores: Stores, id: StoreId) {\n const moduleStore = stores[id.moduleName] = stores[id.moduleName] || Object.create(null)\n const key = id.key ?? 'default'\n return moduleStore[key] = moduleStore[key] || { versions: [], value: {}, initializers: [] }\n}\n\nexport function resolveCreators(moduleName: string, key: string, storeCreators: Array<StoreCreator<any>>, cs: typeof createStore) {\n sortByVersion(storeCreators).forEach(({ version, resolve, initializer }) => resolve(cs({ moduleName, key, version, initializer })))\n}\n\nexport function sortByVersion<S>(storeCreators: Array<StoreCreator<S>>) {\n return storeCreators.sort((a, b) => compareVersion(a.version, b.version))\n}\n\nexport function freezeStoreValue(stores: Stores, id: StoreId, value?: StoreValue) {\n const store = getStore(stores, id)\n store.value = value ?\n Object.isFrozen(value) ? value : Object.freeze(value) :\n freezeValue(store.value)\n}\n\nfunction freezeValue(storeValue: StoreValue) {\n if (Object.isFrozen(storeValue)) throw TypeError('Frozen value cannot be freezed again')\n\n Object.keys(storeValue).forEach(k => freezeIfIsArray(storeValue, k))\n // istanbul ignore next\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(storeValue).forEach(k => freezeIfIsArray(storeValue, k))\n }\n\n return Object.freeze(storeValue)\n}\n\nfunction freezeIfIsArray(storeValue: StoreValue, k: string | number | symbol) {\n const value = storeValue[k]\n if (Array.isArray(value)) {\n storeValue[k] = Object.freeze(value)\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "global-store",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.22",
|
|
4
4
|
"description": "A library provides version stable stores for libraries.",
|
|
5
5
|
"homepage": "https://github.com/unional/global-store",
|
|
6
6
|
"bugs": {
|
|
@@ -15,78 +15,60 @@
|
|
|
15
15
|
"name": "Homa Wong",
|
|
16
16
|
"email": "homawong@gmail.com"
|
|
17
17
|
},
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"types": "
|
|
18
|
+
"sideEffects": true,
|
|
19
|
+
"type": "module",
|
|
20
|
+
"exports": "./lib/index.js",
|
|
21
|
+
"types": "./lib/index.d.ts",
|
|
22
22
|
"files": [
|
|
23
23
|
"dist",
|
|
24
24
|
"lib",
|
|
25
|
-
"libm",
|
|
26
25
|
"index.js.flow",
|
|
27
|
-
"
|
|
26
|
+
"!**/*.spec.*"
|
|
28
27
|
],
|
|
29
|
-
"scripts": {
|
|
30
|
-
"build": "run-p build:es5 build:esnext bundle",
|
|
31
|
-
"build:es5": "tsc -p tsconfig.es5.json",
|
|
32
|
-
"build:esnext": "tsc -p tsconfig.esnext.json",
|
|
33
|
-
"bundle": "run-p bundle:webpack bundle:rollup",
|
|
34
|
-
"bundle:webpack": "webpack",
|
|
35
|
-
"bundle:rollup": "rollup -c rollup.config.mjs",
|
|
36
|
-
"clean": "rimraf dist lib libm",
|
|
37
|
-
"coverage": "jest --coverage",
|
|
38
|
-
"cs": "changeset",
|
|
39
|
-
"depcheck": "depcheck",
|
|
40
|
-
"lint": "eslint --ext=js,ts .",
|
|
41
|
-
"_postinstall": "husky install",
|
|
42
|
-
"prepack": "pinst --disable",
|
|
43
|
-
"postpack": "pinst --enable",
|
|
44
|
-
"size": "size-limit",
|
|
45
|
-
"test": "jest",
|
|
46
|
-
"test:watch": "jest --watch",
|
|
47
|
-
"verify": "npm-run-all clean -p build:es5 build:esnext -p size bundle lint depcheck coverage",
|
|
48
|
-
"watch": "yarn test:watch"
|
|
49
|
-
},
|
|
50
28
|
"devDependencies": {
|
|
51
|
-
"@babel/core": "^7.
|
|
52
|
-
"@babel/
|
|
53
|
-
"@babel/
|
|
54
|
-
"@
|
|
55
|
-
"@
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"assertron": "^9.0.0",
|
|
29
|
+
"@babel/core": "^7.18.10",
|
|
30
|
+
"@babel/plugin-syntax-flow": "^7.18.6",
|
|
31
|
+
"@babel/plugin-transform-react-jsx": "^7.18.10",
|
|
32
|
+
"@repobuddy/jest": "^3.3.0",
|
|
33
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
34
|
+
"@size-limit/preset-small-lib": "^8.0.1",
|
|
35
|
+
"@types/jest": "^29.5.1",
|
|
36
|
+
"assertron": "^11.0.0",
|
|
37
|
+
"cross-env": "^7.0.3",
|
|
61
38
|
"depcheck": "^1.4.3",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"eslint-plugin-harmony": "^7.0.2",
|
|
65
|
-
"husky": "^8.0.1",
|
|
66
|
-
"jest": "^28.0.0",
|
|
67
|
-
"jest-junit": "^13.0.0",
|
|
68
|
-
"jest-validate": "^28.0.0",
|
|
39
|
+
"jest": "^29.5.0",
|
|
40
|
+
"jest-junit": "^16.0.0",
|
|
69
41
|
"jest-watch-suspend": "^1.1.2",
|
|
70
|
-
"jest-watch-toggle-config": "^2.0
|
|
71
|
-
"jest-watch-typeahead": "^
|
|
42
|
+
"jest-watch-toggle-config-2": "^2.1.0",
|
|
43
|
+
"jest-watch-typeahead": "^2.2.2",
|
|
72
44
|
"npm-run-all": "^4.1.5",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"type-plus": "^4.0.0",
|
|
82
|
-
"typescript": "^4.5.4",
|
|
83
|
-
"webpack": "^5.64.4",
|
|
84
|
-
"webpack-cli": "^4.9.1"
|
|
45
|
+
"rimraf": "^5.0.0",
|
|
46
|
+
"rollup": "^2.78.0",
|
|
47
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
48
|
+
"size-limit": "^8.0.1",
|
|
49
|
+
"ts-jest": "^29.1.0",
|
|
50
|
+
"tslib": "^2.4.0",
|
|
51
|
+
"type-plus": "^6.0.0",
|
|
52
|
+
"typescript": "5.0.4"
|
|
85
53
|
},
|
|
86
54
|
"size-limit": [
|
|
87
55
|
{
|
|
88
|
-
"
|
|
56
|
+
"path": "./lib/index.js",
|
|
57
|
+
"limit": "2 KB"
|
|
89
58
|
}
|
|
90
59
|
],
|
|
91
|
-
"
|
|
92
|
-
|
|
60
|
+
"scripts": {
|
|
61
|
+
"build": "run-p build:ts bundle",
|
|
62
|
+
"build:ts": "tsc",
|
|
63
|
+
"bundle": "rollup -c rollup.config.mjs",
|
|
64
|
+
"clean": "rimraf cjs coverage dist esm tslib lib libm --glob *.tsbuildinfo",
|
|
65
|
+
"coverage": "jest --coverage",
|
|
66
|
+
"depcheck": "depcheck",
|
|
67
|
+
"lint": "cross-env TIMING=1 eslint --ext=js,cjs,mjs,ts,tsx,ctx,mtx,yaml,yml .",
|
|
68
|
+
"size": "size-limit",
|
|
69
|
+
"test": "jest",
|
|
70
|
+
"test:watch": "jest --watch",
|
|
71
|
+
"verify": "npm-run-all clean -p build lint depcheck coverage -p size",
|
|
72
|
+
"w": "pnpm test:watch"
|
|
73
|
+
}
|
|
74
|
+
}
|
package/dist/compareVersion.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Store } from './createStore';
|
|
2
|
-
import { StoreOptions, StoreValue } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Creates a store of type T asynchronously.
|
|
5
|
-
* @see https://github.com/unional/global-store#createAsyncStore
|
|
6
|
-
*/
|
|
7
|
-
export declare function createAsyncStore<T extends StoreValue>({ moduleName, key, version, initializer }: StoreOptions<T>): Promise<Store<T>>;
|
|
8
|
-
/**
|
|
9
|
-
* Initializes the stores for `createAsyncStore()`.
|
|
10
|
-
* @see https://github.com/unional/global-store#initializeAsyncStore
|
|
11
|
-
*/
|
|
12
|
-
export declare function initializeAsyncStore(moduleName: string, key?: string): void;
|
package/dist/createStore.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { StoreOptions, StoreValue } from './types';
|
|
2
|
-
export declare type Store<T extends StoreValue> = {
|
|
3
|
-
/**
|
|
4
|
-
* The store value.
|
|
5
|
-
*/
|
|
6
|
-
readonly value: T;
|
|
7
|
-
/**
|
|
8
|
-
* Freezes the store value.
|
|
9
|
-
* @param value Optional new store value.
|
|
10
|
-
* If supplied, this value will be freezed and used as the store value.
|
|
11
|
-
* You can use this update the store value and freeze part of it.
|
|
12
|
-
* If not supplied,
|
|
13
|
-
* the original value will be freezed and its array property will also be freezed.
|
|
14
|
-
*/
|
|
15
|
-
freeze(value?: {
|
|
16
|
-
[k in keyof T]: Readonly<T[k]>;
|
|
17
|
-
}): void;
|
|
18
|
-
/**
|
|
19
|
-
* Resets the store to its initial value.
|
|
20
|
-
* You should only use this during testing.
|
|
21
|
-
*/
|
|
22
|
-
reset(): void;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Creates a store of type T.
|
|
26
|
-
* @see https://www.npmjs.com/package/global-store
|
|
27
|
-
*/
|
|
28
|
-
export declare function createStore<T extends StoreValue>({ moduleName, key, version, initializer }: StoreOptions<T>): Store<T>;
|
package/dist/global-store.es.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
function toVersionArray(v) {
|
|
2
|
-
return typeof v === 'number' ? [0, 0, v] :
|
|
3
|
-
v.split('.').map(v => parseInt(v, 10));
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Compare version.
|
|
8
|
-
* Positive when processed > current
|
|
9
|
-
* Negative when processed < current
|
|
10
|
-
*/
|
|
11
|
-
function compareVersion(processed, current) {
|
|
12
|
-
const v1 = toVersionArray(processed);
|
|
13
|
-
const v2 = toVersionArray(current);
|
|
14
|
-
return v1[0] !== v2[0] ? v1[0] - v2[0] :
|
|
15
|
-
v1[1] !== v2[1] ? v1[1] - v2[1] : v1[2] - v2[2];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function shouldInvokeInitializer(versions, version) {
|
|
19
|
-
const vs = versions.map(toVersionArray);
|
|
20
|
-
const v = toVersionArray(version);
|
|
21
|
-
return noMatchMajor(vs, v) || hasNewVersion(vs, v);
|
|
22
|
-
}
|
|
23
|
-
function noMatchMajor(versions, version) {
|
|
24
|
-
return !versions.some(v => v[0] === version[0]);
|
|
25
|
-
}
|
|
26
|
-
function hasNewVersion(versions, version) {
|
|
27
|
-
return versions.filter(v => v[0] === version[0])
|
|
28
|
-
.some(v => version[1] > v[1] || (version[1] === v[1] && version[2] > v[2]));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function getStoreValue(stores, id) {
|
|
32
|
-
return getStore(stores, id).value;
|
|
33
|
-
}
|
|
34
|
-
function initStoreValue(stores, id, version, initializer) {
|
|
35
|
-
const store = getStore(stores, id);
|
|
36
|
-
if (shouldInvokeInitializer(store.versions, version)) {
|
|
37
|
-
store.initializers.push(initializer);
|
|
38
|
-
store.value = initializer(store.value, store.versions);
|
|
39
|
-
store.versions.push(version);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function resetStoreValue(stores, id) {
|
|
43
|
-
const store = getStore(stores, id);
|
|
44
|
-
const versions = store.versions;
|
|
45
|
-
store.versions = [];
|
|
46
|
-
store.value = store.initializers.reduce((value, initializer, i) => {
|
|
47
|
-
value = initializer(value, store.versions);
|
|
48
|
-
store.versions.push(versions[i]);
|
|
49
|
-
return value;
|
|
50
|
-
}, {});
|
|
51
|
-
}
|
|
52
|
-
function getStore(stores, id) {
|
|
53
|
-
const moduleStore = stores[id.moduleName] = stores[id.moduleName] || Object.create(null);
|
|
54
|
-
const key = id.key ?? 'default';
|
|
55
|
-
return moduleStore[key] = moduleStore[key] || { versions: [], value: {}, initializers: [] };
|
|
56
|
-
}
|
|
57
|
-
function resolveCreators(moduleName, key, storeCreators, cs) {
|
|
58
|
-
sortByVersion(storeCreators).forEach(({ version, resolve, initializer }) => resolve(cs({ moduleName, key, version, initializer })));
|
|
59
|
-
}
|
|
60
|
-
function sortByVersion(storeCreators) {
|
|
61
|
-
return storeCreators.sort((a, b) => compareVersion(a.version, b.version));
|
|
62
|
-
}
|
|
63
|
-
function freezeStoreValue(stores, id, value) {
|
|
64
|
-
const store = getStore(stores, id);
|
|
65
|
-
store.value = value ?
|
|
66
|
-
Object.isFrozen(value) ? value : Object.freeze(value) :
|
|
67
|
-
freezeValue(store.value);
|
|
68
|
-
}
|
|
69
|
-
function freezeValue(storeValue) {
|
|
70
|
-
if (Object.isFrozen(storeValue))
|
|
71
|
-
throw TypeError('Frozen value cannot be freezed again');
|
|
72
|
-
Object.keys(storeValue).forEach(k => freezeIfIsArray(storeValue, k));
|
|
73
|
-
// istanbul ignore next
|
|
74
|
-
if (Object.getOwnPropertySymbols) {
|
|
75
|
-
Object.getOwnPropertySymbols(storeValue).forEach(k => freezeIfIsArray(storeValue, k));
|
|
76
|
-
}
|
|
77
|
-
return Object.freeze(storeValue);
|
|
78
|
-
}
|
|
79
|
-
function freezeIfIsArray(storeValue, k) {
|
|
80
|
-
const value = storeValue[k];
|
|
81
|
-
if (Array.isArray(value)) {
|
|
82
|
-
storeValue[k] = Object.freeze(value);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const stores = Object.create(null);
|
|
87
|
-
/**
|
|
88
|
-
* Creates a store of type T.
|
|
89
|
-
* @see https://www.npmjs.com/package/global-store
|
|
90
|
-
*/
|
|
91
|
-
function createStore({ moduleName, key, version, initializer }) {
|
|
92
|
-
const id = { moduleName, key };
|
|
93
|
-
initStoreValue(stores, id, version, initializer);
|
|
94
|
-
return {
|
|
95
|
-
get value() { return getStoreValue(stores, id); },
|
|
96
|
-
freeze(value) { return freezeStoreValue(stores, id, value); },
|
|
97
|
-
reset() { return resetStoreValue(stores, id); }
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const asyncStoreCreators = Object.create(null);
|
|
102
|
-
/**
|
|
103
|
-
* Creates a store of type T asynchronously.
|
|
104
|
-
* @see https://github.com/unional/global-store#createAsyncStore
|
|
105
|
-
*/
|
|
106
|
-
async function createAsyncStore({ moduleName, key, version, initializer }) {
|
|
107
|
-
return new Promise(resolve => {
|
|
108
|
-
const creatorsOfModules = asyncStoreCreators[moduleName] = asyncStoreCreators[moduleName] || Object.create(null);
|
|
109
|
-
const k = key ?? 'default';
|
|
110
|
-
const storeCreators = creatorsOfModules[k] = creatorsOfModules[k] || [];
|
|
111
|
-
storeCreators.push({ version, resolve, initializer });
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Initializes the stores for `createAsyncStore()`.
|
|
116
|
-
* @see https://github.com/unional/global-store#initializeAsyncStore
|
|
117
|
-
*/
|
|
118
|
-
function initializeAsyncStore(moduleName, key) {
|
|
119
|
-
const creatorsOfModules = asyncStoreCreators[moduleName];
|
|
120
|
-
if (!creatorsOfModules)
|
|
121
|
-
return;
|
|
122
|
-
const keys = key ? [key] : Object.keys(creatorsOfModules);
|
|
123
|
-
keys.forEach(key => resolveCreators(moduleName, key, creatorsOfModules[key], createStore));
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export { createAsyncStore, createStore, createStore as default, initializeAsyncStore };
|
|
127
|
-
//# sourceMappingURL=global-store.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-store.es.js","sources":["../ts/toVersionArray.ts","../ts/compareVersion.ts","../ts/shouldInvokeInitializer.ts","../ts/util.ts","../ts/createStore.ts","../ts/createAsyncStore.ts"],"sourcesContent":["import { StoreVersion } from './types'\n\nexport type ParsedVersion = [number, number, number]\n\nexport function toVersionArray(v: StoreVersion): ParsedVersion {\n return typeof v === 'number' ? [0, 0, v] :\n v.split('.').map(v => parseInt(v, 10)) as ParsedVersion\n}\n","import { toVersionArray } from './toVersionArray'\nimport { StoreVersion } from './types'\n\n/**\n * Compare version.\n * Positive when processed > current\n * Negative when processed < current\n */\nexport function compareVersion(processed: StoreVersion, current: StoreVersion) {\n const v1 = toVersionArray(processed)\n const v2 = toVersionArray(current)\n return v1[0] !== v2[0] ? v1[0] - v2[0] :\n v1[1] !== v2[1] ? v1[1] - v2[1] : v1[2] - v2[2]\n}\n","import { ParsedVersion, toVersionArray } from './toVersionArray'\nimport { StoreVersion } from './types'\n\nexport function shouldInvokeInitializer(versions: StoreVersion[], version: StoreVersion) {\n const vs = versions.map(toVersionArray)\n const v = toVersionArray(version)\n return noMatchMajor(vs, v) || hasNewVersion(vs, v)\n}\n\nfunction noMatchMajor(versions: ParsedVersion[], version: ParsedVersion) {\n return !versions.some(v => v[0] === version[0])\n}\n\nfunction hasNewVersion(versions: ParsedVersion[], version: ParsedVersion) {\n return versions.filter(v => v[0] === version[0])\n .some(v => version[1] > v[1] || (version[1] === v[1] && version[2] > v[2]))\n}\n","import { compareVersion } from './compareVersion'\nimport { createStore } from './createStore'\nimport { shouldInvokeInitializer } from './shouldInvokeInitializer'\nimport { StoreInitializer, StoreValue, StoreVersion } from './types'\nimport { StoreCreator, StoreId, Stores } from './typesInternal'\n\nexport function getStoreValue<T extends StoreValue>(stores: Stores, id: StoreId): T {\n return getStore(stores, id).value as T\n}\n\nexport function initStoreValue<T extends StoreValue>(stores: Stores, id: StoreId, version: StoreVersion, initializer: StoreInitializer<T>) {\n const store = getStore(stores, id)\n if (shouldInvokeInitializer(store.versions, version)) {\n store.initializers.push(initializer as StoreInitializer<StoreValue>)\n store.value = initializer(store.value as T, store.versions)\n store.versions.push(version)\n }\n}\n\nexport function resetStoreValue(stores: Stores, id: StoreId) {\n const store = getStore(stores, id)\n const versions = store.versions\n store.versions = []\n store.value = store.initializers.reduce<StoreValue>((value, initializer, i) => {\n value = initializer(value, store.versions)\n store.versions.push(versions[i])\n return value\n }, {})\n}\n\nexport function getStore(stores: Stores, id: StoreId) {\n const moduleStore = stores[id.moduleName] = stores[id.moduleName] || Object.create(null)\n const key = id.key ?? 'default'\n return moduleStore[key] = moduleStore[key] || { versions: [], value: {}, initializers: [] }\n}\n\nexport function resolveCreators(moduleName: string, key: string, storeCreators: Array<StoreCreator<any>>, cs: typeof createStore) {\n sortByVersion(storeCreators).forEach(({ version, resolve, initializer }) => resolve(cs({ moduleName, key, version, initializer })))\n}\n\nexport function sortByVersion<S>(storeCreators: Array<StoreCreator<S>>) {\n return storeCreators.sort((a, b) => compareVersion(a.version, b.version))\n}\n\nexport function freezeStoreValue(stores: Stores, id: StoreId, value?: StoreValue) {\n const store = getStore(stores, id)\n store.value = value ?\n Object.isFrozen(value) ? value : Object.freeze(value) :\n freezeValue(store.value)\n}\n\nfunction freezeValue(storeValue: StoreValue) {\n if (Object.isFrozen(storeValue)) throw TypeError('Frozen value cannot be freezed again')\n\n Object.keys(storeValue).forEach(k => freezeIfIsArray(storeValue, k))\n // istanbul ignore next\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(storeValue).forEach(k => freezeIfIsArray(storeValue, k))\n }\n\n return Object.freeze(storeValue)\n}\n\nfunction freezeIfIsArray(storeValue: StoreValue, k: string | number | symbol) {\n const value = storeValue[k]\n if (Array.isArray(value)) {\n storeValue[k] = Object.freeze(value)\n }\n}\n","import { StoreOptions, StoreValue } from './types'\nimport { Stores } from './typesInternal'\nimport { freezeStoreValue, getStoreValue, initStoreValue, resetStoreValue } from './util'\n\nexport type Store<T extends StoreValue> = {\n /**\n * The store value.\n */\n readonly value: T,\n /**\n * Freezes the store value.\n * @param value Optional new store value.\n * If supplied, this value will be freezed and used as the store value.\n * You can use this update the store value and freeze part of it.\n * If not supplied,\n * the original value will be freezed and its array property will also be freezed.\n */\n freeze(value?: { [k in keyof T]: Readonly<T[k]> }): void,\n /**\n * Resets the store to its initial value.\n * You should only use this during testing.\n */\n reset(): void,\n}\n\nconst stores = Object.create(null) as Stores\n\n/**\n * Creates a store of type T.\n * @see https://www.npmjs.com/package/global-store\n */\nexport function createStore<\n T extends StoreValue\n>({ moduleName, key, version, initializer }: StoreOptions<T>): Store<T> {\n const id = { moduleName, key }\n initStoreValue(stores, id, version, initializer)\n\n return {\n get value() { return getStoreValue<T>(stores, id) },\n freeze(value) { return freezeStoreValue(stores, id, value) },\n reset() { return resetStoreValue(stores, id) }\n }\n}\n","import { createStore, Store } from './createStore'\nimport { StoreOptions, StoreValue } from './types'\nimport { StoreCreators } from './typesInternal'\nimport { resolveCreators } from './util'\n\nconst asyncStoreCreators = Object.create(null) as StoreCreators<Store<any>>\n\n/**\n * Creates a store of type T asynchronously.\n * @see https://github.com/unional/global-store#createAsyncStore\n */\nexport async function createAsyncStore<T extends StoreValue>({ moduleName, key, version, initializer }: StoreOptions<T>): Promise<Store<T>> {\n return new Promise(resolve => {\n const creatorsOfModules = asyncStoreCreators[moduleName] = asyncStoreCreators[moduleName] || Object.create(null)\n const k = key ?? 'default'\n const storeCreators = creatorsOfModules[k] = creatorsOfModules[k] || []\n storeCreators.push({ version, resolve, initializer })\n })\n}\n\n/**\n * Initializes the stores for `createAsyncStore()`.\n * @see https://github.com/unional/global-store#initializeAsyncStore\n */\nexport function initializeAsyncStore(moduleName: string, key?: string) {\n const creatorsOfModules = asyncStoreCreators[moduleName]\n if (!creatorsOfModules) return\n\n const keys = key ? [key] : Object.keys(creatorsOfModules)\n keys.forEach(key => resolveCreators(moduleName, key, creatorsOfModules[key], createStore))\n}\n"],"names":[],"mappings":"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"}
|
package/dist/global-store.es5.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var GlobalStore;(()=>{"use strict";var e={629:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.compareVersion=void 0;var n=t(487);r.compareVersion=function(e,r){var t=(0,n.toVersionArray)(e),o=(0,n.toVersionArray)(r);return t[0]!==o[0]?t[0]-o[0]:t[1]!==o[1]?t[1]-o[1]:t[2]-o[2]}},490:function(e,r,t){var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(o,i){function u(e){try{l(n.next(e))}catch(e){i(e)}}function a(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(u,a)}l((n=n.apply(e,r||[])).next())}))},o=this&&this.__generator||function(e,r){var t,n,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;u;)try{if(t=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,n=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!((o=(o=u.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=r.call(e,u)}catch(e){i=[6,e],n=0}finally{t=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.initializeAsyncStore=r.createAsyncStore=void 0;var i=t(817),u=t(128),a=Object.create(null);r.createAsyncStore=function(e){var r=e.moduleName,t=e.key,i=e.version,u=e.initializer;return n(this,void 0,Promise,(function(){return o(this,(function(e){return[2,new Promise((function(e){var n=a[r]=a[r]||Object.create(null),o=null!=t?t:"default";(n[o]=n[o]||[]).push({version:i,resolve:e,initializer:u})}))]}))}))},r.initializeAsyncStore=function(e,r){var t=a[e];t&&(r?[r]:Object.keys(t)).forEach((function(r){return(0,u.resolveCreators)(e,r,t[r],i.createStore)}))}},817:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.createStore=void 0;var n=t(128),o=Object.create(null);r.createStore=function(e){var r=e.moduleName,t=e.key,i=e.version,u=e.initializer,a={moduleName:r,key:t};return(0,n.initStoreValue)(o,a,i,u),{get value(){return(0,n.getStoreValue)(o,a)},freeze:function(e){return(0,n.freezeStoreValue)(o,a,e)},reset:function(){return(0,n.resetStoreValue)(o,a)}}}},733:function(e,r,t){var n=this&&this.__createBinding||(Object.create?function(e,r,t,n){void 0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){void 0===n&&(n=t),e[n]=r[t]}),o=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||n(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,o(t(490),r),o(t(817),r);var i=t(817);Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i.createStore}}),o(t(171),r)},420:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.shouldInvokeInitializer=void 0;var n=t(487);r.shouldInvokeInitializer=function(e,r){var t=e.map(n.toVersionArray),o=(0,n.toVersionArray)(r);return function(e,r){return!e.some((function(e){return e[0]===r[0]}))}(t,o)||function(e,r){return e.filter((function(e){return e[0]===r[0]})).some((function(e){return r[1]>e[1]||r[1]===e[1]&&r[2]>e[2]}))}(t,o)}},487:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.toVersionArray=void 0,r.toVersionArray=function(e){return"number"==typeof e?[0,0,e]:e.split(".").map((function(e){return parseInt(e,10)}))}},171:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})},128:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.freezeStoreValue=r.sortByVersion=r.resolveCreators=r.getStore=r.resetStoreValue=r.initStoreValue=r.getStoreValue=void 0;var n=t(629),o=t(420);function i(e,r){var t,n=e[r.moduleName]=e[r.moduleName]||Object.create(null),o=null!==(t=r.key)&&void 0!==t?t:"default";return n[o]=n[o]||{versions:[],value:{},initializers:[]}}function u(e){return e.sort((function(e,r){return(0,n.compareVersion)(e.version,r.version)}))}function a(e,r){var t=e[r];Array.isArray(t)&&(e[r]=Object.freeze(t))}r.getStoreValue=function(e,r){return i(e,r).value},r.initStoreValue=function(e,r,t,n){var u=i(e,r);(0,o.shouldInvokeInitializer)(u.versions,t)&&(u.initializers.push(n),u.value=n(u.value,u.versions),u.versions.push(t))},r.resetStoreValue=function(e,r){var t=i(e,r),n=t.versions;t.versions=[],t.value=t.initializers.reduce((function(e,r,o){return e=r(e,t.versions),t.versions.push(n[o]),e}),{})},r.getStore=i,r.resolveCreators=function(e,r,t,n){u(t).forEach((function(t){var o=t.version,i=t.resolve,u=t.initializer;return i(n({moduleName:e,key:r,version:o,initializer:u}))}))},r.sortByVersion=u,r.freezeStoreValue=function(e,r,t){var n=i(e,r);n.value=t?Object.isFrozen(t)?t:Object.freeze(t):function(e){if(Object.isFrozen(e))throw TypeError("Frozen value cannot be freezed again");return Object.keys(e).forEach((function(r){return a(e,r)})),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach((function(r){return a(e,r)})),Object.freeze(e)}(n.value)}}},r={},t=function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n].call(i.exports,i,i.exports,t),i.exports}(733);GlobalStore=t})();
|
|
2
|
-
//# sourceMappingURL=global-store.es5.js.map
|