global-store 1.0.0-beta.21 → 1.0.0-beta.23
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/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 +5 -10
- 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 +16 -60
- 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 +14 -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 +8 -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 -7
- 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/typesInternal.d.ts +5 -4
- package/lib/typesInternal.d.ts.map +1 -0
- package/lib/typesInternal.js +1 -2
- package/lib/util.d.ts +4 -3
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +24 -40
- package/lib/util.js.map +1 -1
- package/package.json +44 -65
- package/{README.md → readme.md} +18 -20
- 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/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright
|
|
3
|
+
Copyright © 2017 unional, Homa Wong (homawong@gmail.com)
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var GlobalStore=function(e){"use strict";function n(e){return"number"==typeof e?[0,0,e]:e.split(".").map((e=>Number.parseInt(e,10)))}function r(e,r,i,o){const u=t(e,r);(function(e,r){const t=e.map(n),i=n(r);return function(e,n){return!e.some((e=>e[0]===n[0]))}(t,i)||function(e,n){return e.filter((e=>e[0]===n[0])).some((e=>n[1]>e[1]||n[1]===e[1]&&n[2]>e[2]))}(t,i)})(u.versions,i)&&(u.initializers.push(o),u.value=o(u.value,u.versions),u.versions.push(i))}function t(e,n){const r=e[n.moduleName]=e[n.moduleName]||Object.create(null),t=n.key??"default";return r[t]=r[t]||{versions:[],value:{},initializers:[]}}function i(e,r,t,i){(function(e){return e.sort(((e,r)=>function(e,r){const t=n(e),i=n(r);return t[0]!==i[0]?t[0]-i[0]:t[1]!==i[1]?t[1]-i[1]:t[2]-i[2]}(e.version,r.version)))})(t).forEach((({version:n,resolve:t,initializer:o})=>t(i({moduleName:e,key:r,version:n,initializer:o}))))}function o(e,n,r){const i=t(e,n);i.value=r?Object.isFrozen(r)?r:Object.freeze(r):function(e){if(Object.isFrozen(e))throw TypeError("Frozen value cannot be freezed again");Object.keys(e).forEach((n=>u(e,n))),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach((n=>u(e,n)));return Object.freeze(e)}(i.value)}function u(e,n){const r=e[n];Array.isArray(r)&&(e[n]=Object.freeze(r))}const s=Object.create(null);function c({moduleName:e,key:n,version:i,initializer:u}){const c={moduleName:e,key:n};return r(s,c,i,u),{get value(){return function(e,n){return t(e,n).value}(s,c)},freeze:e=>o(s,c,e),reset:()=>function(e,n){const r=t(e,n),i=r.versions;r.versions=[],r.value=r.initializers.reduce(((e,n,t)=>(e=n(e,r.versions),r.versions.push(i[t]),e)),{})}(s,c)}}const a=Object.create(null);return e.createAsyncStore=async function({moduleName:e,key:n,version:r,initializer:t}){return new Promise((i=>{const o=a[e]=a[e]||Object.create(null),u=n??"default";(o[u]=o[u]||[]).push({version:r,resolve:i,initializer:t})}))},e.createStore=c,e.default=c,e.initializeAsyncStore=function(e,n){const r=a[e];if(!r)return;if(n&&!r[n])return;(n?[n]:Object.keys(r)).forEach((n=>i(e,n,r[n],c)))},Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
2
|
+
//# sourceMappingURL=global-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-store.js","sources":["../ts/toVersionArray.ts","../ts/util.ts","../ts/shouldInvokeInitializer.ts","../ts/compareVersion.ts","../ts/createStore.ts","../ts/createAsyncStore.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["toVersionArray","v","split","map","Number","parseInt","initStoreValue","stores","id","version","initializer","store","getStore","versions","vs","some","noMatchMajor","filter","hasNewVersion","shouldInvokeInitializer","initializers","push","value","moduleStore","moduleName","Object","create","key","resolveCreators","storeCreators","cs","sort","a","b","processed","current","v1","v2","compareVersion","sortByVersion","forEach","resolve","freezeStoreValue","isFrozen","freeze","storeValue","TypeError","keys","k","freezeIfIsArray","getOwnPropertySymbols","freezeValue","Array","isArray","createStore","getStoreValue","reset","reduce","i","resetStoreValue","asyncStoreCreators","async","Promise","creatorsOfModules","s"],"mappings":"yCAIM,SAAUA,EAAeC,GAC9B,MAAoB,iBAANA,EAAiB,CAAC,EAAG,EAAGA,GAAMA,EAAEC,MAAM,KAAKC,KAAKF,GAAMG,OAAOC,SAASJ,EAAG,KACxF,CCIM,SAAUK,EACfC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAQC,EAASL,EAAQC,ICbhB,SAAwBK,EAA0BJ,GACjE,MAAMK,EAAKD,EAASV,IAAIH,GAClBC,EAAID,EAAeS,GACzB,OAGD,SAAsBI,EAA2BJ,GAChD,OAAQI,EAASE,MAAMd,GAAMA,EAAE,KAAOQ,EAAQ,IAC/C,CALQO,CAAaF,EAAIb,IAOzB,SAAuBY,EAA2BJ,GACjD,OAAOI,EACLI,QAAQhB,GAAMA,EAAE,KAAOQ,EAAQ,KAC/BM,MAAMd,GAAMQ,EAAQ,GAAKR,EAAE,IAAOQ,EAAQ,KAAOR,EAAE,IAAMQ,EAAQ,GAAKR,EAAE,IAC3E,CAX+BiB,CAAcJ,EAAIb,EACjD,EDUKkB,CAAwBR,EAAME,SAAUJ,KAC3CE,EAAMS,aAAaC,KAAKX,GACxBC,EAAMW,MAAQZ,EAAYC,EAAMW,MAAYX,EAAME,UAClDF,EAAME,SAASQ,KAAKZ,GAEtB,CAagB,SAAAG,EAASL,EAAgBC,GACxC,MAAMe,EAA+BhB,EAAOC,EAAGgB,YAAcjB,EAAOC,EAAGgB,aAAeC,OAAOC,OAAO,MAC9FC,EAAMnB,EAAGmB,KAAO,UACtB,OAAQJ,EAAYI,GAAOJ,EAAYI,IAAQ,CAAEd,SAAU,GAAIS,MAAO,CAAA,EAAIF,aAAc,GACzF,CAEM,SAAUQ,EACfJ,EACAG,EACAE,EACAC,IAOK,SAA2BD,GAChC,OAAOA,EAAcE,MAAK,CAACC,EAAGC,IE7Cf,SAAeC,EAAyBC,GACvD,MAAMC,EAAKpC,EAAekC,GACpBG,EAAKrC,EAAemC,GAC1B,OAAOC,EAAG,KAAOC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,KAAOC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,EACvF,CFyCqCC,CAAeN,EAAEvB,QAASwB,EAAExB,UACjE,EAPC8B,CAAcV,GAAeW,SAAQ,EAAG/B,UAASgC,UAAS/B,iBACzD+B,EAAQX,EAAG,CAAEN,aAAYG,MAAKlB,UAASC,kBAEzC,UAMgBgC,EAAiBnC,EAAgBC,EAAac,GAC7D,MAAMX,EAAQC,EAASL,EAAQC,GAC/BG,EAAMW,MAAQA,EAASG,OAAOkB,SAASrB,GAASA,EAAQG,OAAOmB,OAAOtB,GAGvE,SAAqBuB,GACpB,GAAIpB,OAAOkB,SAASE,GAAa,MAAMC,UAAU,wCAEjDrB,OAAOsB,KAAKF,GAAYL,SAASQ,GAAMC,EAAgBJ,EAAYG,KAE/DvB,OAAOyB,uBACVzB,OAAOyB,sBAAsBL,GAAYL,SAASQ,GAAMC,EAAgBJ,EAAYG,KAGrF,OAAOvB,OAAOmB,OAAOC,EACtB,CAbiFM,CAAYxC,EAAMW,MACnG,CAcA,SAAS2B,EAAgBJ,EAAwBG,GAChD,MAAM1B,EAAQuB,EAAWG,GACrBI,MAAMC,QAAQ/B,KACjBuB,EAAWG,GAAKvB,OAAOmB,OAAOtB,GAEhC,CGrDA,MAAMf,EAASkB,OAAOC,OAAO,MAMvB,SAAU4B,GAAkC9B,WACjDA,EAAUG,IACVA,EAAGlB,QACHA,EAAOC,YACPA,IAEA,MAAMF,EAAK,CAAEgB,aAAYG,OAGzB,OAFArB,EAAeC,EAAQC,EAAIC,EAASC,GAE7B,CACFY,YACH,OHpCa,SAAoCf,EAAgBC,GACnE,OAAOI,EAASL,EAAQC,GAAIc,KAC7B,CGkCUiC,CAAiBhD,EAAQC,EAChC,EACDoC,OAAOtB,GACCoB,EAAiBnC,EAAQC,EAAIc,GAErCkC,MAAK,IHvBS,SAAgBjD,EAAgBC,GAC/C,MAAMG,EAAQC,EAASL,EAAQC,GACzBK,EAAWF,EAAME,SACvBF,EAAME,SAAW,GACjBF,EAAMW,MAAQX,EAAMS,aAAaqC,QAAmB,CAACnC,EAAOZ,EAAagD,KACxEpC,EAAQZ,EAAYY,EAAOX,EAAME,UACjCF,EAAME,SAASQ,KAAKR,EAAS6C,IACtBpC,IACL,CAAE,EACN,CGeUqC,CAAgBpD,EAAQC,GAGlC,CC9CA,MAAMoD,EAAqBnC,OAAOC,OAAO,gCAMlCmC,gBAAsDrC,WAC5DA,EAAUG,IACVA,EAAGlB,QACHA,EAAOC,YACPA,IAEA,OAAO,IAAIoD,SAASrB,IACnB,MAAMsB,EAAqBH,EAAmBpC,GAAcoC,EAAmBpC,IAAeC,OAAOC,OAAO,MACtGsB,EAAIrB,GAAO,WACMoC,EAAkBf,GAAKe,EAAkBf,IAAM,IACxD3B,KAAK,CAAEZ,UAASgC,UAAS/B,eAAc,GAEvD,qDAMgB,SAAqBc,EAAoBG,GACxD,MAAMqC,EAAIJ,EAAmBpC,GAC7B,IAAKwC,EAAG,OACR,GAAIrC,IAAOqC,EAAErC,GAAM,QAENA,EAAM,CAACA,GAAOF,OAAOsB,KAAKiB,IAClCxB,SAASb,GAAQC,EAAgBJ,EAAYG,EAAKqC,EAAErC,GAAO2B,IACjE"}
|
package/index.js.flow
CHANGED
|
@@ -3,8 +3,8 @@ declare module 'global-store' {
|
|
|
3
3
|
declare export type StoreVersion = string | Number
|
|
4
4
|
declare export type StoreInitializer<T: StoreValue> = (current: T, processedVersions: StoreVersion[]) => T
|
|
5
5
|
|
|
6
|
-
declare export type Store<T: StoreValue> = {
|
|
7
|
-
declare export type StoreOptions<T: StoreValue> = { moduleName: string, key: string, version: StoreVersion, initializer: StoreInitializer<T> }
|
|
6
|
+
declare export type Store<T: StoreValue> = { value: $ReadOnly<T>, freeze: (value: ?$ReadOnly<T>) => void, reset(): void }
|
|
7
|
+
declare export type StoreOptions<T: StoreValue> = { moduleName: string, key: ?string, version: StoreVersion, initializer: StoreInitializer<T> }
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
declare export function createAsyncStore<T: StoreValue>(options: StoreOptions<T>): Promise<Store<T>>
|
package/lib/compareVersion.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { StoreVersion } from './types';
|
|
1
|
+
import type { StoreVersion } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Compare version.
|
|
4
4
|
* Positive when processed > current
|
|
5
5
|
* Negative when processed < current
|
|
6
6
|
*/
|
|
7
7
|
export declare function compareVersion(processed: StoreVersion, current: StoreVersion): number;
|
|
8
|
+
//# sourceMappingURL=compareVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareVersion.d.ts","sourceRoot":"","sources":["../ts/compareVersion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,UAI5E"}
|
package/lib/compareVersion.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compareVersion = void 0;
|
|
4
|
-
var toVersionArray_1 = require("./toVersionArray");
|
|
1
|
+
import { toVersionArray } from './toVersionArray.js';
|
|
5
2
|
/**
|
|
6
3
|
* Compare version.
|
|
7
4
|
* Positive when processed > current
|
|
8
5
|
* Negative when processed < current
|
|
9
6
|
*/
|
|
10
|
-
function compareVersion(processed, current) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return v1[0] !== v2[0] ? v1[0] - v2[0] :
|
|
14
|
-
v1[1] !== v2[1] ? v1[1] - v2[1] : v1[2] - v2[2];
|
|
7
|
+
export function compareVersion(processed, current) {
|
|
8
|
+
const v1 = toVersionArray(processed);
|
|
9
|
+
const v2 = toVersionArray(current);
|
|
10
|
+
return v1[0] !== v2[0] ? v1[0] - v2[0] : v1[1] !== v2[1] ? v1[1] - v2[1] : v1[2] - v2[2];
|
|
15
11
|
}
|
|
16
|
-
exports.compareVersion = compareVersion;
|
|
17
12
|
//# sourceMappingURL=compareVersion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compareVersion.js","sourceRoot":"","sources":["../ts/compareVersion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compareVersion.js","sourceRoot":"","sources":["../ts/compareVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,SAAuB,EAAE,OAAqB;IAC5E,MAAM,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAClC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;AACzF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Store } from './createStore';
|
|
2
|
-
import { StoreOptions, StoreValue } from './types';
|
|
1
|
+
import { type Store } from './createStore.js';
|
|
2
|
+
import type { StoreOptions, StoreValue } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a store of type T asynchronously.
|
|
5
5
|
* @see https://github.com/unional/global-store#createAsyncStore
|
|
@@ -10,3 +10,4 @@ export declare function createAsyncStore<T extends StoreValue>({ moduleName, key
|
|
|
10
10
|
* @see https://github.com/unional/global-store#initializeAsyncStore
|
|
11
11
|
*/
|
|
12
12
|
export declare function initializeAsyncStore(moduleName: string, key?: string): void;
|
|
13
|
+
//# sourceMappingURL=createAsyncStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAsyncStore.d.ts","sourceRoot":"","sources":["../ts/createAsyncStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAM1D;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,EAC5D,UAAU,EACV,GAAG,EACH,OAAO,EACP,WAAW,EACX,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAOrC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,QAOpE"}
|
package/lib/createAsyncStore.js
CHANGED
|
@@ -1,73 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.initializeAsyncStore = exports.createAsyncStore = void 0;
|
|
40
|
-
var createStore_1 = require("./createStore");
|
|
41
|
-
var util_1 = require("./util");
|
|
42
|
-
var asyncStoreCreators = Object.create(null);
|
|
1
|
+
import { createStore } from './createStore.js';
|
|
2
|
+
import { resolveCreators } from './util.js';
|
|
3
|
+
const asyncStoreCreators = Object.create(null);
|
|
43
4
|
/**
|
|
44
5
|
* Creates a store of type T asynchronously.
|
|
45
6
|
* @see https://github.com/unional/global-store#createAsyncStore
|
|
46
7
|
*/
|
|
47
|
-
function createAsyncStore(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var k = key !== null && key !== void 0 ? key : 'default';
|
|
54
|
-
var storeCreators = creatorsOfModules[k] = creatorsOfModules[k] || [];
|
|
55
|
-
storeCreators.push({ version: version, resolve: resolve, initializer: initializer });
|
|
56
|
-
})];
|
|
57
|
-
});
|
|
8
|
+
export async function createAsyncStore({ moduleName, key, version, initializer }) {
|
|
9
|
+
return new Promise((resolve) => {
|
|
10
|
+
const creatorsOfModules = (asyncStoreCreators[moduleName] = asyncStoreCreators[moduleName] || Object.create(null));
|
|
11
|
+
const k = key ?? 'default';
|
|
12
|
+
const storeCreators = (creatorsOfModules[k] = creatorsOfModules[k] || []);
|
|
13
|
+
storeCreators.push({ version, resolve, initializer });
|
|
58
14
|
});
|
|
59
15
|
}
|
|
60
|
-
exports.createAsyncStore = createAsyncStore;
|
|
61
16
|
/**
|
|
62
17
|
* Initializes the stores for `createAsyncStore()`.
|
|
63
18
|
* @see https://github.com/unional/global-store#initializeAsyncStore
|
|
64
19
|
*/
|
|
65
|
-
function initializeAsyncStore(moduleName, key) {
|
|
66
|
-
|
|
67
|
-
if (!
|
|
20
|
+
export function initializeAsyncStore(moduleName, key) {
|
|
21
|
+
const s = asyncStoreCreators[moduleName];
|
|
22
|
+
if (!s)
|
|
23
|
+
return;
|
|
24
|
+
if (key && !s[key])
|
|
68
25
|
return;
|
|
69
|
-
|
|
70
|
-
keys.forEach(
|
|
26
|
+
const keys = key ? [key] : Object.keys(s);
|
|
27
|
+
keys.forEach((key) => resolveCreators(moduleName, key, s[key], createStore));
|
|
71
28
|
}
|
|
72
|
-
exports.initializeAsyncStore = initializeAsyncStore;
|
|
73
29
|
//# sourceMappingURL=createAsyncStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAsyncStore.js","sourceRoot":"","sources":["../ts/createAsyncStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createAsyncStore.js","sourceRoot":"","sources":["../ts/createAsyncStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA8B,CAAA;AAE3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAuB,EAC5D,UAAU,EACV,GAAG,EACH,OAAO,EACP,WAAW,EACM;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,iBAAiB,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAClH,MAAM,CAAC,GAAG,GAAG,IAAI,SAAS,CAAA;QAC1B,MAAM,aAAa,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACzE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,GAAY;IACpE,MAAM,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACxC,IAAI,CAAC,CAAC;QAAE,OAAM;IACd,IAAI,GAAG,IAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAAE,OAAM;IAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAE,EAAE,WAAW,CAAC,CAAC,CAAA;AAC9E,CAAC"}
|
package/lib/createStore.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StoreOptions, StoreValue } from './types';
|
|
2
|
-
export
|
|
1
|
+
import type { StoreOptions, StoreValue } from './types.js';
|
|
2
|
+
export type Store<T extends StoreValue> = {
|
|
3
3
|
/**
|
|
4
4
|
* The store value.
|
|
5
5
|
*/
|
|
@@ -26,3 +26,4 @@ export declare type Store<T extends StoreValue> = {
|
|
|
26
26
|
* @see https://www.npmjs.com/package/global-store
|
|
27
27
|
*/
|
|
28
28
|
export declare function createStore<T extends StoreValue>({ moduleName, key, version, initializer }: StoreOptions<T>): Store<T>;
|
|
29
|
+
//# sourceMappingURL=createStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../ts/createStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAI1D,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,UAAU,IAAI;IACzC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACjB;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG,IAAI,CAAA;IACxD;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAA;CACb,CAAA;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,EACjD,UAAU,EACV,GAAG,EACH,OAAO,EACP,WAAW,EACX,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAe5B"}
|
package/lib/createStore.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
Object.
|
|
3
|
-
exports.createStore = void 0;
|
|
4
|
-
var util_1 = require("./util");
|
|
5
|
-
var stores = Object.create(null);
|
|
1
|
+
import { freezeStoreValue, getStoreValue, initStoreValue, resetStoreValue } from './util.js';
|
|
2
|
+
const stores = Object.create(null);
|
|
6
3
|
/**
|
|
7
4
|
* Creates a store of type T.
|
|
8
5
|
* @see https://www.npmjs.com/package/global-store
|
|
9
6
|
*/
|
|
10
|
-
function createStore(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
(0, util_1.initStoreValue)(stores, id, version, initializer);
|
|
7
|
+
export function createStore({ moduleName, key, version, initializer }) {
|
|
8
|
+
const id = { moduleName, key };
|
|
9
|
+
initStoreValue(stores, id, version, initializer);
|
|
14
10
|
return {
|
|
15
|
-
get value() {
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
get value() {
|
|
12
|
+
return getStoreValue(stores, id);
|
|
13
|
+
},
|
|
14
|
+
freeze(value) {
|
|
15
|
+
return freezeStoreValue(stores, id, value);
|
|
16
|
+
},
|
|
17
|
+
reset() {
|
|
18
|
+
return resetStoreValue(stores, id);
|
|
19
|
+
}
|
|
18
20
|
};
|
|
19
21
|
}
|
|
20
|
-
exports.createStore = createStore;
|
|
21
22
|
//# sourceMappingURL=createStore.js.map
|
package/lib/createStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStore.js","sourceRoot":"","sources":["../ts/createStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createStore.js","sourceRoot":"","sources":["../ts/createStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAuB5F,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAW,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAuB,EACjD,UAAU,EACV,GAAG,EACH,OAAO,EACP,WAAW,EACM;IACjB,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IAC9B,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAEhD,OAAO;QACN,IAAI,KAAK;YACR,OAAO,aAAa,CAAI,MAAM,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QACD,MAAM,CAAC,KAAK;YACX,OAAO,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;QAC3C,CAAC;QACD,KAAK;YACJ,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;KACD,CAAA;AACF,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from './createAsyncStore';
|
|
2
|
-
export * from './createStore';
|
|
3
|
-
export { createStore as default } from './createStore';
|
|
4
|
-
export * from './types';
|
|
1
|
+
export * from './createAsyncStore.js';
|
|
2
|
+
export * from './createStore.js';
|
|
3
|
+
export { createStore as default } from './createStore.js';
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACzD,cAAc,YAAY,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,23 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.default = void 0;
|
|
18
|
-
__exportStar(require("./createAsyncStore"), exports);
|
|
19
|
-
__exportStar(require("./createStore"), exports);
|
|
20
|
-
var createStore_1 = require("./createStore");
|
|
21
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return createStore_1.createStore; } });
|
|
22
|
-
__exportStar(require("./types"), exports);
|
|
1
|
+
export * from './createAsyncStore.js';
|
|
2
|
+
export * from './createStore.js';
|
|
3
|
+
export { createStore as default } from './createStore.js';
|
|
4
|
+
export * from './types.js';
|
|
23
5
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACzD,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shouldInvokeInitializer.d.ts","sourceRoot":"","sources":["../ts/shouldInvokeInitializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,WAItF"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function shouldInvokeInitializer(versions, version) {
|
|
6
|
-
var vs = versions.map(toVersionArray_1.toVersionArray);
|
|
7
|
-
var v = (0, toVersionArray_1.toVersionArray)(version);
|
|
1
|
+
import { toVersionArray } from './toVersionArray.js';
|
|
2
|
+
export function shouldInvokeInitializer(versions, version) {
|
|
3
|
+
const vs = versions.map(toVersionArray);
|
|
4
|
+
const v = toVersionArray(version);
|
|
8
5
|
return noMatchMajor(vs, v) || hasNewVersion(vs, v);
|
|
9
6
|
}
|
|
10
|
-
exports.shouldInvokeInitializer = shouldInvokeInitializer;
|
|
11
7
|
function noMatchMajor(versions, version) {
|
|
12
|
-
return !versions.some(
|
|
8
|
+
return !versions.some((v) => v[0] === version[0]);
|
|
13
9
|
}
|
|
14
10
|
function hasNewVersion(versions, version) {
|
|
15
|
-
return versions
|
|
16
|
-
.
|
|
11
|
+
return versions
|
|
12
|
+
.filter((v) => v[0] === version[0])
|
|
13
|
+
.some((v) => version[1] > v[1] || (version[1] === v[1] && version[2] > v[2]));
|
|
17
14
|
}
|
|
18
15
|
//# sourceMappingURL=shouldInvokeInitializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldInvokeInitializer.js","sourceRoot":"","sources":["../ts/shouldInvokeInitializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shouldInvokeInitializer.js","sourceRoot":"","sources":["../ts/shouldInvokeInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAA;AAGxE,MAAM,UAAU,uBAAuB,CAAC,QAAwB,EAAE,OAAqB;IACtF,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACvC,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,QAAyB,EAAE,OAAsB;IACtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB,EAAE,OAAsB;IACvE,OAAO,QAAQ;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/E,CAAC"}
|
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,CAE7D"}
|
package/lib/toVersionArray.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.toVersionArray = void 0;
|
|
4
|
-
function toVersionArray(v) {
|
|
5
|
-
return typeof v === 'number' ? [0, 0, v] :
|
|
6
|
-
v.split('.').map(function (v) { return parseInt(v, 10); });
|
|
1
|
+
export function toVersionArray(v) {
|
|
2
|
+
return typeof v === 'number' ? [0, 0, v] : v.split('.').map((v) => Number.parseInt(v, 10));
|
|
7
3
|
}
|
|
8
|
-
exports.toVersionArray = toVersionArray;
|
|
9
4
|
//# 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;IAC7C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAmB,CAAA;AAC9G,CAAC"}
|
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;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,OAAO,EAAE,YAAY,CAAA;IACrB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAChC"}
|
package/lib/types.js
CHANGED
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
|
-
key?: string;
|
|
4
|
+
key?: string | undefined;
|
|
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;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAC1B,OAAO,CAAC,YAAY,CAAC,EACrB,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC,CAC7G,CAAA;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,WAAW,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;CACzC;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
package/lib/typesInternal.js
CHANGED
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 type { 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,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,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,EAClD,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAQhC;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,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EACvC,EAAE,EAAE,OAAO,WAAW,QAKtB;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,QAG/E"}
|
package/lib/util.js
CHANGED
|
@@ -1,69 +1,53 @@
|
|
|
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
|
-
|
|
33
|
-
var key = (_a = id.key) !== null && _a !== void 0 ? _a : 'default';
|
|
34
|
-
return moduleStore[key] = moduleStore[key] || { versions: [], value: {}, initializers: [] };
|
|
24
|
+
export function getStore(stores, id) {
|
|
25
|
+
const moduleStore = (stores[id.moduleName] = stores[id.moduleName] || Object.create(null));
|
|
26
|
+
const key = id.key ?? 'default';
|
|
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
|
-
|
|
50
|
-
store.value = value ?
|
|
51
|
-
Object.isFrozen(value) ? value : Object.freeze(value) :
|
|
52
|
-
freezeValue(store.value);
|
|
35
|
+
export function freezeStoreValue(stores, id, value) {
|
|
36
|
+
const store = getStore(stores, id);
|
|
37
|
+
store.value = value ? (Object.isFrozen(value) ? value : Object.freeze(value)) : freezeValue(store.value);
|
|
53
38
|
}
|
|
54
|
-
exports.freezeStoreValue = freezeStoreValue;
|
|
55
39
|
function freezeValue(storeValue) {
|
|
56
40
|
if (Object.isFrozen(storeValue))
|
|
57
41
|
throw TypeError('Frozen value cannot be freezed again');
|
|
58
|
-
Object.keys(storeValue).forEach(
|
|
42
|
+
Object.keys(storeValue).forEach((k) => freezeIfIsArray(storeValue, k));
|
|
59
43
|
// istanbul ignore next
|
|
60
44
|
if (Object.getOwnPropertySymbols) {
|
|
61
|
-
Object.getOwnPropertySymbols(storeValue).forEach(
|
|
45
|
+
Object.getOwnPropertySymbols(storeValue).forEach((k) => freezeIfIsArray(storeValue, k));
|
|
62
46
|
}
|
|
63
47
|
return Object.freeze(storeValue);
|
|
64
48
|
}
|
|
65
49
|
function freezeIfIsArray(storeValue, k) {
|
|
66
|
-
|
|
50
|
+
const value = storeValue[k];
|
|
67
51
|
if (Array.isArray(value)) {
|
|
68
52
|
storeValue[k] = Object.freeze(value);
|
|
69
53
|
}
|
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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"}
|