@lomray/react-mobx-manager 3.6.0 → 3.6.1-beta.1
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/package.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"../deep-compare.js";class e{storages;persistData={};defaultId;constructor(t){this.storages=t,this.defaultId=Object.keys(t)?.[0]}async get(){try{const t=await Promise.all(Object.values(this.storages).map((t=>t.get()||{})));return this.persistData=Object.keys(this.storages).reduce(((e,s,r)=>({...e,[s]:t[r]})),{}),this.persistData}catch(t){return{}}}flush(){return Promise.all(Object.values(this.storages).map((t=>t.flush())))}set(t,e){const s=this.storages[e??this.defaultId];if(s)return s.set(t)}getStoreOptions(t){return{attributes:{[this.defaultId]:["*"]},behaviour:"exclude",...t.libStorageOptions??{}}}getStoreData(t){const e=t.libStoreId,{attributes:s}=this.getStoreOptions(t);return Object.entries(s).reduce(((t,[s,r])=>{const a=this.persistData?.[s]?.[e]??{};return{...t,..."*"===r[0]?a:r.reduce(((t,e)=>({...t,...void 0!==a[e]?{[e]:a[e]}:{}})),{})}}),{})}async saveStoreData(e,s){const r=e.libStoreId,{attributes:a,behaviour:i}=this.getStoreOptions(e),o=new Set(Object.keys(s??{})),u=Object.entries(a).map((([e,a])=>{const u=("*"===a[0]?[...o]:a).reduce(((t,e)=>o.has(e)?("exclude"===i&&o.delete(e),{...t,[e]:s?.[e]}):t),{}),c={...this.persistData?.[e]??{},[r]:u};return t(this.persistData?.[e]?.[r]??{},u)?null:this.set(c,e)}));await Promise.all(u)}}export{e as default};
|
|
1
|
+
import t from"../deep-compare.js";class e{storages;persistData={};defaultId;constructor(t){this.storages=t,this.defaultId=Object.keys(t)?.[0]}async get(){try{const t=await Promise.all(Object.values(this.storages).map((t=>t.get()||{})));return this.persistData=Object.keys(this.storages).reduce(((e,s,r)=>({...e,[s]:t[r]})),{}),this.persistData}catch(t){return{}}}flush(){return Promise.all(Object.values(this.storages).map((t=>t.flush())))}set(t,e){const s=this.storages[e??this.defaultId];if(s)return s.set(t)}getStoreOptions(t){return{attributes:{[this.defaultId]:["*"]},behaviour:"exclude",...t.libStorageOptions??{}}}getStoreData(t){const e=t.libStoreId,{attributes:s}=this.getStoreOptions(t);return Object.entries(s).reduce(((t,[s,r])=>{const a=this.persistData?.[s]?.[e]??{};return{...t,..."*"===r[0]?a:r.reduce(((t,e)=>({...t,...void 0!==a[e]?{[e]:a[e]}:{}})),{})}}),{})}async saveStoreData(e,s){const r=e.libStoreId,{attributes:a,behaviour:i}=this.getStoreOptions(e),o=new Set(Object.keys(s??{})),u=Object.entries(a).map((([e,a])=>{const u=("*"===a[0]?[...o]:a).reduce(((t,e)=>o.has(e)?("exclude"===i&&o.delete(e),{...t,[e]:s?.[e]}):t),{}),c={...this.persistData?.[e]??{},[r]:u};return t(this.persistData?.[e]?.[r]??{},u)?null:(this.persistData?.[e]?.[r]&&(this.persistData[e][r]=u),this.set(c,e))}));await Promise.all(u)}}export{e as default};
|
|
2
2
|
//# sourceMappingURL=combined-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combined-storage.js","sources":["../../src/storages/combined-storage.ts"],"sourcesContent":["import deepCompare from '../deep-compare';\nimport type { IPersistOptions, IStorage, IStorePersisted } from '../types';\n\ninterface ICombinedStorage {\n [name: string]: IStorage;\n}\n\n/**\n * Combined storage for mobx store manager\n */\nclass CombinedStorage implements IStorage {\n /**\n * @protected\n */\n protected storages: ICombinedStorage;\n\n /**\n * Restored persist storage data\n * @protected\n */\n protected persistData: Record<string, any> = {};\n\n /**\n * Default storage id\n * @protected\n */\n protected defaultId: string;\n\n /**\n * @constructor\n *\n * First storage will be used as default\n */\n constructor(storages: ICombinedStorage) {\n this.storages = storages;\n this.defaultId = Object.keys(storages)?.[0];\n }\n\n /**\n * @inheritDoc\n */\n public async get(): Promise<Record<string, any> | undefined> {\n try {\n const data = await Promise.all(\n Object.values(this.storages).map((storage) => storage.get() || {}),\n );\n\n this.persistData = Object.keys(this.storages).reduce(\n (res, key, index) => ({\n ...res,\n [key]: data[index],\n }),\n {},\n );\n\n return this.persistData;\n } catch (e) {\n return {};\n }\n }\n\n /**\n * @inheritDoc\n */\n public flush(): void | Promise<any> {\n return Promise.all(Object.values(this.storages).map((storage) => storage.flush()));\n }\n\n /**\n * @inheritDoc\n */\n public set(\n value: Record<string, any> | undefined,\n storageId?: string,\n ): ReturnType<IStorage['set']> {\n const storage = this.storages[storageId ?? this.defaultId];\n\n if (!storage) {\n return;\n }\n\n return storage.set(value);\n }\n\n /**\n * Return store storage options\n */\n protected getStoreOptions(store: IStorePersisted): IPersistOptions {\n return {\n attributes: {\n [this.defaultId]: ['*'],\n },\n behaviour: 'exclude',\n ...(store.libStorageOptions ?? {}),\n };\n }\n\n /**\n * Return store persist data\n */\n public getStoreData(store: IStorePersisted): Record<string, any> | undefined {\n const storeId = store.libStoreId!;\n const { attributes } = this.getStoreOptions(store);\n\n return Object.entries(attributes!).reduce((res, [storageId, attr]) => {\n const storageData = this.persistData?.[storageId]?.[storeId] ?? {};\n const allowedData =\n attr[0] === '*'\n ? storageData\n : attr.reduce(\n (r, attrName) => ({\n ...r,\n ...(storageData[attrName] !== undefined\n ? { [attrName]: storageData[attrName] }\n : {}),\n }),\n {},\n );\n\n return {\n ...res,\n ...allowedData,\n };\n }, {});\n }\n\n /**\n * Save store data in storage\n */\n public async saveStoreData(\n store: IStorePersisted,\n data: Record<string, any> | undefined,\n ): Promise<void> {\n const storeId = store.libStoreId!;\n const { attributes, behaviour } = this.getStoreOptions(store);\n const dataKeys = new Set(Object.keys(data ?? {}));\n\n const dataByStorages = Object.entries(attributes!).map(([storageId, attr]) => {\n const storeData = (attr[0] === '*' ? [...dataKeys] : attr).reduce((r, attrName) => {\n if (!dataKeys.has(attrName)) {\n return r;\n }\n\n if (behaviour === 'exclude') {\n dataKeys.delete(attrName);\n }\n\n return {\n ...r,\n [attrName]: data?.[attrName],\n };\n }, {});\n\n const newData = {\n ...(this.persistData?.[storageId] ?? {}),\n [storeId]: storeData,\n } as Record<string, any>;\n\n // skip updating if nothing changed\n if (deepCompare(this.persistData?.[storageId]?.[storeId] ?? {}, storeData)) {\n return null;\n }\n\n return this.set(newData, storageId);\n });\n\n await Promise.all(dataByStorages);\n }\n}\n\nexport default CombinedStorage;\n"],"names":["CombinedStorage","storages","persistData","defaultId","constructor","this","Object","keys","async","data","Promise","all","values","map","storage","get","reduce","res","key","index","e","flush","set","value","storageId","getStoreOptions","store","attributes","behaviour","libStorageOptions","getStoreData","storeId","libStoreId","entries","attr","storageData","r","attrName","undefined","dataKeys","Set","dataByStorages","storeData","has","delete","newData","deepCompare"],"mappings":"kCAUA,MAAMA,EAIMC,SAMAC,YAAmC,CAAA,EAMnCC,UAOVC,YAAYH,GACVI,KAAKJ,SAAWA,EAChBI,KAAKF,UAAYG,OAAOC,KAAKN,KAAY,EAC1C,CAKMO,YACL,IACE,MAAMC,QAAaC,QAAQC,IACzBL,OAAOM,OAAOP,KAAKJ,UAAUY,KAAKC,GAAYA,EAAQC,OAAS,CAAE,KAWnE,OARAV,KAAKH,YAAcI,OAAOC,KAAKF,KAAKJ,UAAUe,QAC5C,CAACC,EAAKC,EAAKC,KAAW,IACjBF,EACHC,CAACA,GAAMT,EAAKU,MAEd,CAAE,GAGGd,KAAKH,WACb,CAAC,MAAOkB,GACP,MAAO,EACR,CACF,CAKMC,QACL,OAAOX,QAAQC,IAAIL,OAAOM,OAAOP,KAAKJ,UAAUY,KAAKC,GAAYA,EAAQO,UAC1E,CAKMC,IACLC,EACAC,GAEA,MAAMV,EAAUT,KAAKJ,SAASuB,GAAanB,KAAKF,WAEhD,GAAKW,EAIL,OAAOA,EAAQQ,IAAIC,EACpB,CAKSE,gBAAgBC,GACxB,MAAO,CACLC,WAAY,CACV,CAACtB,KAAKF,WAAY,CAAC,MAErByB,UAAW,aACPF,EAAMG,mBAAqB,CAAE,EAEpC,CAKMC,aAAaJ,GAClB,MAAMK,EAAUL,EAAMM,YAChBL,WAAEA,GAAetB,KAAKoB,gBAAgBC,GAE5C,OAAOpB,OAAO2B,QAAQN,GAAaX,QAAO,CAACC,GAAMO,EAAWU,MAC1D,MAAMC,EAAc9B,KAAKH,cAAcsB,KAAaO,IAAY,GAchE,MAAO,IACFd,KAbS,MAAZiB,EAAK,GACDC,EACAD,EAAKlB,QACH,CAACoB,EAAGC,KAAc,IACbD,UAC2BE,IAA1BH,EAAYE,GACZ,CAAEA,CAACA,GAAWF,EAAYE,IAC1B,CAAE,KAER,CAAE,GAMT,GACA,CAAE,EACN,CAKM7B,oBACLkB,EACAjB,GAEA,MAAMsB,EAAUL,EAAMM,YAChBL,WAAEA,EAAUC,UAAEA,GAAcvB,KAAKoB,gBAAgBC,GACjDa,EAAW,IAAIC,IAAIlC,OAAOC,KAAKE,GAAQ,CAAE,IAEzCgC,EAAiBnC,OAAO2B,QAAQN,GAAad,KAAI,EAAEW,EAAWU,MAClE,MAAMQ,GAAyB,MAAZR,EAAK,GAAa,IAAIK,GAAYL,GAAMlB,QAAO,CAACoB,EAAGC,IAC/DE,EAASI,IAAIN,IAIA,YAAdT,GACFW,EAASK,OAAOP,GAGX,IACFD,EACHC,CAACA,GAAW5B,IAAO4B,KATZD,GAWR,CAAE,GAECS,EAAU,IACVxC,KAAKH,cAAcsB,IAAc,CAAE,EACvCO,CAACA,GAAUW,GAIb,OAAII,EAAYzC,KAAKH,cAAcsB,KAAaO,IAAY,GAAIW,GACvD,
|
|
1
|
+
{"version":3,"file":"combined-storage.js","sources":["../../src/storages/combined-storage.ts"],"sourcesContent":["import deepCompare from '../deep-compare';\nimport type { IPersistOptions, IStorage, IStorePersisted } from '../types';\n\ninterface ICombinedStorage {\n [name: string]: IStorage;\n}\n\n/**\n * Combined storage for mobx store manager\n */\nclass CombinedStorage implements IStorage {\n /**\n * @protected\n */\n protected storages: ICombinedStorage;\n\n /**\n * Restored persist storage data\n * @protected\n */\n protected persistData: Record<string, any> = {};\n\n /**\n * Default storage id\n * @protected\n */\n protected defaultId: string;\n\n /**\n * @constructor\n *\n * First storage will be used as default\n */\n constructor(storages: ICombinedStorage) {\n this.storages = storages;\n this.defaultId = Object.keys(storages)?.[0];\n }\n\n /**\n * @inheritDoc\n */\n public async get(): Promise<Record<string, any> | undefined> {\n try {\n const data = await Promise.all(\n Object.values(this.storages).map((storage) => storage.get() || {}),\n );\n\n this.persistData = Object.keys(this.storages).reduce(\n (res, key, index) => ({\n ...res,\n [key]: data[index],\n }),\n {},\n );\n\n return this.persistData;\n } catch (e) {\n return {};\n }\n }\n\n /**\n * @inheritDoc\n */\n public flush(): void | Promise<any> {\n return Promise.all(Object.values(this.storages).map((storage) => storage.flush()));\n }\n\n /**\n * @inheritDoc\n */\n public set(\n value: Record<string, any> | undefined,\n storageId?: string,\n ): ReturnType<IStorage['set']> {\n const storage = this.storages[storageId ?? this.defaultId];\n\n if (!storage) {\n return;\n }\n\n return storage.set(value);\n }\n\n /**\n * Return store storage options\n */\n protected getStoreOptions(store: IStorePersisted): IPersistOptions {\n return {\n attributes: {\n [this.defaultId]: ['*'],\n },\n behaviour: 'exclude',\n ...(store.libStorageOptions ?? {}),\n };\n }\n\n /**\n * Return store persist data\n */\n public getStoreData(store: IStorePersisted): Record<string, any> | undefined {\n const storeId = store.libStoreId!;\n const { attributes } = this.getStoreOptions(store);\n\n return Object.entries(attributes!).reduce((res, [storageId, attr]) => {\n const storageData = this.persistData?.[storageId]?.[storeId] ?? {};\n const allowedData =\n attr[0] === '*'\n ? storageData\n : attr.reduce(\n (r, attrName) => ({\n ...r,\n ...(storageData[attrName] !== undefined\n ? { [attrName]: storageData[attrName] }\n : {}),\n }),\n {},\n );\n\n return {\n ...res,\n ...allowedData,\n };\n }, {});\n }\n\n /**\n * Save store data in storage\n */\n public async saveStoreData(\n store: IStorePersisted,\n data: Record<string, any> | undefined,\n ): Promise<void> {\n const storeId = store.libStoreId!;\n const { attributes, behaviour } = this.getStoreOptions(store);\n const dataKeys = new Set(Object.keys(data ?? {}));\n\n const dataByStorages = Object.entries(attributes!).map(([storageId, attr]) => {\n const storeData = (attr[0] === '*' ? [...dataKeys] : attr).reduce((r, attrName) => {\n if (!dataKeys.has(attrName)) {\n return r;\n }\n\n if (behaviour === 'exclude') {\n dataKeys.delete(attrName);\n }\n\n return {\n ...r,\n [attrName]: data?.[attrName],\n };\n }, {});\n\n const newData = {\n ...(this.persistData?.[storageId] ?? {}),\n [storeId]: storeData,\n } as Record<string, any>;\n\n // skip updating if nothing changed\n if (deepCompare(this.persistData?.[storageId]?.[storeId] ?? {}, storeData)) {\n return null;\n }\n\n if (this.persistData?.[storageId]?.[storeId]) {\n this.persistData[storageId][storeId] = storeData;\n }\n\n return this.set(newData, storageId);\n });\n\n await Promise.all(dataByStorages);\n }\n}\n\nexport default CombinedStorage;\n"],"names":["CombinedStorage","storages","persistData","defaultId","constructor","this","Object","keys","async","data","Promise","all","values","map","storage","get","reduce","res","key","index","e","flush","set","value","storageId","getStoreOptions","store","attributes","behaviour","libStorageOptions","getStoreData","storeId","libStoreId","entries","attr","storageData","r","attrName","undefined","dataKeys","Set","dataByStorages","storeData","has","delete","newData","deepCompare"],"mappings":"kCAUA,MAAMA,EAIMC,SAMAC,YAAmC,CAAA,EAMnCC,UAOVC,YAAYH,GACVI,KAAKJ,SAAWA,EAChBI,KAAKF,UAAYG,OAAOC,KAAKN,KAAY,EAC1C,CAKMO,YACL,IACE,MAAMC,QAAaC,QAAQC,IACzBL,OAAOM,OAAOP,KAAKJ,UAAUY,KAAKC,GAAYA,EAAQC,OAAS,CAAE,KAWnE,OARAV,KAAKH,YAAcI,OAAOC,KAAKF,KAAKJ,UAAUe,QAC5C,CAACC,EAAKC,EAAKC,KAAW,IACjBF,EACHC,CAACA,GAAMT,EAAKU,MAEd,CAAE,GAGGd,KAAKH,WACb,CAAC,MAAOkB,GACP,MAAO,EACR,CACF,CAKMC,QACL,OAAOX,QAAQC,IAAIL,OAAOM,OAAOP,KAAKJ,UAAUY,KAAKC,GAAYA,EAAQO,UAC1E,CAKMC,IACLC,EACAC,GAEA,MAAMV,EAAUT,KAAKJ,SAASuB,GAAanB,KAAKF,WAEhD,GAAKW,EAIL,OAAOA,EAAQQ,IAAIC,EACpB,CAKSE,gBAAgBC,GACxB,MAAO,CACLC,WAAY,CACV,CAACtB,KAAKF,WAAY,CAAC,MAErByB,UAAW,aACPF,EAAMG,mBAAqB,CAAE,EAEpC,CAKMC,aAAaJ,GAClB,MAAMK,EAAUL,EAAMM,YAChBL,WAAEA,GAAetB,KAAKoB,gBAAgBC,GAE5C,OAAOpB,OAAO2B,QAAQN,GAAaX,QAAO,CAACC,GAAMO,EAAWU,MAC1D,MAAMC,EAAc9B,KAAKH,cAAcsB,KAAaO,IAAY,GAchE,MAAO,IACFd,KAbS,MAAZiB,EAAK,GACDC,EACAD,EAAKlB,QACH,CAACoB,EAAGC,KAAc,IACbD,UAC2BE,IAA1BH,EAAYE,GACZ,CAAEA,CAACA,GAAWF,EAAYE,IAC1B,CAAE,KAER,CAAE,GAMT,GACA,CAAE,EACN,CAKM7B,oBACLkB,EACAjB,GAEA,MAAMsB,EAAUL,EAAMM,YAChBL,WAAEA,EAAUC,UAAEA,GAAcvB,KAAKoB,gBAAgBC,GACjDa,EAAW,IAAIC,IAAIlC,OAAOC,KAAKE,GAAQ,CAAE,IAEzCgC,EAAiBnC,OAAO2B,QAAQN,GAAad,KAAI,EAAEW,EAAWU,MAClE,MAAMQ,GAAyB,MAAZR,EAAK,GAAa,IAAIK,GAAYL,GAAMlB,QAAO,CAACoB,EAAGC,IAC/DE,EAASI,IAAIN,IAIA,YAAdT,GACFW,EAASK,OAAOP,GAGX,IACFD,EACHC,CAACA,GAAW5B,IAAO4B,KATZD,GAWR,CAAE,GAECS,EAAU,IACVxC,KAAKH,cAAcsB,IAAc,CAAE,EACvCO,CAACA,GAAUW,GAIb,OAAII,EAAYzC,KAAKH,cAAcsB,KAAaO,IAAY,GAAIW,GACvD,MAGLrC,KAAKH,cAAcsB,KAAaO,KAClC1B,KAAKH,YAAYsB,GAAWO,GAAWW,GAGlCrC,KAAKiB,IAAIuB,EAASrB,GAAU,UAG/Bd,QAAQC,IAAI8B,EACnB"}
|