@choksheak/react-utils 0.4.8 → 0.5.0
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 +2 -0
- package/NoSSR.min.cjs +1 -14
- package/NoSSR.min.cjs.map +1 -1
- package/NoSSR.min.js +1 -14
- package/NoSSR.min.js.map +1 -1
- package/{chunk-HFIQE4XZ.cjs → chunk-ALTY6BU7.cjs} +19 -7
- package/chunk-GV7KUTU2.min.js +2 -0
- package/chunk-GV7KUTU2.min.js.map +1 -0
- package/{chunk-CIDQGOPA.js → chunk-H4OYYPJV.js} +7 -3
- package/chunk-IKHSARNO.min.js +2 -0
- package/chunk-IKHSARNO.min.js.map +1 -0
- package/chunk-JOHZV3FD.min.cjs +2 -0
- package/chunk-JOHZV3FD.min.cjs.map +1 -0
- package/chunk-KGN4HQPP.min.cjs +2 -0
- package/chunk-KGN4HQPP.min.cjs.map +1 -0
- package/{chunk-UNDIVFP5.cjs → chunk-KXFV42DP.cjs} +7 -3
- package/chunk-MBPSSROD.min.js +2 -0
- package/{chunk-MNWSPF5J.min.js.map → chunk-MBPSSROD.min.js.map} +1 -1
- package/chunk-OCJG7MUG.min.cjs +2 -0
- package/chunk-OCJG7MUG.min.cjs.map +1 -0
- package/chunk-QASRLGQX.min.js +2 -0
- package/{chunk-4YV72T4D.min.js.map → chunk-QASRLGQX.min.js.map} +1 -1
- package/chunk-SQX7XDQJ.min.cjs +2 -0
- package/chunk-SQX7XDQJ.min.cjs.map +1 -0
- package/chunk-TDP547RX.min.js +2 -0
- package/{chunk-AXDXFCZV.min.js.map → chunk-TDP547RX.min.js.map} +1 -1
- package/{chunk-RFKUMDNU.js → chunk-UBAHJNMF.js} +17 -5
- package/chunk-UFJQLQFI.min.cjs +2 -0
- package/chunk-UFJQLQFI.min.cjs.map +1 -0
- package/chunk-UNSZMVZB.min.js +2 -0
- package/chunk-ZCDXPV3A.min.cjs +2 -0
- package/chunk-ZCDXPV3A.min.cjs.map +1 -0
- package/dist-6EWLBMVU.min.js +2 -0
- package/{dist-4BDJ7HYS.min.js.map → dist-6EWLBMVU.min.js.map} +1 -1
- package/dist-SEGTJ72R.min.cjs +2 -0
- package/dist-SEGTJ72R.min.cjs.map +1 -0
- package/index.cjs +3 -3
- package/index.d.cts +1 -1
- package/index.d.ts +1 -1
- package/index.js +2 -2
- package/index.min.cjs +1 -43
- package/index.min.cjs.map +1 -1
- package/index.min.js +1 -43
- package/magic-string.es-FXUUD55Y.min.cjs +14 -0
- package/magic-string.es-FXUUD55Y.min.cjs.map +1 -0
- package/magic-string.es-W5QTEOCE.min.js +14 -0
- package/{magic-string.es-2AQNCEBL.min.js.map → magic-string.es-W5QTEOCE.min.js.map} +1 -1
- package/package.json +10 -10
- package/sharedQuery.cjs +3 -3
- package/sharedQuery.js +2 -2
- package/sharedQuery.min.cjs +1 -17
- package/sharedQuery.min.cjs.map +1 -1
- package/sharedQuery.min.js +1 -17
- package/sharedState.cjs +2 -2
- package/sharedState.js +1 -1
- package/sharedState.min.cjs +1 -18
- package/sharedState.min.cjs.map +1 -1
- package/sharedState.min.js +1 -18
- package/storage.min.cjs +1 -11
- package/storage.min.cjs.map +1 -1
- package/storage.min.js +1 -11
- package/stringify.min.cjs +1 -7
- package/stringify.min.cjs.map +1 -1
- package/stringify.min.js +1 -7
- package/useDeepMemo.min.cjs +1 -7
- package/useDeepMemo.min.cjs.map +1 -1
- package/useDeepMemo.min.js +1 -7
- package/chunk-4YV72T4D.min.js +0 -105
- package/chunk-AXDXFCZV.min.js +0 -35
- package/chunk-C6X4GPZ4.min.cjs +0 -596
- package/chunk-C6X4GPZ4.min.cjs.map +0 -1
- package/chunk-JYZY2SHD.min.js +0 -596
- package/chunk-JYZY2SHD.min.js.map +0 -1
- package/chunk-K2L3OVGY.min.cjs +0 -18
- package/chunk-K2L3OVGY.min.cjs.map +0 -1
- package/chunk-KGDXU6Q2.min.cjs +0 -222
- package/chunk-KGDXU6Q2.min.cjs.map +0 -1
- package/chunk-MNWSPF5J.min.js +0 -18
- package/chunk-P2E73RBM.min.cjs +0 -35
- package/chunk-P2E73RBM.min.cjs.map +0 -1
- package/chunk-PCGGKBOL.min.js +0 -222
- package/chunk-PCGGKBOL.min.js.map +0 -1
- package/chunk-PHITDXZT.min.js +0 -36
- package/chunk-RRQBFF4W.min.cjs +0 -105
- package/chunk-RRQBFF4W.min.cjs.map +0 -1
- package/chunk-TST6JKQ5.min.cjs +0 -36
- package/chunk-TST6JKQ5.min.cjs.map +0 -1
- package/dist-4BDJ7HYS.min.js +0 -546
- package/dist-HKOCAKHU.min.cjs +0 -546
- package/dist-HKOCAKHU.min.cjs.map +0 -1
- package/magic-string.es-2AQNCEBL.min.js +0 -1309
- package/magic-string.es-XJ27RPMN.min.cjs +0 -1309
- package/magic-string.es-XJ27RPMN.min.cjs.map +0 -1
- /package/{chunk-PHITDXZT.min.js.map → chunk-UNSZMVZB.min.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/storage.ts"],"sourcesContent":["/**\n * @packageDocumentation\n *\n * Backing storage implementation for the shared state. Note that this uses the\n * LocalStore and KvStore from package \"@choksheak/ts-utils\", but is customized\n * to be used for shared states.\n *\n * Normally you will not need to use this module directly, but if you have a\n * need for it, feel free to use it.\n */\n\nimport { Duration } from \"@choksheak/ts-utils/duration\";\nimport { kvStore } from \"@choksheak/ts-utils/kvStore\";\nimport { createLocalStore } from \"@choksheak/ts-utils/localStore\";\nimport { StorageAdapter } from \"@choksheak/ts-utils/storageAdapter\";\n\n/** List of all available pre-built persistence options. */\nexport type PersistTo = \"localStorage\" | \"indexedDb\";\n\n/** Options to configure a pre-built store adapter. */\nexport type StoreOptions = {\n /** Choose which pre-built store adapter to use. */\n persistTo: PersistTo;\n\n /** Storage key to act as a namespace to store the data. */\n key: string;\n\n /** How long to wait before the value is considered expired. */\n expiryMs?: number | Duration;\n\n /** Returns true if the given value supposed to be of type T is valid. */\n isValid?: (u: unknown) => boolean;\n};\n\nexport type StoreConstructorArgs = Omit<StoreOptions, \"persistTo\">;\n\n/** Either use a pre-built store, or a custom one you provide. */\nexport type StorageOptions<T> = {\n /**\n * You can either specify the storage adapter directly to use a custom\n * store, or specify the properties to use the pre-built ones.\n */\n store?: StorageAdapter<T> | StoreOptions;\n};\n\n// In SSR (Server-Side Rendering) mode, we never want to use our storage\n// adapters for anything.\nconst IS_NOT_BROWSER = typeof window === \"undefined\";\n\n/**\n * Convert a StorageOptions<T> config object into an actual storage adapter, or\n * returns null if a storage adapter is not configured.\n */\nexport function getStorageAdapter<T>(\n options: StorageOptions<T> | undefined,\n defaultStoreExpiryMs: number,\n): StorageAdapter<T> | null {\n const { store } = options ?? {};\n\n if (!store) {\n return null;\n }\n\n if (\n \"persistTo\" in store &&\n typeof store.persistTo === \"string\" &&\n \"key\" in store &&\n typeof store.key === \"string\"\n ) {\n const expiryMs = store.expiryMs || defaultStoreExpiryMs;\n const config = { ...store, expiryMs };\n\n switch (store.persistTo) {\n case \"localStorage\":\n return localStoreAdapter<T>(config);\n\n case \"indexedDb\":\n return kvStoreAdapter<T>(config);\n\n default:\n store.persistTo satisfies never;\n throw new Error(`Unknown store.adapter ${store.persistTo}`);\n }\n }\n\n return store as StorageAdapter<T>;\n}\n\n/**\n * Create a new SSR-safe local store adapter, which allows users to reuse the\n * same adapter in multiple shared states or shared queries.\n */\nexport function localStoreAdapter<T>({\n key,\n expiryMs,\n isValid,\n}: StoreConstructorArgs) {\n // Put everything in the same store so that we can GC properly.\n const STORE_NAME = \"react-utils\";\n\n const adapter = createLocalStore(STORE_NAME, {\n defaultExpiryMs: expiryMs,\n });\n\n // Use the key prefix as a unique namespace for this store.\n const keyPrefix = key + \":\";\n\n return {\n set: (key: string, value: T): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n // Also apply the custom expiryMs on every item in this store.\n adapter.set(keyPrefix + key, value);\n },\n\n get: (key: string): T | undefined => {\n if (IS_NOT_BROWSER) return undefined; // handle SSR\n\n const fullKey = keyPrefix + key;\n const value = adapter.get<T>(fullKey);\n\n // If there is no value, don't try to check for validatity.\n if (value !== undefined && isValid && !isValid(value)) {\n console.warn(\n `localStorage adapter: Auto-discard invalid value for ${fullKey}: ${JSON.stringify(value)}`,\n );\n adapter.delete(fullKey);\n return undefined;\n }\n\n return value;\n },\n\n delete: (key: string): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n adapter.delete(keyPrefix + key);\n },\n\n /** Note that this will clear all keys in all shared states. */\n clear: (): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n adapter.clear();\n },\n };\n}\n\n/**\n * Create a new SSR-safe indexed DB KV store adapter, which allows users to\n * reuse the same adapter in multiple shared states or shared queries.\n */\nexport function kvStoreAdapter<T>({\n key,\n expiryMs,\n isValid,\n}: StoreConstructorArgs) {\n // Use the key prefix as a unique namespace for this store.\n const keyPrefix = key + \":\";\n\n // Prefix all keys using `keyPrefix` so that we can keep all data in\n // the same store in the same DB. If we keep the data in different\n // DB stores, then GC will not be able to clean up abandoned stores.\n return {\n set: async (key: string, value: T): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n // Also apply the custom expiryMs on every item in this store.\n await kvStore.set(keyPrefix + key, value, expiryMs);\n },\n get: async (key: string): Promise<T | undefined> => {\n if (IS_NOT_BROWSER) return undefined; // handle SSR\n\n const fullKey = keyPrefix + key;\n const value = await kvStore.get<T>(fullKey);\n\n // If there is no value, don't try to check for validatity.\n if (value !== undefined && isValid && !isValid(value)) {\n console.warn(\n `indexedDb adapter: Auto-discard invalid value for ${key}:`,\n value,\n );\n await kvStore.delete(fullKey);\n return undefined;\n }\n\n return value;\n },\n delete: async (key: string): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n await kvStore.delete(keyPrefix + key);\n },\n clear: async (): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n await kvStore.clear();\n },\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/storage.ts"],"sourcesContent":["/**\n * @packageDocumentation\n *\n * Backing storage implementation for the shared state. Note that this uses the\n * LocalStore and KvStore from package \"@choksheak/ts-utils\", but is customized\n * to be used for shared states.\n *\n * Normally you will not need to use this module directly, but if you have a\n * need for it, feel free to use it.\n */\n\nimport { Duration } from \"@choksheak/ts-utils/duration\";\nimport { kvStore } from \"@choksheak/ts-utils/kvStore\";\nimport { createLocalStore } from \"@choksheak/ts-utils/localStore\";\nimport { StorageAdapter } from \"@choksheak/ts-utils/storageAdapter\";\n\n/** List of all available pre-built persistence options. */\nexport type PersistTo = \"localStorage\" | \"indexedDb\";\n\n/** Options to configure a pre-built store adapter. */\nexport type StoreOptions = {\n /** Choose which pre-built store adapter to use. */\n persistTo: PersistTo;\n\n /** Storage key to act as a namespace to store the data. */\n key: string;\n\n /** How long to wait before the value is considered expired. */\n expiryMs?: number | Duration;\n\n /** Returns true if the given value supposed to be of type T is valid. */\n isValid?: (u: unknown) => boolean;\n};\n\nexport type StoreConstructorArgs = Omit<StoreOptions, \"persistTo\">;\n\n/** Either use a pre-built store, or a custom one you provide. */\nexport type StorageOptions<T> = {\n /**\n * You can either specify the storage adapter directly to use a custom\n * store, or specify the properties to use the pre-built ones.\n */\n store?: StorageAdapter<T> | StoreOptions;\n};\n\n// In SSR (Server-Side Rendering) mode, we never want to use our storage\n// adapters for anything.\nconst IS_NOT_BROWSER = typeof window === \"undefined\";\n\n/**\n * Convert a StorageOptions<T> config object into an actual storage adapter, or\n * returns null if a storage adapter is not configured.\n */\nexport function getStorageAdapter<T>(\n options: StorageOptions<T> | undefined,\n defaultStoreExpiryMs: number,\n): StorageAdapter<T> | null {\n const { store } = options ?? {};\n\n if (!store) {\n return null;\n }\n\n if (\n \"persistTo\" in store &&\n typeof store.persistTo === \"string\" &&\n \"key\" in store &&\n typeof store.key === \"string\"\n ) {\n const expiryMs = store.expiryMs || defaultStoreExpiryMs;\n const config = { ...store, expiryMs };\n\n switch (store.persistTo) {\n case \"localStorage\":\n return localStoreAdapter<T>(config);\n\n case \"indexedDb\":\n return kvStoreAdapter<T>(config);\n\n default:\n store.persistTo satisfies never;\n throw new Error(`Unknown store.adapter ${store.persistTo}`);\n }\n }\n\n return store as StorageAdapter<T>;\n}\n\n/**\n * Create a new SSR-safe local store adapter, which allows users to reuse the\n * same adapter in multiple shared states or shared queries.\n */\nexport function localStoreAdapter<T>({\n key,\n expiryMs,\n isValid,\n}: StoreConstructorArgs) {\n // Put everything in the same store so that we can GC properly.\n const STORE_NAME = \"react-utils\";\n\n const adapter = createLocalStore(STORE_NAME, {\n defaultExpiryMs: expiryMs,\n });\n\n // Use the key prefix as a unique namespace for this store.\n const keyPrefix = key + \":\";\n\n return {\n set: (key: string, value: T): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n // Also apply the custom expiryMs on every item in this store.\n adapter.set(keyPrefix + key, value);\n },\n\n get: (key: string): T | undefined => {\n if (IS_NOT_BROWSER) return undefined; // handle SSR\n\n const fullKey = keyPrefix + key;\n const value = adapter.get<T>(fullKey);\n\n // If there is no value, don't try to check for validatity.\n if (value !== undefined && isValid && !isValid(value)) {\n console.warn(\n `localStorage adapter: Auto-discard invalid value for ${fullKey}: ${JSON.stringify(value)}`,\n );\n adapter.delete(fullKey);\n return undefined;\n }\n\n return value;\n },\n\n delete: (key: string): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n adapter.delete(keyPrefix + key);\n },\n\n /** Note that this will clear all keys in all shared states. */\n clear: (): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n adapter.clear();\n },\n };\n}\n\n/**\n * Create a new SSR-safe indexed DB KV store adapter, which allows users to\n * reuse the same adapter in multiple shared states or shared queries.\n */\nexport function kvStoreAdapter<T>({\n key,\n expiryMs,\n isValid,\n}: StoreConstructorArgs) {\n // Use the key prefix as a unique namespace for this store.\n const keyPrefix = key + \":\";\n\n // Prefix all keys using `keyPrefix` so that we can keep all data in\n // the same store in the same DB. If we keep the data in different\n // DB stores, then GC will not be able to clean up abandoned stores.\n return {\n set: async (key: string, value: T): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n // Also apply the custom expiryMs on every item in this store.\n await kvStore.set(keyPrefix + key, value, expiryMs);\n },\n get: async (key: string): Promise<T | undefined> => {\n if (IS_NOT_BROWSER) return undefined; // handle SSR\n\n const fullKey = keyPrefix + key;\n const value = await kvStore.get<T>(fullKey);\n\n // If there is no value, don't try to check for validatity.\n if (value !== undefined && isValid && !isValid(value)) {\n console.warn(\n `indexedDb adapter: Auto-discard invalid value for ${key}:`,\n value,\n );\n await kvStore.delete(fullKey);\n return undefined;\n }\n\n return value;\n },\n delete: async (key: string): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n await kvStore.delete(keyPrefix + key);\n },\n clear: async (): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n await kvStore.clear();\n },\n };\n}\n"],"mappings":"AAYA,OAAS,WAAAA,MAAe,8BACxB,OAAS,oBAAAC,MAAwB,iCAkCjC,IAAMC,EAAiB,OAAO,OAAW,IAMlC,SAASC,EACdC,EACAC,EAC0B,CAC1B,GAAM,CAAE,MAAAC,CAAM,EAAIF,GAAW,CAAC,EAE9B,GAAI,CAACE,EACH,OAAO,KAGT,GACE,cAAeA,GACf,OAAOA,EAAM,WAAc,UAC3B,QAASA,GACT,OAAOA,EAAM,KAAQ,SACrB,CACA,IAAMC,EAAWD,EAAM,UAAYD,EAC7BG,EAAS,CAAE,GAAGF,EAAO,SAAAC,CAAS,EAEpC,OAAQD,EAAM,UAAW,CACvB,IAAK,eACH,OAAOG,EAAqBD,CAAM,EAEpC,IAAK,YACH,OAAOE,EAAkBF,CAAM,EAEjC,QACE,MAAAF,EAAM,UACA,IAAI,MAAM,yBAAyBA,EAAM,SAAS,EAAE,CAC9D,CACF,CAEA,OAAOA,CACT,CAMO,SAASG,EAAqB,CACnC,IAAAE,EACA,SAAAJ,EACA,QAAAK,CACF,EAAyB,CAIvB,IAAMC,EAAUZ,EAFG,cAE0B,CAC3C,gBAAiBM,CACnB,CAAC,EAGKO,EAAYH,EAAM,IAExB,MAAO,CACL,IAAK,CAACA,EAAaI,IAAmB,CAChCb,GAGJW,EAAQ,IAAIC,EAAYH,EAAKI,CAAK,CACpC,EAEA,IAAMJ,GAA+B,CACnC,GAAIT,EAAgB,OAEpB,IAAMc,EAAUF,EAAYH,EACtBI,EAAQF,EAAQ,IAAOG,CAAO,EAGpC,GAAID,IAAU,QAAaH,GAAW,CAACA,EAAQG,CAAK,EAAG,CACrD,QAAQ,KACN,wDAAwDC,CAAO,KAAK,KAAK,UAAUD,CAAK,CAAC,EAC3F,EACAF,EAAQ,OAAOG,CAAO,EACtB,MACF,CAEA,OAAOD,CACT,EAEA,OAASJ,GAAsB,CACzBT,GAEJW,EAAQ,OAAOC,EAAYH,CAAG,CAChC,EAGA,MAAO,IAAY,CACbT,GAEJW,EAAQ,MAAM,CAChB,CACF,CACF,CAMO,SAASH,EAAkB,CAChC,IAAAC,EACA,SAAAJ,EACA,QAAAK,CACF,EAAyB,CAEvB,IAAME,EAAYH,EAAM,IAKxB,MAAO,CACL,IAAK,MAAOA,EAAaI,IAA4B,CAC/Cb,GAGJ,MAAMF,EAAQ,IAAIc,EAAYH,EAAKI,EAAOR,CAAQ,CACpD,EACA,IAAK,MAAOI,GAAwC,CAClD,GAAIT,EAAgB,OAEpB,IAAMc,EAAUF,EAAYH,EACtBI,EAAQ,MAAMf,EAAQ,IAAOgB,CAAO,EAG1C,GAAID,IAAU,QAAaH,GAAW,CAACA,EAAQG,CAAK,EAAG,CACrD,QAAQ,KACN,qDAAqDJ,CAAG,IACxDI,CACF,EACA,MAAMf,EAAQ,OAAOgB,CAAO,EAC5B,MACF,CAEA,OAAOD,CACT,EACA,OAAQ,MAAOJ,GAA+B,CACxCT,GAEJ,MAAMF,EAAQ,OAAOc,EAAYH,CAAG,CACtC,EACA,MAAO,SAA2B,CAC5BT,GAEJ,MAAMF,EAAQ,MAAM,CACtB,CACF,CACF","names":["kvStore","createLocalStore","IS_NOT_BROWSER","getStorageAdapter","options","defaultStoreExpiryMs","store","expiryMs","config","localStoreAdapter","kvStoreAdapter","key","isValid","adapter","keyPrefix","value","fullKey"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkUFJQLQFImincjs = require('./chunk-UFJQLQFI.min.cjs');var _timeConstants = require('@choksheak/ts-utils/timeConstants');var _react = require('react');var T=typeof window<"u",d= exports.a ={storeExpiryMs:30*_timeConstants.MS_PER_DAY,lazyLoad:!1,log:(...e)=>{T&&console.log("[sharedState]",...e)}};function U(e){Object.assign(d,e)}function v(){let e=new Map,n=new Map;function c(r,i,o){let s=n.get(r);if(!s)return;let u=Array.from(s.values());for(let f of u)try{f(i,o)}catch(l){console.error("Error invoking subscriber:",l)}}return{get(r){return e.get(r)},set(r,i){let o=e.get(r);o!==i&&(e.set(r,i),c(r,i,o))},delete(r){e.delete(r)},setNoNotify(r,i){e.set(r,i)},subscribe(r,i){let o=n.get(r);return o||(o=new Set,n.set(r,o)),o.add(i),()=>{o.delete(i),o.size===0&&n.delete(r)}}}}function w(){if(T){let e=window.globalThis;return e.reactUtilsPubSubStore||(e.reactUtilsPubSubStore=v())}return v()}var S=w(),g="state",P=0;function x(){if(T){let e=window.globalThis;return e.reactUtilsStateKey=(_nullishCoalesce(e.reactUtilsStateKey, () => (0)))+1,e.reactUtilsStateKey}return++P}function R(e,n){let c=()=>{},r=new Promise(t=>{c=t}),i=c,o=_optionalChain([n, 'optionalAccess', _ => _.log])||d.log,s=String(x());o&&_optionalChain([n, 'optionalAccess', _2 => _2.name])&&o(`${n.name} -> ${s}`);let u=_chunkUFJQLQFImincjs.a.call(void 0, n,d.storeExpiryMs);S.setNoNotify(s,e);let f=_optionalChain([n, 'optionalAccess', _3 => _3.lazyLoad]),l=f!==void 0?f:d.lazyLoad;function p(t){let b=t!==void 0?t:e;S.set(s,b),a.initDone=!0,i()}let a={name:_optionalChain([n, 'optionalAccess', _4 => _4.name]),defaultValue:e,pubSubKey:s,readyPromise:r,storeExpiryMs:d.storeExpiryMs,lazy:l,storageAdapter:u,initStarted:!1,initDone:!1,subscribe(t){return S.subscribe(s,()=>t())},hasStore(){return!!u},setInStore(t){return _optionalChain([u, 'optionalAccess', _5 => _5.set, 'call', _6 => _6(g,t)])},getFromStore(){return _optionalChain([u, 'optionalAccess', _7 => _7.get, 'call', _8 => _8(g)])},getSnapshot(){return S.get(s)},setValue(t){if(typeof t=="function"){let b=S.get(s);t=t(b)}S.set(s,t),a.setInStore(t)},delete(){return S.set(s,e),_optionalChain([u, 'optionalAccess', _9 => _9.set, 'call', _10 => _10(g,e)])},initDefaultValueOnce(){if(a.initDone||a.initStarted)return;a.initStarted=!0;let t=a.getFromStore();if(t instanceof Promise)return t.then(p);p(t)}};return l||a.initDefaultValueOnce(),a}function O(e){return e.initDefaultValueOnce(),[_react.useSyncExternalStore.call(void 0, c=>e.subscribe(c),()=>e.getSnapshot(),()=>e.getSnapshot()),e.setValue]}function C(e){return O(e)[0]}function L(e){return e.initDefaultValueOnce(),e.setValue}exports.a = d; exports.b = U; exports.c = R; exports.d = O; exports.e = C; exports.f = L;
|
|
2
|
+
//# sourceMappingURL=chunk-SQX7XDQJ.min.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/choksheaklau/src/react-utils/dist/chunk-SQX7XDQJ.min.cjs","../src/sharedState.ts"],"names":["hasWindow","SharedStateConfig","MS_PER_DAY","args","configureSharedState","config","createPubSubStore","dataByKey","subscribersByKey","notify","key","next","prev","subscribers","copy","subscriber","e","value","getOrCreatePubSubStore","t","pubSubStore","STORAGE_KEY","stateKey","getNextStateKey","sharedState","defaultValue","options","readyResolve","readyPromise","resolve","resolveReadyPromise","log","pubSubKey"],"mappings":"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","file":"/Users/choksheaklau/src/react-utils/dist/chunk-SQX7XDQJ.min.cjs","sourcesContent":[null,"/**\n * @packageDocumentation\n *\n * The \"shared state\" is a React state that shares the same value across the\n * entire app. Users declare a shared state constant that can be reused across\n * multiple components with the same underlying value.\n *\n * Shared states provide persistence to local storage and/or indexed DB out of\n * the box, by using \"@choksheak/ts-utils\". Note that no matter if the shared\n * state uses persistence or not, it will always maintain a copy of the state\n * in memory. Persisted values can be configured with an automatic expiration\n * duration.\n *\n * This module is largely similar to the open source \"jotai\" npm library. You\n * can use shared states to replace \"jotai\" in your code, and optionally make\n * use of the persistence mechanism. A quick migration guide from jotai is:\n *\n * ```\n * atom() --> sharedState()\n * useAtom() --> useSharedState()\n * useAtomValue() --> useSharedStateValue()\n * useSetAtom() --> useSharedStateSetter()\n * ```\n *\n * Example:\n * ```\n * import { sharedState, useSharedState } from \"@choksheak/react-utils/sharedState\";\n *\n * // Create a new shared state in the top level scope.\n * // The first argument is the default value, which is required.\n * // The second argument is an options object, and is optional (defaults\n * // to storing in memory only without any persistence).\n * const usersState = sharedState(\n * [], { store: { persistTo: \"indexedDb\", key: \"users\" }}\n * );\n *\n * export const UsersComponent: React.FC = () => {\n * // Get both the value and the setter.\n * const [users, setUsers] = useSharedState(usersState);\n * ...\n * };\n *\n * export const ReadOnlyComponent: React.FC = () => {\n * // Get the value only.\n * const users = useSharedStateValue(usersState);\n * ...\n * };\n *\n * export const WriteOnlyComponent: React.FC = () => {\n * // Get the setter only.\n * const setUsers = useSharedStateSetter(usersState);\n * ...\n * };\n * ```\n */\n\nimport { MS_PER_DAY } from \"@choksheak/ts-utils/timeConstants\";\nimport { Dispatch, SetStateAction, useSyncExternalStore } from \"react\";\n\nimport { getStorageAdapter, StorageOptions } from \"./storage\";\n\nconst hasWindow = typeof window !== \"undefined\";\n\n/************************************************************************/\n/* Global config */\n/************************************************************************/\n\n/**\n * These values are configurable by the user at any time.\n */\nexport const SharedStateConfig = {\n /**\n * Default duration for storage expiration in milliseconds. Initial value\n * is 30 days, but can be changed to anything.\n */\n storeExpiryMs: 30 * MS_PER_DAY,\n\n /**\n * True to load from storage only on mount, false (default) to load in\n * the top level scope when the shared state is defined.\n */\n lazyLoad: false,\n\n /** Default to log to console. */\n log: (...args: unknown[]) => {\n if (!hasWindow) return; // don't log in the SSR server side\n console.log(\"[sharedState]\", ...args);\n },\n};\n\nexport type SharedStateConfig = typeof SharedStateConfig;\n\n/** Convenience function to update global defaults. */\nexport function configureSharedState(config: Partial<SharedStateConfig>) {\n Object.assign(SharedStateConfig, config);\n}\n\n/************************************************************************/\n/* Pub-sub store\n/************************************************************************/\n\ntype Subscriber<T> = (next: T, prev: T) => void;\n\nfunction createPubSubStore() {\n const dataByKey = new Map<string, unknown>();\n const subscribersByKey = new Map<string, Set<Subscriber<unknown>>>();\n\n function notify<T>(key: string, next: T, prev: T): void {\n const subscribers = subscribersByKey.get(key);\n if (!subscribers) return;\n\n // Make copy to protect against mutation during iteration.\n const copy = Array.from(subscribers.values());\n for (const subscriber of copy) {\n try {\n subscriber(next, prev);\n } catch (e) {\n console.error(`Error invoking subscriber:`, e);\n }\n }\n }\n\n return {\n // This could be undefined if T includes undefined, else it should never\n // return undefined because the user has to always specify the default value.\n get<T>(key: string): T {\n return dataByKey.get(key) as T;\n },\n\n set<T>(key: string, value: T): void {\n const prev = dataByKey.get(key) as T;\n\n // Do nothing if no change.\n if (prev === value) return;\n\n dataByKey.set(key, value);\n notify(key, value, prev);\n },\n\n delete(key: string): void {\n dataByKey.delete(key);\n },\n\n setNoNotify<T>(key: string, value: T): void {\n dataByKey.set(key, value);\n },\n\n // Subscribe to changes of a specific key\n subscribe<T>(key: string, subscriber: Subscriber<T>): () => void {\n let subscribers = subscribersByKey.get(key);\n if (!subscribers) {\n subscribers = new Set();\n subscribersByKey.set(key, subscribers);\n }\n\n // Type coercion: we store Subscriber<unknown>\n subscribers.add(subscriber as Subscriber<unknown>);\n\n // Return unsubscribe function\n return () => {\n subscribers.delete(subscriber as Subscriber<unknown>);\n if (subscribers.size === 0) subscribersByKey.delete(key);\n };\n },\n } as const;\n}\n\n/**\n * Ensure we always use the same store. If we create two stores, then the\n * reactive updates will fail.\n */\nfunction getOrCreatePubSubStore() {\n if (hasWindow) {\n const t = window.globalThis as {\n reactUtilsPubSubStore?: ReturnType<typeof createPubSubStore>;\n };\n return (\n t.reactUtilsPubSubStore || (t.reactUtilsPubSubStore = createPubSubStore())\n );\n }\n return createPubSubStore();\n}\n\nconst pubSubStore = getOrCreatePubSubStore();\n\n/************************************************************************/\n/* Shared state implementation */\n/************************************************************************/\n\nconst STORAGE_KEY = \"state\";\n\n/** Options to configure a shared state. */\nexport type SharedStateOptions<T> = {\n /** Load from store only on first use of useSharedState(). */\n lazyLoad?: boolean;\n /** Used for debug logging. */\n name?: string;\n /** Customize the logger. */\n log?: (...args: unknown[]) => void;\n} & StorageOptions<T>;\n\nlet stateKey = 0;\n\n// Try to make this safe across hot reloads and bundling.\nfunction getNextStateKey() {\n if (hasWindow) {\n const t = window.globalThis as { reactUtilsStateKey?: number };\n t.reactUtilsStateKey = (t.reactUtilsStateKey ?? 0) + 1;\n return t.reactUtilsStateKey;\n }\n return ++stateKey;\n}\n\n/**\n * Create a new shared state object. Put this code at the top level scope:\n *\n * Example:\n * ```\n * const counterState = sharedState<number>(0);\n * ```\n */\nexport function sharedState<T>(\n defaultValue: T,\n options?: SharedStateOptions<T>,\n) {\n let readyResolve: () => void = () => {};\n\n const readyPromise = new Promise<void>((resolve) => {\n readyResolve = resolve;\n });\n\n const resolveReadyPromise = readyResolve;\n\n const log = options?.log || SharedStateConfig.log;\n\n // We'll make a new key with each hot reload, but that's ok.\n const pubSubKey = String(getNextStateKey());\n\n if (log && options?.name) {\n log(`${options.name} -> ${pubSubKey}`);\n }\n\n // Use max of 1 storage adapter per shared state.\n const storageAdapter = getStorageAdapter(\n options,\n SharedStateConfig.storeExpiryMs,\n );\n\n // Always set the default value first to avoid returning undefineds if that\n // is not part of T. Don't notify with the default value.\n pubSubStore.setNoNotify(pubSubKey, defaultValue);\n\n const lazyLoad = options?.lazyLoad;\n const lazy = lazyLoad !== undefined ? lazyLoad : SharedStateConfig.lazyLoad;\n\n function completeInit(stored: T | undefined) {\n const value = stored !== undefined ? stored : defaultValue;\n\n pubSubStore.set(pubSubKey, value);\n\n // @ts-expect-error ts(2540) - Assign to readonly property.\n obj.initDone = true;\n resolveReadyPromise();\n }\n\n const obj = {\n name: options?.name,\n defaultValue,\n pubSubKey,\n\n /** Allow users to await for the completion of data init. */\n readyPromise,\n\n storeExpiryMs: SharedStateConfig.storeExpiryMs,\n lazy,\n storageAdapter,\n\n initStarted: false,\n initDone: false,\n\n /** `subscribe` function required by useSyncExternalStore. */\n subscribe(subscriber: () => void): () => void {\n return pubSubStore.subscribe(pubSubKey, () => subscriber());\n },\n\n /** Returns true if there is a backing store. */\n hasStore(): boolean {\n return Boolean(storageAdapter);\n },\n\n /**\n * Set a value directly into the store. Does nothing if there is no\n * backing store.\n *\n * Warning: If you want to set the value properly, you should use\n * `setValue()` instead which also updates the in-memory copy.\n */\n setInStore(value: T): Promise<void> | void {\n return storageAdapter?.set(STORAGE_KEY, value);\n },\n\n /**\n * Get a value directly from the store. Returns undefined if there is no\n * backing store.\n */\n getFromStore(): Promise<T | undefined> | T | undefined {\n return storageAdapter?.get(STORAGE_KEY);\n },\n\n /**\n * Get the value of the shared state.\n * `getSnapshot` function — must return same ref if value unchanged.\n * Note that this would return the default value if data init from store is\n * not completed yet.\n */\n getSnapshot(): T {\n return pubSubStore.get(pubSubKey);\n },\n\n /** Set the value of the shared state. */\n setValue(next: SetStateAction<T>): void {\n if (typeof next === \"function\") {\n const prev = pubSubStore.get<T>(pubSubKey);\n next = (next as (p: T) => T)(prev);\n }\n\n pubSubStore.set(pubSubKey, next);\n void obj.setInStore(next);\n },\n\n /**\n * Remove the value of the shared state. Actually this just sets the value\n * back to the given default value.\n */\n delete(): Promise<void> | void {\n pubSubStore.set(pubSubKey, defaultValue);\n return storageAdapter?.set(STORAGE_KEY, defaultValue);\n },\n\n /** Initial default handling. */\n initDefaultValueOnce(): Promise<void> | void {\n if (obj.initDone || obj.initStarted) return;\n // @ts-expect-error ts(2540) - Assign to readonly property.\n obj.initStarted = true;\n\n const maybePromise = obj.getFromStore();\n\n // Allow sync vs async code paths. This allows init to be fully completed\n // from store before the sharedState() function returns.\n if (maybePromise instanceof Promise) {\n return maybePromise.then(completeInit);\n } else {\n const stored = maybePromise;\n completeInit(stored);\n }\n },\n } as const;\n\n if (!lazy) {\n obj.initDefaultValueOnce();\n }\n\n return obj;\n}\n\nexport type SharedState<T> = ReturnType<typeof sharedState<T>>;\n\n/**\n * React hook for subscribing to a key in the global store.\n *\n * Example:\n * ```\n * const [counter, setCounter] = useSharedState(counterState);\n * ```\n */\nexport function useSharedState<T>(\n state: SharedState<T>,\n): [T, Dispatch<SetStateAction<T>>] {\n void state.initDefaultValueOnce();\n\n const value = useSyncExternalStore(\n (onStoreChange) => state.subscribe(onStoreChange),\n () => state.getSnapshot(),\n // getServerSnapshot is needed to prevent SSR dev errors in nextjs.\n () => state.getSnapshot(),\n );\n\n return [value, state.setValue];\n}\n\n/**\n * Same as useSharedState(), but returns the value only.\n *\n * Example:\n * ```\n * const counter = useSharedStateValue(counterState);\n * ```\n */\nexport function useSharedStateValue<T>(state: SharedState<T>) {\n return useSharedState(state)[0];\n}\n\n/**\n * Same as useSharedState(), but returns the setter only.\n *\n * Example:\n * ```\n * const setCounter = useSharedStateSetter(counterState);\n * ```\n */\nexport function useSharedStateSetter<T>(state: SharedState<T>) {\n void state.initDefaultValueOnce();\n\n return state.setValue;\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(n){let t=new Set;return JSON.stringify(n,(s,r)=>{if(typeof r=="function")throw new Error("Functions should not be passed into query parameters");if(!r||typeof r!="object"||Array.isArray(r))return r;if(t.has(r))return"[Circular]";if(t.add(r),r!==n)try{JSON.stringify(r)}catch{return"[Unserializable]"}return Object.keys(r).sort().reduce((i,o)=>(i[o]=r[o],i),{})})}export{e as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TDP547RX.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/stringify.ts"],"sourcesContent":["/**\n * @packageDocumentation\n *\n * Implements special stringify for use in the shared queries. This will likely\n * not be reusable for your own use cases.\n *\n * Normally you will not need to use this module directly, but if you have a\n * need for it, feel free to use it.\n */\n\n/**\n * JSON stringify a value of any type, and returns an unsafe string. The string\n * is \"unsafe\" because you might not be able to restore the original object\n * using the serialized JSON. This is specifically used for query key generation\n * and is not suitable for more general uses.\n *\n * Note: The given value should not contain any functions because functions\n * cannot be serialized and deserialized properly.\n */\nexport function stringifyDeterministicForKeys(params: unknown): string {\n const cache = new Set();\n\n return JSON.stringify(params, (_, value) => {\n if (typeof value === \"function\") {\n throw new Error(`Functions should not be passed into query parameters`);\n }\n\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return value;\n }\n\n if (cache.has(value)) {\n // Circular reference detected! Return a placeholder string.\n return \"[Circular]\";\n }\n\n cache.add(value);\n\n // Don't crash on circular references, but don't mark the top level object\n // as circular because we want to return as much string as possible.\n if (value !== params) {\n try {\n JSON.stringify(value);\n } catch {\n return \"[Unserializable]\";\n }\n }\n\n return Object.keys(value)\n .sort()\n .reduce(\n (result: Record<string, unknown>, key: string) => {\n result[key] = value[key];\n return result;\n },\n {} as Record<string, unknown>,\n );\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/stringify.ts"],"sourcesContent":["/**\n * @packageDocumentation\n *\n * Implements special stringify for use in the shared queries. This will likely\n * not be reusable for your own use cases.\n *\n * Normally you will not need to use this module directly, but if you have a\n * need for it, feel free to use it.\n */\n\n/**\n * JSON stringify a value of any type, and returns an unsafe string. The string\n * is \"unsafe\" because you might not be able to restore the original object\n * using the serialized JSON. This is specifically used for query key generation\n * and is not suitable for more general uses.\n *\n * Note: The given value should not contain any functions because functions\n * cannot be serialized and deserialized properly.\n */\nexport function stringifyDeterministicForKeys(params: unknown): string {\n const cache = new Set();\n\n return JSON.stringify(params, (_, value) => {\n if (typeof value === \"function\") {\n throw new Error(`Functions should not be passed into query parameters`);\n }\n\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return value;\n }\n\n if (cache.has(value)) {\n // Circular reference detected! Return a placeholder string.\n return \"[Circular]\";\n }\n\n cache.add(value);\n\n // Don't crash on circular references, but don't mark the top level object\n // as circular because we want to return as much string as possible.\n if (value !== params) {\n try {\n JSON.stringify(value);\n } catch {\n return \"[Unserializable]\";\n }\n }\n\n return Object.keys(value)\n .sort()\n .reduce(\n (result: Record<string, unknown>, key: string) => {\n result[key] = value[key];\n return result;\n },\n {} as Record<string, unknown>,\n );\n });\n}\n"],"mappings":"AAmBO,SAASA,EAA8BC,EAAyB,CACrE,IAAMC,EAAQ,IAAI,IAElB,OAAO,KAAK,UAAUD,EAAQ,CAACE,EAAGC,IAAU,CAC1C,GAAI,OAAOA,GAAU,WACnB,MAAM,IAAI,MAAM,sDAAsD,EAGxE,GAAI,CAACA,GAAS,OAAOA,GAAU,UAAY,MAAM,QAAQA,CAAK,EAC5D,OAAOA,EAGT,GAAIF,EAAM,IAAIE,CAAK,EAEjB,MAAO,aAOT,GAJAF,EAAM,IAAIE,CAAK,EAIXA,IAAUH,EACZ,GAAI,CACF,KAAK,UAAUG,CAAK,CACtB,MAAQ,CACN,MAAO,kBACT,CAGF,OAAO,OAAO,KAAKA,CAAK,EACrB,KAAK,EACL,OACC,CAACC,EAAiCC,KAChCD,EAAOC,CAAG,EAAIF,EAAME,CAAG,EAChBD,GAET,CAAC,CACH,CACJ,CAAC,CACH","names":["stringifyDeterministicForKeys","params","cache","_","value","result","key"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sharedState,
|
|
3
3
|
useSharedState
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-H4OYYPJV.js";
|
|
5
5
|
import {
|
|
6
6
|
stringifyDeterministicForKeys
|
|
7
7
|
} from "./chunk-7XC6EVMX.js";
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
useState
|
|
22
22
|
} from "react";
|
|
23
23
|
import XXH from "xxhashjs";
|
|
24
|
+
var hasWindow = typeof window !== "undefined";
|
|
24
25
|
var SharedQueryConfig = {
|
|
25
26
|
/** Refetch on every page load. */
|
|
26
27
|
staleMs: 0,
|
|
@@ -35,14 +36,17 @@ var SharedQueryConfig = {
|
|
|
35
36
|
/** 100kb limit before discarding old records. */
|
|
36
37
|
maxBytes: 1e5,
|
|
37
38
|
/** Default to log to console. */
|
|
38
|
-
log: (...args) =>
|
|
39
|
+
log: (...args) => {
|
|
40
|
+
if (!hasWindow) return;
|
|
41
|
+
console.log("[sharedQuery]", ...args);
|
|
42
|
+
}
|
|
39
43
|
};
|
|
40
44
|
function configureSharedQuery(config) {
|
|
41
45
|
Object.assign(SharedQueryConfig, config);
|
|
42
46
|
}
|
|
43
47
|
var moduleQueryRegistry = /* @__PURE__ */ new Map();
|
|
44
48
|
function getOrCreateQueryRegistry() {
|
|
45
|
-
if (
|
|
49
|
+
if (hasWindow) {
|
|
46
50
|
const g = window.globalThis;
|
|
47
51
|
return g.reactUtilsQueryRegistry ??= /* @__PURE__ */ new Map();
|
|
48
52
|
}
|
|
@@ -471,6 +475,7 @@ function useSharedQuery(query, ...args) {
|
|
|
471
475
|
const stableArgs = useDeepMemo(args);
|
|
472
476
|
const [queryState, setQueryState] = useSharedState(query.queryState);
|
|
473
477
|
const isMounted = useRef(true);
|
|
478
|
+
const initQueryKeyDone = useRef("");
|
|
474
479
|
const queryKey = useMemo(
|
|
475
480
|
() => query.getQueryKey(stableArgs),
|
|
476
481
|
[query, stableArgs]
|
|
@@ -537,15 +542,22 @@ function useSharedQuery(query, ...args) {
|
|
|
537
542
|
},
|
|
538
543
|
[query, queryKey, setQueryStateValue, stableArgs]
|
|
539
544
|
);
|
|
545
|
+
useEffect(() => {
|
|
546
|
+
if (initQueryKeyDone.current === queryKey) return;
|
|
547
|
+
initQueryKeyDone.current = queryKey;
|
|
548
|
+
if (queryStateValue.data !== void 0) {
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
551
|
+
void executeQuery(false);
|
|
552
|
+
}, [executeQuery, queryKey, queryStateValue.data]);
|
|
540
553
|
useEffect(() => {
|
|
541
554
|
isMounted.current = true;
|
|
542
555
|
query.mount(queryKey);
|
|
543
|
-
void executeQuery(false);
|
|
544
556
|
return () => {
|
|
545
557
|
isMounted.current = false;
|
|
546
558
|
query.unmount(queryKey);
|
|
547
559
|
};
|
|
548
|
-
}, [
|
|
560
|
+
}, [query, queryKey]);
|
|
549
561
|
return useMemo(() => {
|
|
550
562
|
return {
|
|
551
563
|
...queryStateValue,
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _kvStore = require('@choksheak/ts-utils/kvStore');var _localStore = require('@choksheak/ts-utils/localStore');var n=typeof window>"u";function S(s,a){let{store:e}=_nullishCoalesce(s, () => ({}));if(!e)return null;if("persistTo"in e&&typeof e.persistTo=="string"&&"key"in e&&typeof e.key=="string"){let i=e.expiryMs||a,t={...e,expiryMs:i};switch(e.persistTo){case"localStorage":return c(t);case"indexedDb":return l(t);default:throw e.persistTo,new Error(`Unknown store.adapter ${e.persistTo}`)}}return e}function c({key:s,expiryMs:a,isValid:e}){let t=_localStore.createLocalStore.call(void 0, "react-utils",{defaultExpiryMs:a}),o=s+":";return{set:(r,d)=>{n||t.set(o+r,d)},get:r=>{if(n)return;let d=o+r,p=t.get(d);if(p!==void 0&&e&&!e(p)){console.warn(`localStorage adapter: Auto-discard invalid value for ${d}: ${JSON.stringify(p)}`),t.delete(d);return}return p},delete:r=>{n||t.delete(o+r)},clear:()=>{n||t.clear()}}}function l({key:s,expiryMs:a,isValid:e}){let i=s+":";return{set:async(t,o)=>{n||await _kvStore.kvStore.set(i+t,o,a)},get:async t=>{if(n)return;let o=i+t,r=await _kvStore.kvStore.get(o);if(r!==void 0&&e&&!e(r)){console.warn(`indexedDb adapter: Auto-discard invalid value for ${t}:`,r),await _kvStore.kvStore.delete(o);return}return r},delete:async t=>{n||await _kvStore.kvStore.delete(i+t)},clear:async()=>{n||await _kvStore.kvStore.clear()}}}exports.a = S; exports.b = c; exports.c = l;
|
|
2
|
+
//# sourceMappingURL=chunk-UFJQLQFI.min.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/storage.ts"],"names":["IS_NOT_BROWSER","getStorageAdapter","options","defaultStoreExpiryMs","store","expiryMs","config","localStoreAdapter","kvStoreAdapter"],"mappings":"AAYA,mOAAwB,4DACS,IAkC3BA,CAAAA,CAAiB,OAAO,MAAA,CAAW,GAAA,CAMlC,SAASC,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAC0B,CAC1B,GAAM,CAAE,KAAA,CAAAC,CAAM,CAAA,kBAAIF,CAAAA,SAAW,CAAC,GAAA,CAE9B,EAAA,CAAI,CAACE,CAAAA,CACH,OAAO,IAAA,CAGT,EAAA,CACE,WAAA,GAAeA,CAAAA,EACf,OAAOA,CAAAA,CAAM,SAAA,EAAc,QAAA,EAC3B,KAAA,GAASA,CAAAA,EACT,OAAOA,CAAAA,CAAM,GAAA,EAAQ,QAAA,CACrB,CACA,IAAMC,CAAAA,CAAWD,CAAAA,CAAM,QAAA,EAAYD,CAAAA,CAC7BG,CAAAA,CAAS,CAAE,GAAGF,CAAAA,CAAO,QAAA,CAAAC,CAAS,CAAA,CAEpC,MAAA,CAAQD,CAAAA,CAAM,SAAA,CAAW,CACvB,IAAK,cAAA,CACH,OAAOG,CAAAA,CAAqBD,CAAM,CAAA,CAEpC,IAAK,WAAA,CACH,OAAOE,CAAAA,CAAkBF,CAAM,CAAA,CAEjC,OAAA,CACE,MAAAF,CAAAA,CAAM,SAAA,CACA,IAAI,KAAA,CAAM,CAAA,sBAAA,EAAyBA,CAAAA,CAAM,SAAS,CAAA,CAAA","file":"/Users/choksheaklau/src/react-utils/dist/chunk-UFJQLQFI.min.cjs","sourcesContent":["/**\n * @packageDocumentation\n *\n * Backing storage implementation for the shared state. Note that this uses the\n * LocalStore and KvStore from package \"@choksheak/ts-utils\", but is customized\n * to be used for shared states.\n *\n * Normally you will not need to use this module directly, but if you have a\n * need for it, feel free to use it.\n */\n\nimport { Duration } from \"@choksheak/ts-utils/duration\";\nimport { kvStore } from \"@choksheak/ts-utils/kvStore\";\nimport { createLocalStore } from \"@choksheak/ts-utils/localStore\";\nimport { StorageAdapter } from \"@choksheak/ts-utils/storageAdapter\";\n\n/** List of all available pre-built persistence options. */\nexport type PersistTo = \"localStorage\" | \"indexedDb\";\n\n/** Options to configure a pre-built store adapter. */\nexport type StoreOptions = {\n /** Choose which pre-built store adapter to use. */\n persistTo: PersistTo;\n\n /** Storage key to act as a namespace to store the data. */\n key: string;\n\n /** How long to wait before the value is considered expired. */\n expiryMs?: number | Duration;\n\n /** Returns true if the given value supposed to be of type T is valid. */\n isValid?: (u: unknown) => boolean;\n};\n\nexport type StoreConstructorArgs = Omit<StoreOptions, \"persistTo\">;\n\n/** Either use a pre-built store, or a custom one you provide. */\nexport type StorageOptions<T> = {\n /**\n * You can either specify the storage adapter directly to use a custom\n * store, or specify the properties to use the pre-built ones.\n */\n store?: StorageAdapter<T> | StoreOptions;\n};\n\n// In SSR (Server-Side Rendering) mode, we never want to use our storage\n// adapters for anything.\nconst IS_NOT_BROWSER = typeof window === \"undefined\";\n\n/**\n * Convert a StorageOptions<T> config object into an actual storage adapter, or\n * returns null if a storage adapter is not configured.\n */\nexport function getStorageAdapter<T>(\n options: StorageOptions<T> | undefined,\n defaultStoreExpiryMs: number,\n): StorageAdapter<T> | null {\n const { store } = options ?? {};\n\n if (!store) {\n return null;\n }\n\n if (\n \"persistTo\" in store &&\n typeof store.persistTo === \"string\" &&\n \"key\" in store &&\n typeof store.key === \"string\"\n ) {\n const expiryMs = store.expiryMs || defaultStoreExpiryMs;\n const config = { ...store, expiryMs };\n\n switch (store.persistTo) {\n case \"localStorage\":\n return localStoreAdapter<T>(config);\n\n case \"indexedDb\":\n return kvStoreAdapter<T>(config);\n\n default:\n store.persistTo satisfies never;\n throw new Error(`Unknown store.adapter ${store.persistTo}`);\n }\n }\n\n return store as StorageAdapter<T>;\n}\n\n/**\n * Create a new SSR-safe local store adapter, which allows users to reuse the\n * same adapter in multiple shared states or shared queries.\n */\nexport function localStoreAdapter<T>({\n key,\n expiryMs,\n isValid,\n}: StoreConstructorArgs) {\n // Put everything in the same store so that we can GC properly.\n const STORE_NAME = \"react-utils\";\n\n const adapter = createLocalStore(STORE_NAME, {\n defaultExpiryMs: expiryMs,\n });\n\n // Use the key prefix as a unique namespace for this store.\n const keyPrefix = key + \":\";\n\n return {\n set: (key: string, value: T): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n // Also apply the custom expiryMs on every item in this store.\n adapter.set(keyPrefix + key, value);\n },\n\n get: (key: string): T | undefined => {\n if (IS_NOT_BROWSER) return undefined; // handle SSR\n\n const fullKey = keyPrefix + key;\n const value = adapter.get<T>(fullKey);\n\n // If there is no value, don't try to check for validatity.\n if (value !== undefined && isValid && !isValid(value)) {\n console.warn(\n `localStorage adapter: Auto-discard invalid value for ${fullKey}: ${JSON.stringify(value)}`,\n );\n adapter.delete(fullKey);\n return undefined;\n }\n\n return value;\n },\n\n delete: (key: string): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n adapter.delete(keyPrefix + key);\n },\n\n /** Note that this will clear all keys in all shared states. */\n clear: (): void => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n adapter.clear();\n },\n };\n}\n\n/**\n * Create a new SSR-safe indexed DB KV store adapter, which allows users to\n * reuse the same adapter in multiple shared states or shared queries.\n */\nexport function kvStoreAdapter<T>({\n key,\n expiryMs,\n isValid,\n}: StoreConstructorArgs) {\n // Use the key prefix as a unique namespace for this store.\n const keyPrefix = key + \":\";\n\n // Prefix all keys using `keyPrefix` so that we can keep all data in\n // the same store in the same DB. If we keep the data in different\n // DB stores, then GC will not be able to clean up abandoned stores.\n return {\n set: async (key: string, value: T): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n // Also apply the custom expiryMs on every item in this store.\n await kvStore.set(keyPrefix + key, value, expiryMs);\n },\n get: async (key: string): Promise<T | undefined> => {\n if (IS_NOT_BROWSER) return undefined; // handle SSR\n\n const fullKey = keyPrefix + key;\n const value = await kvStore.get<T>(fullKey);\n\n // If there is no value, don't try to check for validatity.\n if (value !== undefined && isValid && !isValid(value)) {\n console.warn(\n `indexedDb adapter: Auto-discard invalid value for ${key}:`,\n value,\n );\n await kvStore.delete(fullKey);\n return undefined;\n }\n\n return value;\n },\n delete: async (key: string): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n await kvStore.delete(keyPrefix + key);\n },\n clear: async (): Promise<void> => {\n if (IS_NOT_BROWSER) return; // handle SSR\n\n await kvStore.clear();\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports),n=(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
|
|
2
|
+
//# sourceMappingURL=chunk-UNSZMVZB.min.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports),n= exports.b =(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));exports.a = m; exports.b = n; exports.c = o;
|
|
2
|
+
//# sourceMappingURL=chunk-ZCDXPV3A.min.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/choksheaklau/src/react-utils/dist/chunk-ZCDXPV3A.min.cjs"],"names":[],"mappings":"AAAA,6EAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4B","file":"/Users/choksheaklau/src/react-utils/dist/chunk-ZCDXPV3A.min.cjs"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./chunk-UNSZMVZB.min.js";var R=Object.defineProperty,P=t=>{throw TypeError(t)},W=(t,e,r)=>e in t?R(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,I=(t,e,r)=>W(t,typeof e!="symbol"?e+"":e,r),q=(t,e,r)=>e.has(t)||P("Cannot "+r),m=(t,e,r)=>(q(t,e,"read from private field"),r?r.call(t):e.get(t)),E=(t,e,r)=>e.has(t)?P("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),w=(t,e,r,s)=>(q(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),x=(t,e,r,s)=>({set _(h){w(t,e,h,r)},get _(){return m(t,e,s)}}),B=class{constructor(t){I(this,"value"),I(this,"next"),this.value=t}},p,v,f,F=class{constructor(){E(this,p),E(this,v),E(this,f),this.clear()}enqueue(t){let e=new B(t);m(this,p)?(m(this,v).next=e,w(this,v,e)):(w(this,p,e),w(this,v,e)),x(this,f)._++}dequeue(){let t=m(this,p);if(t)return w(this,p,m(this,p).next),x(this,f)._--,t.value}clear(){w(this,p,void 0),w(this,v,void 0),w(this,f,0)}get size(){return m(this,f)}*[Symbol.iterator](){let t=m(this,p);for(;t;)yield t.value,t=t.next}};p=new WeakMap,v=new WeakMap,f=new WeakMap;function g(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=new F,r=0,s=()=>{r--,e.size>0&&e.dequeue()()},h=async(n,l,c)=>{r++;let i=(async()=>n(...c))();l(i);try{await i}catch{}s()},u=(n,l,c)=>{e.enqueue(h.bind(void 0,n,l,c)),(async()=>(await Promise.resolve(),r<t&&e.size>0&&e.dequeue()()))()},o=(n,...l)=>new Promise(c=>{u(n,c,l)});return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),o}function a(t,e=null){let r=new Event(t);return e&&Object.defineProperty(r,"task",{value:e,enumerable:!0,writable:!1,configurable:!1}),r}var Q={1:12.71,2:4.303,3:3.182,4:2.776,5:2.571,6:2.447,7:2.365,8:2.306,9:2.262,10:2.228,11:2.201,12:2.179,13:2.16,14:2.145,15:2.131,16:2.12,17:2.11,18:2.101,19:2.093,20:2.086,21:2.08,22:2.074,23:2.069,24:2.064,25:2.06,26:2.056,27:2.052,28:2.048,29:2.045,30:2.042,31:2.0399,32:2.0378,33:2.0357,34:2.0336,35:2.0315,36:2.0294,37:2.0273,38:2.0252,39:2.0231,40:2.021,41:2.0198,42:2.0186,43:2.0174,44:2.0162,45:2.015,46:2.0138,47:2.0126,48:2.0114,49:2.0102,50:2.009,51:2.0081,52:2.0072,53:2.0063,54:2.0054,55:2.0045,56:2.0036,57:2.0027,58:2.0018,59:2.0009,60:2,61:1.9995,62:1.999,63:1.9985,64:1.998,65:1.9975,66:1.997,67:1.9965,68:1.996,69:1.9955,70:1.995,71:1.9945,72:1.994,73:1.9935,74:1.993,75:1.9925,76:1.992,77:1.9915,78:1.991,79:1.9905,80:1.99,81:1.9897,82:1.9894,83:1.9891,84:1.9888,85:1.9885,86:1.9882,87:1.9879,88:1.9876,89:1.9873,90:1.987,91:1.9867,92:1.9864,93:1.9861,94:1.9858,95:1.9855,96:1.9852,97:1.9849,98:1.9846,99:1.9843,100:1.984,101:1.9838,102:1.9836,103:1.9834,104:1.9832,105:1.983,106:1.9828,107:1.9826,108:1.9824,109:1.9822,110:1.982,111:1.9818,112:1.9816,113:1.9814,114:1.9812,115:1.9819,116:1.9808,117:1.9806,118:1.9804,119:1.9802,120:1.98,infinity:1.96},C=Q,V=t=>t/1e6,K=()=>V(Number(process.hrtime.bigint())),Y=()=>performance.now();function $(t){return t!==null&&typeof t=="object"&&typeof t.then=="function"}var D=(t,e)=>t.reduce((r,s)=>r+(s-e)**2,0)/(t.length-1)||0,G=(async()=>{}).constructor,H=t=>t.constructor===G,J=async t=>{if(H(t.fn))return!0;try{if(t.opts.beforeEach!=null)try{await t.opts.beforeEach.call(t)}catch{}let e=t.fn(),r=$(e);if(r)try{await e}catch{}if(t.opts.afterEach!=null)try{await t.opts.afterEach.call(t)}catch{}return r}catch{return!1}},L=class extends EventTarget{constructor(t,e,r,s={}){super(),this.runs=0,this.bench=t,this.name=e,this.fn=r,this.opts=s}async loop(t,e){var r;let s=this.bench.concurrency==="task",{threshold:h}=this.bench,u=0,o=[];if(this.opts.beforeAll!=null)try{await this.opts.beforeAll.call(this)}catch(i){return{error:i}}let n=await J(this),l=async()=>{this.opts.beforeEach!=null&&await this.opts.beforeEach.call(this);let i=0;if(n){let d=this.bench.now();await this.fn.call(this),i=this.bench.now()-d}else{let d=this.bench.now();this.fn.call(this),i=this.bench.now()-d}o.push(i),u+=i,this.opts.afterEach!=null&&await this.opts.afterEach.call(this)},c=g(h);try{let i=[];for(;(u<t||o.length+c.activeCount+c.pendingCount<e)&&!((r=this.bench.signal)!=null&&r.aborted);)s?i.push(c(l)):await l();i.length&&await Promise.all(i)}catch(i){return{error:i}}if(this.opts.afterAll!=null)try{await this.opts.afterAll.call(this)}catch(i){return{error:i}}return{samples:o}}async run(){var t,e;if((t=this.result)!=null&&t.error)return this;this.dispatchEvent(a("start",this)),await this.bench.setup(this,"run");let{samples:r,error:s}=await this.loop(this.bench.time,this.bench.iterations);if(this.bench.teardown(this,"run"),r){let h=r.reduce((b,y)=>b+y,0);this.runs=r.length,r.sort((b,y)=>b-y);let u=h/this.runs,o=1e3/u,n=r.length,l=n-1,c=r[0],i=r[l],d=h/r.length||0,k=D(r,d),T=Math.sqrt(k),_=T/Math.sqrt(n),N=C[String(Math.round(l)||1)]||C.infinity,M=_*N,z=M/d*100,S=r[Math.ceil(n*.75)-1],j=r[Math.ceil(n*.99)-1],O=r[Math.ceil(n*.995)-1],A=r[Math.ceil(n*.999)-1];if((e=this.bench.signal)!=null&&e.aborted)return this;this.setResult({totalTime:h,min:c,max:i,hz:o,period:u,samples:r,mean:d,variance:k,sd:T,sem:_,df:l,critical:N,moe:M,rme:z,p75:S,p99:j,p995:O,p999:A})}if(s){if(this.setResult({error:s}),this.bench.throws)throw s;this.dispatchEvent(a("error",this)),this.bench.dispatchEvent(a("error",this))}return this.dispatchEvent(a("cycle",this)),this.bench.dispatchEvent(a("cycle",this)),this.dispatchEvent(a("complete",this)),this}async warmup(){var t;if((t=this.result)!=null&&t.error)return;this.dispatchEvent(a("warmup",this)),await this.bench.setup(this,"warmup");let{error:e}=await this.loop(this.bench.warmupTime,this.bench.warmupIterations);if(this.bench.teardown(this,"warmup"),e&&(this.setResult({error:e}),this.bench.throws))throw e}addEventListener(t,e,r){super.addEventListener(t,e,r)}removeEventListener(t,e,r){super.removeEventListener(t,e,r)}setResult(t){this.result={...this.result,...t},Object.freeze(this.result)}reset(){this.dispatchEvent(a("reset",this)),this.runs=0,this.result=void 0}},U=class extends EventTarget{constructor(t={}){var e,r,s,h,u,o,n,l;super(),this._tasks=new Map,this._todos=new Map,this.concurrency=null,this.threshold=1/0,this.warmupTime=100,this.warmupIterations=5,this.time=500,this.iterations=10,this.now=Y,this.now=(e=t.now)!=null?e:this.now,this.warmupTime=(r=t.warmupTime)!=null?r:this.warmupTime,this.warmupIterations=(s=t.warmupIterations)!=null?s:this.warmupIterations,this.time=(h=t.time)!=null?h:this.time,this.iterations=(u=t.iterations)!=null?u:this.iterations,this.signal=t.signal,this.throws=(o=t.throws)!=null?o:!1,this.setup=(n=t.setup)!=null?n:()=>{},this.teardown=(l=t.teardown)!=null?l:()=>{},this.signal&&this.signal.addEventListener("abort",()=>{this.dispatchEvent(a("abort"))},{once:!0})}runTask(t){var e;return(e=this.signal)!=null&&e.aborted?t:t.run()}async run(){if(this.concurrency==="bench")return this.runConcurrently(this.threshold,this.concurrency);this.dispatchEvent(a("start"));let t=[];for(let e of[...this._tasks.values()])t.push(await this.runTask(e));return this.dispatchEvent(a("complete")),t}async runConcurrently(t=1/0,e="bench"){if(this.threshold=t,this.concurrency=e,e==="task")return this.run();this.dispatchEvent(a("start"));let r=g(t),s=[];for(let u of[...this._tasks.values()])s.push(r(()=>this.runTask(u)));let h=await Promise.all(s);return this.dispatchEvent(a("complete")),h}async warmup(){if(this.concurrency==="bench"){await this.warmupConcurrently(this.threshold,this.concurrency);return}this.dispatchEvent(a("warmup"));for(let[,t]of this._tasks)await t.warmup()}async warmupConcurrently(t=1/0,e="bench"){if(this.threshold=t,this.concurrency=e,e==="task"){await this.warmup();return}this.dispatchEvent(a("warmup"));let r=g(t),s=[];for(let[,h]of this._tasks)s.push(r(()=>h.warmup()));await Promise.all(s)}reset(){this.dispatchEvent(a("reset")),this._tasks.forEach(t=>{t.reset()})}add(t,e,r={}){let s=new L(this,t,e,r);return this._tasks.set(t,s),this.dispatchEvent(a("add",s)),this}todo(t,e=()=>{},r={}){let s=new L(this,t,e,r);return this._todos.set(t,s),this.dispatchEvent(a("todo",s)),this}remove(t){let e=this.getTask(t);return e&&(this.dispatchEvent(a("remove",e)),this._tasks.delete(t)),this}addEventListener(t,e,r){super.addEventListener(t,e,r)}removeEventListener(t,e,r){super.removeEventListener(t,e,r)}table(t){return this.tasks.map(e=>{if(e.result){if(e.result.error)throw e.result.error;return t?.(e)||{"Task Name":e.name,"ops/sec":e.result.error?"NaN":parseInt(e.result.hz.toString(),10).toLocaleString(),"Average Time (ns)":e.result.error?"NaN":e.result.mean*1e3*1e3,Margin:e.result.error?"NaN":`\xB1${e.result.rme.toFixed(2)}%`,Samples:e.result.error?"NaN":e.result.samples.length}}return null})}get results(){return[...this._tasks.values()].map(t=>t.result)}get tasks(){return[...this._tasks.values()]}get todos(){return[...this._todos.values()]}getTask(t){return this._tasks.get(t)}};export{U as Bench,L as Task,K as hrtimeNow,Y as now};
|
|
2
|
+
//# sourceMappingURL=dist-6EWLBMVU.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.js"],"sourcesContent":["var $ = Object.defineProperty;\nvar C = (s) => {\n throw TypeError(s);\n};\nvar D = (s, n, t) => n in s ? $(s, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[n] = t;\nvar O = (s, n, t) => D(s, typeof n != \"symbol\" ? n + \"\" : n, t), q = (s, n, t) => n.has(s) || C(\"Cannot \" + t);\nvar d = (s, n, t) => (q(s, n, \"read from private field\"), t ? t.call(s) : n.get(s)), k = (s, n, t) => n.has(s) ? C(\"Cannot add the same private member more than once\") : n instanceof WeakSet ? n.add(s) : n.set(s, t), f = (s, n, t, e) => (q(s, n, \"write to private field\"), e ? e.call(s, t) : n.set(s, t), t);\nvar F = (s, n, t, e) => ({\n set _(r) {\n f(s, n, r, t);\n },\n get _() {\n return d(s, n, e);\n }\n});\n\n// node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js\nvar M = class {\n constructor(n) {\n O(this, \"value\");\n O(this, \"next\");\n this.value = n;\n }\n}, m, w, E, g = class {\n constructor() {\n k(this, m);\n k(this, w);\n k(this, E);\n this.clear();\n }\n enqueue(n) {\n let t = new M(n);\n d(this, m) ? (d(this, w).next = t, f(this, w, t)) : (f(this, m, t), f(this, w, t)), F(this, E)._++;\n }\n dequeue() {\n let n = d(this, m);\n if (n)\n return f(this, m, d(this, m).next), F(this, E)._--, n.value;\n }\n clear() {\n f(this, m, void 0), f(this, w, void 0), f(this, E, 0);\n }\n get size() {\n return d(this, E);\n }\n *[Symbol.iterator]() {\n let n = d(this, m);\n for (; n; )\n yield n.value, n = n.next;\n }\n};\nm = new WeakMap(), w = new WeakMap(), E = new WeakMap();\n\n// node_modules/.pnpm/p-limit@4.0.0/node_modules/p-limit/index.js\nfunction y(s) {\n if (!((Number.isInteger(s) || s === Number.POSITIVE_INFINITY) && s > 0))\n throw new TypeError(\"Expected `concurrency` to be a number from 1 and up\");\n let n = new g(), t = 0, e = () => {\n t--, n.size > 0 && n.dequeue()();\n }, r = async (h, p, a) => {\n t++;\n let l = (async () => h(...a))();\n p(l);\n try {\n await l;\n } catch (T) {\n }\n e();\n }, i = (h, p, a) => {\n n.enqueue(r.bind(void 0, h, p, a)), (async () => (await Promise.resolve(), t < s && n.size > 0 && n.dequeue()()))();\n }, c = (h, ...p) => new Promise((a) => {\n i(h, a, p);\n });\n return Object.defineProperties(c, {\n activeCount: {\n get: () => t\n },\n pendingCount: {\n get: () => n.size\n },\n clearQueue: {\n value: () => {\n n.clear();\n }\n }\n }), c;\n}\n\n// src/event.ts\nfunction o(s, n = null) {\n let t = new Event(s);\n return n && Object.defineProperty(t, \"task\", {\n value: n,\n enumerable: !0,\n writable: !1,\n configurable: !1\n }), t;\n}\n\n// src/constants.ts\nvar G = {\n 1: 12.71,\n 2: 4.303,\n 3: 3.182,\n 4: 2.776,\n 5: 2.571,\n 6: 2.447,\n 7: 2.365,\n 8: 2.306,\n 9: 2.262,\n 10: 2.228,\n 11: 2.201,\n 12: 2.179,\n 13: 2.16,\n 14: 2.145,\n 15: 2.131,\n 16: 2.12,\n 17: 2.11,\n 18: 2.101,\n 19: 2.093,\n 20: 2.086,\n 21: 2.08,\n 22: 2.074,\n 23: 2.069,\n 24: 2.064,\n 25: 2.06,\n 26: 2.056,\n 27: 2.052,\n 28: 2.048,\n 29: 2.045,\n 30: 2.042,\n 31: 2.0399,\n 32: 2.0378,\n 33: 2.0357,\n 34: 2.0336,\n 35: 2.0315,\n 36: 2.0294,\n 37: 2.0273,\n 38: 2.0252,\n 39: 2.0231,\n 40: 2.021,\n 41: 2.0198,\n 42: 2.0186,\n 43: 2.0174,\n 44: 2.0162,\n 45: 2.015,\n 46: 2.0138,\n 47: 2.0126,\n 48: 2.0114,\n 49: 2.0102,\n 50: 2.009,\n 51: 2.0081,\n 52: 2.0072,\n 53: 2.0063,\n 54: 2.0054,\n 55: 2.0045,\n 56: 2.0036,\n 57: 2.0027,\n 58: 2.0018,\n 59: 2.0009,\n 60: 2,\n 61: 1.9995,\n 62: 1.999,\n 63: 1.9985,\n 64: 1.998,\n 65: 1.9975,\n 66: 1.997,\n 67: 1.9965,\n 68: 1.996,\n 69: 1.9955,\n 70: 1.995,\n 71: 1.9945,\n 72: 1.994,\n 73: 1.9935,\n 74: 1.993,\n 75: 1.9925,\n 76: 1.992,\n 77: 1.9915,\n 78: 1.991,\n 79: 1.9905,\n 80: 1.99,\n 81: 1.9897,\n 82: 1.9894,\n 83: 1.9891,\n 84: 1.9888,\n 85: 1.9885,\n 86: 1.9882,\n 87: 1.9879,\n 88: 1.9876,\n 89: 1.9873,\n 90: 1.987,\n 91: 1.9867,\n 92: 1.9864,\n 93: 1.9861,\n 94: 1.9858,\n 95: 1.9855,\n 96: 1.9852,\n 97: 1.9849,\n 98: 1.9846,\n 99: 1.9843,\n 100: 1.984,\n 101: 1.9838,\n 102: 1.9836,\n 103: 1.9834,\n 104: 1.9832,\n 105: 1.983,\n 106: 1.9828,\n 107: 1.9826,\n 108: 1.9824,\n 109: 1.9822,\n 110: 1.982,\n 111: 1.9818,\n 112: 1.9816,\n 113: 1.9814,\n 114: 1.9812,\n 115: 1.9819,\n 116: 1.9808,\n 117: 1.9806,\n 118: 1.9804,\n 119: 1.9802,\n 120: 1.98,\n infinity: 1.96\n}, N = G;\n\n// src/utils.ts\nvar J = (s) => s / 1e6, U = () => J(Number(process.hrtime.bigint())), B = () => performance.now();\nfunction W(s) {\n return s !== null && typeof s == \"object\" && typeof s.then == \"function\";\n}\nvar S = (s, n) => s.reduce((e, r) => e + (r - n) ** 2, 0) / (s.length - 1) || 0, X = (async () => {\n}).constructor, Z = (s) => s.constructor === X, z = async (s) => {\n if (Z(s.fn))\n return !0;\n try {\n if (s.opts.beforeEach != null)\n try {\n await s.opts.beforeEach.call(s);\n } catch (e) {\n }\n let n = s.fn(), t = W(n);\n if (t)\n try {\n await n;\n } catch (e) {\n }\n if (s.opts.afterEach != null)\n try {\n await s.opts.afterEach.call(s);\n } catch (e) {\n }\n return t;\n } catch (n) {\n return !1;\n }\n};\n\n// src/task.ts\nvar b = class extends EventTarget {\n constructor(t, e, r, i = {}) {\n super();\n /*\n * the number of times the task\n * function has been executed\n */\n this.runs = 0;\n this.bench = t, this.name = e, this.fn = r, this.opts = i;\n }\n async loop(t, e) {\n var T;\n let r = this.bench.concurrency === \"task\", { threshold: i } = this.bench, c = 0, h = [];\n if (this.opts.beforeAll != null)\n try {\n await this.opts.beforeAll.call(this);\n } catch (u) {\n return { error: u };\n }\n let p = await z(this), a = async () => {\n this.opts.beforeEach != null && await this.opts.beforeEach.call(this);\n let u = 0;\n if (p) {\n let v = this.bench.now();\n await this.fn.call(this), u = this.bench.now() - v;\n } else {\n let v = this.bench.now();\n this.fn.call(this), u = this.bench.now() - v;\n }\n h.push(u), c += u, this.opts.afterEach != null && await this.opts.afterEach.call(this);\n }, l = y(i);\n try {\n let u = [];\n for (; (c < t || h.length + l.activeCount + l.pendingCount < e) && !((T = this.bench.signal) != null && T.aborted); )\n r ? u.push(l(a)) : await a();\n u.length && await Promise.all(u);\n } catch (u) {\n return { error: u };\n }\n if (this.opts.afterAll != null)\n try {\n await this.opts.afterAll.call(this);\n } catch (u) {\n return { error: u };\n }\n return { samples: h };\n }\n /**\n * run the current task and write the results in `Task.result` object\n */\n async run() {\n var r, i;\n if ((r = this.result) != null && r.error)\n return this;\n this.dispatchEvent(o(\"start\", this)), await this.bench.setup(this, \"run\");\n let { samples: t, error: e } = await this.loop(this.bench.time, this.bench.iterations);\n if (this.bench.teardown(this, \"run\"), t) {\n let c = t.reduce((L, A) => L + A, 0);\n this.runs = t.length, t.sort((L, A) => L - A);\n let h = c / this.runs, p = 1e3 / h, a = t.length, l = a - 1, T = t[0], u = t[l], v = c / t.length || 0, P = S(t, v), R = Math.sqrt(P), I = R / Math.sqrt(a), _ = N[String(Math.round(l) || 1)] || N.infinity, K = I * _, j = K / v * 100, H = t[Math.ceil(a * 0.75) - 1], V = t[Math.ceil(a * 0.99) - 1], Q = t[Math.ceil(a * 0.995) - 1], Y = t[Math.ceil(a * 0.999) - 1];\n if ((i = this.bench.signal) != null && i.aborted)\n return this;\n this.setResult({\n totalTime: c,\n min: T,\n max: u,\n hz: p,\n period: h,\n samples: t,\n mean: v,\n variance: P,\n sd: R,\n sem: I,\n df: l,\n critical: _,\n moe: K,\n rme: j,\n p75: H,\n p99: V,\n p995: Q,\n p999: Y\n });\n }\n if (e) {\n if (this.setResult({ error: e }), this.bench.throws)\n throw e;\n this.dispatchEvent(o(\"error\", this)), this.bench.dispatchEvent(o(\"error\", this));\n }\n return this.dispatchEvent(o(\"cycle\", this)), this.bench.dispatchEvent(o(\"cycle\", this)), this.dispatchEvent(o(\"complete\", this)), this;\n }\n /**\n * warmup the current task\n */\n async warmup() {\n var e;\n if ((e = this.result) != null && e.error)\n return;\n this.dispatchEvent(o(\"warmup\", this)), await this.bench.setup(this, \"warmup\");\n let { error: t } = await this.loop(this.bench.warmupTime, this.bench.warmupIterations);\n if (this.bench.teardown(this, \"warmup\"), t && (this.setResult({ error: t }), this.bench.throws))\n throw t;\n }\n addEventListener(t, e, r) {\n super.addEventListener(t, e, r);\n }\n removeEventListener(t, e, r) {\n super.removeEventListener(t, e, r);\n }\n /**\n * change the result object values\n */\n setResult(t) {\n this.result = { ...this.result, ...t }, Object.freeze(this.result);\n }\n /**\n * reset the task to make the `Task.runs` a zero-value and remove the `Task.result`\n * object\n */\n reset() {\n this.dispatchEvent(o(\"reset\", this)), this.runs = 0, this.result = void 0;\n }\n};\n\n// src/bench.ts\nvar x = class extends EventTarget {\n constructor(t = {}) {\n var e, r, i, c, h, p, a, l;\n super();\n /*\n * @private the task map\n */\n this._tasks = /* @__PURE__ */ new Map();\n this._todos = /* @__PURE__ */ new Map();\n /**\n * Executes tasks concurrently based on the specified concurrency mode.\n *\n * - When `mode` is set to `null` (default), concurrency is disabled.\n * - When `mode` is set to 'task', each task's iterations (calls of a task function) run concurrently.\n * - When `mode` is set to 'bench', different tasks within the bench run concurrently.\n */\n this.concurrency = null;\n /**\n * The maximum number of concurrent tasks to run. Defaults to Infinity.\n */\n this.threshold = 1 / 0;\n this.warmupTime = 100;\n this.warmupIterations = 5;\n this.time = 500;\n this.iterations = 10;\n this.now = B;\n this.now = (e = t.now) != null ? e : this.now, this.warmupTime = (r = t.warmupTime) != null ? r : this.warmupTime, this.warmupIterations = (i = t.warmupIterations) != null ? i : this.warmupIterations, this.time = (c = t.time) != null ? c : this.time, this.iterations = (h = t.iterations) != null ? h : this.iterations, this.signal = t.signal, this.throws = (p = t.throws) != null ? p : !1, this.setup = (a = t.setup) != null ? a : () => {\n }, this.teardown = (l = t.teardown) != null ? l : () => {\n }, this.signal && this.signal.addEventListener(\n \"abort\",\n () => {\n this.dispatchEvent(o(\"abort\"));\n },\n { once: !0 }\n );\n }\n runTask(t) {\n var e;\n return (e = this.signal) != null && e.aborted ? t : t.run();\n }\n /**\n * run the added tasks that were registered using the\n * {@link add} method.\n * Note: This method does not do any warmup. Call {@link warmup} for that.\n */\n async run() {\n if (this.concurrency === \"bench\")\n return this.runConcurrently(this.threshold, this.concurrency);\n this.dispatchEvent(o(\"start\"));\n let t = [];\n for (let e of [...this._tasks.values()])\n t.push(await this.runTask(e));\n return this.dispatchEvent(o(\"complete\")), t;\n }\n /**\n * See Bench.{@link concurrency}\n */\n async runConcurrently(t = 1 / 0, e = \"bench\") {\n if (this.threshold = t, this.concurrency = e, e === \"task\")\n return this.run();\n this.dispatchEvent(o(\"start\"));\n let r = y(t), i = [];\n for (let h of [...this._tasks.values()])\n i.push(r(() => this.runTask(h)));\n let c = await Promise.all(i);\n return this.dispatchEvent(o(\"complete\")), c;\n }\n /**\n * warmup the benchmark tasks.\n * This is not run by default by the {@link run} method.\n */\n async warmup() {\n if (this.concurrency === \"bench\") {\n await this.warmupConcurrently(this.threshold, this.concurrency);\n return;\n }\n this.dispatchEvent(o(\"warmup\"));\n for (let [, t] of this._tasks)\n await t.warmup();\n }\n /**\n * warmup the benchmark tasks concurrently.\n * This is not run by default by the {@link runConcurrently} method.\n */\n async warmupConcurrently(t = 1 / 0, e = \"bench\") {\n if (this.threshold = t, this.concurrency = e, e === \"task\") {\n await this.warmup();\n return;\n }\n this.dispatchEvent(o(\"warmup\"));\n let r = y(t), i = [];\n for (let [, c] of this._tasks)\n i.push(r(() => c.warmup()));\n await Promise.all(i);\n }\n /**\n * reset each task and remove its result\n */\n reset() {\n this.dispatchEvent(o(\"reset\")), this._tasks.forEach((t) => {\n t.reset();\n });\n }\n /**\n * add a benchmark task to the task map\n */\n add(t, e, r = {}) {\n let i = new b(this, t, e, r);\n return this._tasks.set(t, i), this.dispatchEvent(o(\"add\", i)), this;\n }\n /**\n * add a benchmark todo to the todo map\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n todo(t, e = () => {\n }, r = {}) {\n let i = new b(this, t, e, r);\n return this._todos.set(t, i), this.dispatchEvent(o(\"todo\", i)), this;\n }\n /**\n * remove a benchmark task from the task map\n */\n remove(t) {\n let e = this.getTask(t);\n return e && (this.dispatchEvent(o(\"remove\", e)), this._tasks.delete(t)), this;\n }\n addEventListener(t, e, r) {\n super.addEventListener(t, e, r);\n }\n removeEventListener(t, e, r) {\n super.removeEventListener(t, e, r);\n }\n /**\n * table of the tasks results\n */\n table(t) {\n return this.tasks.map((e) => {\n if (e.result) {\n if (e.result.error)\n throw e.result.error;\n return (t == null ? void 0 : t(e)) || {\n \"Task Name\": e.name,\n \"ops/sec\": e.result.error ? \"NaN\" : parseInt(e.result.hz.toString(), 10).toLocaleString(),\n \"Average Time (ns)\": e.result.error ? \"NaN\" : e.result.mean * 1e3 * 1e3,\n Margin: e.result.error ? \"NaN\" : `\\xB1${e.result.rme.toFixed(2)}%`,\n Samples: e.result.error ? \"NaN\" : e.result.samples.length\n };\n }\n return null;\n });\n }\n /**\n * (getter) tasks results as an array\n */\n get results() {\n return [...this._tasks.values()].map((t) => t.result);\n }\n /**\n * (getter) tasks as an array\n */\n get tasks() {\n return [...this._tasks.values()];\n }\n get todos() {\n return [...this._todos.values()];\n }\n /**\n * get a task based on the task name\n */\n getTask(t) {\n return this._tasks.get(t);\n }\n};\nexport {\n x as Bench,\n b as Task,\n U as hrtimeNow,\n B as now\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.js"],"sourcesContent":["var $ = Object.defineProperty;\nvar C = (s) => {\n throw TypeError(s);\n};\nvar D = (s, n, t) => n in s ? $(s, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[n] = t;\nvar O = (s, n, t) => D(s, typeof n != \"symbol\" ? n + \"\" : n, t), q = (s, n, t) => n.has(s) || C(\"Cannot \" + t);\nvar d = (s, n, t) => (q(s, n, \"read from private field\"), t ? t.call(s) : n.get(s)), k = (s, n, t) => n.has(s) ? C(\"Cannot add the same private member more than once\") : n instanceof WeakSet ? n.add(s) : n.set(s, t), f = (s, n, t, e) => (q(s, n, \"write to private field\"), e ? e.call(s, t) : n.set(s, t), t);\nvar F = (s, n, t, e) => ({\n set _(r) {\n f(s, n, r, t);\n },\n get _() {\n return d(s, n, e);\n }\n});\n\n// node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js\nvar M = class {\n constructor(n) {\n O(this, \"value\");\n O(this, \"next\");\n this.value = n;\n }\n}, m, w, E, g = class {\n constructor() {\n k(this, m);\n k(this, w);\n k(this, E);\n this.clear();\n }\n enqueue(n) {\n let t = new M(n);\n d(this, m) ? (d(this, w).next = t, f(this, w, t)) : (f(this, m, t), f(this, w, t)), F(this, E)._++;\n }\n dequeue() {\n let n = d(this, m);\n if (n)\n return f(this, m, d(this, m).next), F(this, E)._--, n.value;\n }\n clear() {\n f(this, m, void 0), f(this, w, void 0), f(this, E, 0);\n }\n get size() {\n return d(this, E);\n }\n *[Symbol.iterator]() {\n let n = d(this, m);\n for (; n; )\n yield n.value, n = n.next;\n }\n};\nm = new WeakMap(), w = new WeakMap(), E = new WeakMap();\n\n// node_modules/.pnpm/p-limit@4.0.0/node_modules/p-limit/index.js\nfunction y(s) {\n if (!((Number.isInteger(s) || s === Number.POSITIVE_INFINITY) && s > 0))\n throw new TypeError(\"Expected `concurrency` to be a number from 1 and up\");\n let n = new g(), t = 0, e = () => {\n t--, n.size > 0 && n.dequeue()();\n }, r = async (h, p, a) => {\n t++;\n let l = (async () => h(...a))();\n p(l);\n try {\n await l;\n } catch (T) {\n }\n e();\n }, i = (h, p, a) => {\n n.enqueue(r.bind(void 0, h, p, a)), (async () => (await Promise.resolve(), t < s && n.size > 0 && n.dequeue()()))();\n }, c = (h, ...p) => new Promise((a) => {\n i(h, a, p);\n });\n return Object.defineProperties(c, {\n activeCount: {\n get: () => t\n },\n pendingCount: {\n get: () => n.size\n },\n clearQueue: {\n value: () => {\n n.clear();\n }\n }\n }), c;\n}\n\n// src/event.ts\nfunction o(s, n = null) {\n let t = new Event(s);\n return n && Object.defineProperty(t, \"task\", {\n value: n,\n enumerable: !0,\n writable: !1,\n configurable: !1\n }), t;\n}\n\n// src/constants.ts\nvar G = {\n 1: 12.71,\n 2: 4.303,\n 3: 3.182,\n 4: 2.776,\n 5: 2.571,\n 6: 2.447,\n 7: 2.365,\n 8: 2.306,\n 9: 2.262,\n 10: 2.228,\n 11: 2.201,\n 12: 2.179,\n 13: 2.16,\n 14: 2.145,\n 15: 2.131,\n 16: 2.12,\n 17: 2.11,\n 18: 2.101,\n 19: 2.093,\n 20: 2.086,\n 21: 2.08,\n 22: 2.074,\n 23: 2.069,\n 24: 2.064,\n 25: 2.06,\n 26: 2.056,\n 27: 2.052,\n 28: 2.048,\n 29: 2.045,\n 30: 2.042,\n 31: 2.0399,\n 32: 2.0378,\n 33: 2.0357,\n 34: 2.0336,\n 35: 2.0315,\n 36: 2.0294,\n 37: 2.0273,\n 38: 2.0252,\n 39: 2.0231,\n 40: 2.021,\n 41: 2.0198,\n 42: 2.0186,\n 43: 2.0174,\n 44: 2.0162,\n 45: 2.015,\n 46: 2.0138,\n 47: 2.0126,\n 48: 2.0114,\n 49: 2.0102,\n 50: 2.009,\n 51: 2.0081,\n 52: 2.0072,\n 53: 2.0063,\n 54: 2.0054,\n 55: 2.0045,\n 56: 2.0036,\n 57: 2.0027,\n 58: 2.0018,\n 59: 2.0009,\n 60: 2,\n 61: 1.9995,\n 62: 1.999,\n 63: 1.9985,\n 64: 1.998,\n 65: 1.9975,\n 66: 1.997,\n 67: 1.9965,\n 68: 1.996,\n 69: 1.9955,\n 70: 1.995,\n 71: 1.9945,\n 72: 1.994,\n 73: 1.9935,\n 74: 1.993,\n 75: 1.9925,\n 76: 1.992,\n 77: 1.9915,\n 78: 1.991,\n 79: 1.9905,\n 80: 1.99,\n 81: 1.9897,\n 82: 1.9894,\n 83: 1.9891,\n 84: 1.9888,\n 85: 1.9885,\n 86: 1.9882,\n 87: 1.9879,\n 88: 1.9876,\n 89: 1.9873,\n 90: 1.987,\n 91: 1.9867,\n 92: 1.9864,\n 93: 1.9861,\n 94: 1.9858,\n 95: 1.9855,\n 96: 1.9852,\n 97: 1.9849,\n 98: 1.9846,\n 99: 1.9843,\n 100: 1.984,\n 101: 1.9838,\n 102: 1.9836,\n 103: 1.9834,\n 104: 1.9832,\n 105: 1.983,\n 106: 1.9828,\n 107: 1.9826,\n 108: 1.9824,\n 109: 1.9822,\n 110: 1.982,\n 111: 1.9818,\n 112: 1.9816,\n 113: 1.9814,\n 114: 1.9812,\n 115: 1.9819,\n 116: 1.9808,\n 117: 1.9806,\n 118: 1.9804,\n 119: 1.9802,\n 120: 1.98,\n infinity: 1.96\n}, N = G;\n\n// src/utils.ts\nvar J = (s) => s / 1e6, U = () => J(Number(process.hrtime.bigint())), B = () => performance.now();\nfunction W(s) {\n return s !== null && typeof s == \"object\" && typeof s.then == \"function\";\n}\nvar S = (s, n) => s.reduce((e, r) => e + (r - n) ** 2, 0) / (s.length - 1) || 0, X = (async () => {\n}).constructor, Z = (s) => s.constructor === X, z = async (s) => {\n if (Z(s.fn))\n return !0;\n try {\n if (s.opts.beforeEach != null)\n try {\n await s.opts.beforeEach.call(s);\n } catch (e) {\n }\n let n = s.fn(), t = W(n);\n if (t)\n try {\n await n;\n } catch (e) {\n }\n if (s.opts.afterEach != null)\n try {\n await s.opts.afterEach.call(s);\n } catch (e) {\n }\n return t;\n } catch (n) {\n return !1;\n }\n};\n\n// src/task.ts\nvar b = class extends EventTarget {\n constructor(t, e, r, i = {}) {\n super();\n /*\n * the number of times the task\n * function has been executed\n */\n this.runs = 0;\n this.bench = t, this.name = e, this.fn = r, this.opts = i;\n }\n async loop(t, e) {\n var T;\n let r = this.bench.concurrency === \"task\", { threshold: i } = this.bench, c = 0, h = [];\n if (this.opts.beforeAll != null)\n try {\n await this.opts.beforeAll.call(this);\n } catch (u) {\n return { error: u };\n }\n let p = await z(this), a = async () => {\n this.opts.beforeEach != null && await this.opts.beforeEach.call(this);\n let u = 0;\n if (p) {\n let v = this.bench.now();\n await this.fn.call(this), u = this.bench.now() - v;\n } else {\n let v = this.bench.now();\n this.fn.call(this), u = this.bench.now() - v;\n }\n h.push(u), c += u, this.opts.afterEach != null && await this.opts.afterEach.call(this);\n }, l = y(i);\n try {\n let u = [];\n for (; (c < t || h.length + l.activeCount + l.pendingCount < e) && !((T = this.bench.signal) != null && T.aborted); )\n r ? u.push(l(a)) : await a();\n u.length && await Promise.all(u);\n } catch (u) {\n return { error: u };\n }\n if (this.opts.afterAll != null)\n try {\n await this.opts.afterAll.call(this);\n } catch (u) {\n return { error: u };\n }\n return { samples: h };\n }\n /**\n * run the current task and write the results in `Task.result` object\n */\n async run() {\n var r, i;\n if ((r = this.result) != null && r.error)\n return this;\n this.dispatchEvent(o(\"start\", this)), await this.bench.setup(this, \"run\");\n let { samples: t, error: e } = await this.loop(this.bench.time, this.bench.iterations);\n if (this.bench.teardown(this, \"run\"), t) {\n let c = t.reduce((L, A) => L + A, 0);\n this.runs = t.length, t.sort((L, A) => L - A);\n let h = c / this.runs, p = 1e3 / h, a = t.length, l = a - 1, T = t[0], u = t[l], v = c / t.length || 0, P = S(t, v), R = Math.sqrt(P), I = R / Math.sqrt(a), _ = N[String(Math.round(l) || 1)] || N.infinity, K = I * _, j = K / v * 100, H = t[Math.ceil(a * 0.75) - 1], V = t[Math.ceil(a * 0.99) - 1], Q = t[Math.ceil(a * 0.995) - 1], Y = t[Math.ceil(a * 0.999) - 1];\n if ((i = this.bench.signal) != null && i.aborted)\n return this;\n this.setResult({\n totalTime: c,\n min: T,\n max: u,\n hz: p,\n period: h,\n samples: t,\n mean: v,\n variance: P,\n sd: R,\n sem: I,\n df: l,\n critical: _,\n moe: K,\n rme: j,\n p75: H,\n p99: V,\n p995: Q,\n p999: Y\n });\n }\n if (e) {\n if (this.setResult({ error: e }), this.bench.throws)\n throw e;\n this.dispatchEvent(o(\"error\", this)), this.bench.dispatchEvent(o(\"error\", this));\n }\n return this.dispatchEvent(o(\"cycle\", this)), this.bench.dispatchEvent(o(\"cycle\", this)), this.dispatchEvent(o(\"complete\", this)), this;\n }\n /**\n * warmup the current task\n */\n async warmup() {\n var e;\n if ((e = this.result) != null && e.error)\n return;\n this.dispatchEvent(o(\"warmup\", this)), await this.bench.setup(this, \"warmup\");\n let { error: t } = await this.loop(this.bench.warmupTime, this.bench.warmupIterations);\n if (this.bench.teardown(this, \"warmup\"), t && (this.setResult({ error: t }), this.bench.throws))\n throw t;\n }\n addEventListener(t, e, r) {\n super.addEventListener(t, e, r);\n }\n removeEventListener(t, e, r) {\n super.removeEventListener(t, e, r);\n }\n /**\n * change the result object values\n */\n setResult(t) {\n this.result = { ...this.result, ...t }, Object.freeze(this.result);\n }\n /**\n * reset the task to make the `Task.runs` a zero-value and remove the `Task.result`\n * object\n */\n reset() {\n this.dispatchEvent(o(\"reset\", this)), this.runs = 0, this.result = void 0;\n }\n};\n\n// src/bench.ts\nvar x = class extends EventTarget {\n constructor(t = {}) {\n var e, r, i, c, h, p, a, l;\n super();\n /*\n * @private the task map\n */\n this._tasks = /* @__PURE__ */ new Map();\n this._todos = /* @__PURE__ */ new Map();\n /**\n * Executes tasks concurrently based on the specified concurrency mode.\n *\n * - When `mode` is set to `null` (default), concurrency is disabled.\n * - When `mode` is set to 'task', each task's iterations (calls of a task function) run concurrently.\n * - When `mode` is set to 'bench', different tasks within the bench run concurrently.\n */\n this.concurrency = null;\n /**\n * The maximum number of concurrent tasks to run. Defaults to Infinity.\n */\n this.threshold = 1 / 0;\n this.warmupTime = 100;\n this.warmupIterations = 5;\n this.time = 500;\n this.iterations = 10;\n this.now = B;\n this.now = (e = t.now) != null ? e : this.now, this.warmupTime = (r = t.warmupTime) != null ? r : this.warmupTime, this.warmupIterations = (i = t.warmupIterations) != null ? i : this.warmupIterations, this.time = (c = t.time) != null ? c : this.time, this.iterations = (h = t.iterations) != null ? h : this.iterations, this.signal = t.signal, this.throws = (p = t.throws) != null ? p : !1, this.setup = (a = t.setup) != null ? a : () => {\n }, this.teardown = (l = t.teardown) != null ? l : () => {\n }, this.signal && this.signal.addEventListener(\n \"abort\",\n () => {\n this.dispatchEvent(o(\"abort\"));\n },\n { once: !0 }\n );\n }\n runTask(t) {\n var e;\n return (e = this.signal) != null && e.aborted ? t : t.run();\n }\n /**\n * run the added tasks that were registered using the\n * {@link add} method.\n * Note: This method does not do any warmup. Call {@link warmup} for that.\n */\n async run() {\n if (this.concurrency === \"bench\")\n return this.runConcurrently(this.threshold, this.concurrency);\n this.dispatchEvent(o(\"start\"));\n let t = [];\n for (let e of [...this._tasks.values()])\n t.push(await this.runTask(e));\n return this.dispatchEvent(o(\"complete\")), t;\n }\n /**\n * See Bench.{@link concurrency}\n */\n async runConcurrently(t = 1 / 0, e = \"bench\") {\n if (this.threshold = t, this.concurrency = e, e === \"task\")\n return this.run();\n this.dispatchEvent(o(\"start\"));\n let r = y(t), i = [];\n for (let h of [...this._tasks.values()])\n i.push(r(() => this.runTask(h)));\n let c = await Promise.all(i);\n return this.dispatchEvent(o(\"complete\")), c;\n }\n /**\n * warmup the benchmark tasks.\n * This is not run by default by the {@link run} method.\n */\n async warmup() {\n if (this.concurrency === \"bench\") {\n await this.warmupConcurrently(this.threshold, this.concurrency);\n return;\n }\n this.dispatchEvent(o(\"warmup\"));\n for (let [, t] of this._tasks)\n await t.warmup();\n }\n /**\n * warmup the benchmark tasks concurrently.\n * This is not run by default by the {@link runConcurrently} method.\n */\n async warmupConcurrently(t = 1 / 0, e = \"bench\") {\n if (this.threshold = t, this.concurrency = e, e === \"task\") {\n await this.warmup();\n return;\n }\n this.dispatchEvent(o(\"warmup\"));\n let r = y(t), i = [];\n for (let [, c] of this._tasks)\n i.push(r(() => c.warmup()));\n await Promise.all(i);\n }\n /**\n * reset each task and remove its result\n */\n reset() {\n this.dispatchEvent(o(\"reset\")), this._tasks.forEach((t) => {\n t.reset();\n });\n }\n /**\n * add a benchmark task to the task map\n */\n add(t, e, r = {}) {\n let i = new b(this, t, e, r);\n return this._tasks.set(t, i), this.dispatchEvent(o(\"add\", i)), this;\n }\n /**\n * add a benchmark todo to the todo map\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n todo(t, e = () => {\n }, r = {}) {\n let i = new b(this, t, e, r);\n return this._todos.set(t, i), this.dispatchEvent(o(\"todo\", i)), this;\n }\n /**\n * remove a benchmark task from the task map\n */\n remove(t) {\n let e = this.getTask(t);\n return e && (this.dispatchEvent(o(\"remove\", e)), this._tasks.delete(t)), this;\n }\n addEventListener(t, e, r) {\n super.addEventListener(t, e, r);\n }\n removeEventListener(t, e, r) {\n super.removeEventListener(t, e, r);\n }\n /**\n * table of the tasks results\n */\n table(t) {\n return this.tasks.map((e) => {\n if (e.result) {\n if (e.result.error)\n throw e.result.error;\n return (t == null ? void 0 : t(e)) || {\n \"Task Name\": e.name,\n \"ops/sec\": e.result.error ? \"NaN\" : parseInt(e.result.hz.toString(), 10).toLocaleString(),\n \"Average Time (ns)\": e.result.error ? \"NaN\" : e.result.mean * 1e3 * 1e3,\n Margin: e.result.error ? \"NaN\" : `\\xB1${e.result.rme.toFixed(2)}%`,\n Samples: e.result.error ? \"NaN\" : e.result.samples.length\n };\n }\n return null;\n });\n }\n /**\n * (getter) tasks results as an array\n */\n get results() {\n return [...this._tasks.values()].map((t) => t.result);\n }\n /**\n * (getter) tasks as an array\n */\n get tasks() {\n return [...this._tasks.values()];\n }\n get todos() {\n return [...this._todos.values()];\n }\n /**\n * get a task based on the task name\n */\n getTask(t) {\n return this._tasks.get(t);\n }\n};\nexport {\n x as Bench,\n b as Task,\n U as hrtimeNow,\n B as now\n};\n"],"mappings":"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","names":["$","C","s","D","n","t","O","d","k","f","e","F","r","M","m","w","E","g","y","h","p","a","l","i","c","o","G","N","J","U","B","W","S","X","Z","z","b","T","u","v","L","A","P","R","I","_","K","j","H","V","Q","Y","x"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('./chunk-ZCDXPV3A.min.cjs');var R=Object.defineProperty,P=t=>{throw TypeError(t)},W=(t,e,r)=>e in t?R(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,I=(t,e,r)=>W(t,typeof e!="symbol"?e+"":e,r),q=(t,e,r)=>e.has(t)||P("Cannot "+r),m=(t,e,r)=>(q(t,e,"read from private field"),r?r.call(t):e.get(t)),E=(t,e,r)=>e.has(t)?P("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),w=(t,e,r,s)=>(q(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),x=(t,e,r,s)=>({set _(h){w(t,e,h,r)},get _(){return m(t,e,s)}}),B=class{constructor(t){I(this,"value"),I(this,"next"),this.value=t}},p,v,f,F=class{constructor(){E(this,p),E(this,v),E(this,f),this.clear()}enqueue(t){let e=new B(t);m(this,p)?(m(this,v).next=e,w(this,v,e)):(w(this,p,e),w(this,v,e)),x(this,f)._++}dequeue(){let t=m(this,p);if(t)return w(this,p,m(this,p).next),x(this,f)._--,t.value}clear(){w(this,p,void 0),w(this,v,void 0),w(this,f,0)}get size(){return m(this,f)}*[Symbol.iterator](){let t=m(this,p);for(;t;)yield t.value,t=t.next}};p=new WeakMap,v=new WeakMap,f=new WeakMap;function g(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=new F,r=0,s=()=>{r--,e.size>0&&e.dequeue()()},h=async(n,l,c)=>{r++;let i=(async()=>n(...c))();l(i);try{await i}catch (e2){}s()},u=(n,l,c)=>{e.enqueue(h.bind(void 0,n,l,c)),(async()=>(await Promise.resolve(),r<t&&e.size>0&&e.dequeue()()))()},o=(n,...l)=>new Promise(c=>{u(n,c,l)});return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),o}function a(t,e=null){let r=new Event(t);return e&&Object.defineProperty(r,"task",{value:e,enumerable:!0,writable:!1,configurable:!1}),r}var Q={1:12.71,2:4.303,3:3.182,4:2.776,5:2.571,6:2.447,7:2.365,8:2.306,9:2.262,10:2.228,11:2.201,12:2.179,13:2.16,14:2.145,15:2.131,16:2.12,17:2.11,18:2.101,19:2.093,20:2.086,21:2.08,22:2.074,23:2.069,24:2.064,25:2.06,26:2.056,27:2.052,28:2.048,29:2.045,30:2.042,31:2.0399,32:2.0378,33:2.0357,34:2.0336,35:2.0315,36:2.0294,37:2.0273,38:2.0252,39:2.0231,40:2.021,41:2.0198,42:2.0186,43:2.0174,44:2.0162,45:2.015,46:2.0138,47:2.0126,48:2.0114,49:2.0102,50:2.009,51:2.0081,52:2.0072,53:2.0063,54:2.0054,55:2.0045,56:2.0036,57:2.0027,58:2.0018,59:2.0009,60:2,61:1.9995,62:1.999,63:1.9985,64:1.998,65:1.9975,66:1.997,67:1.9965,68:1.996,69:1.9955,70:1.995,71:1.9945,72:1.994,73:1.9935,74:1.993,75:1.9925,76:1.992,77:1.9915,78:1.991,79:1.9905,80:1.99,81:1.9897,82:1.9894,83:1.9891,84:1.9888,85:1.9885,86:1.9882,87:1.9879,88:1.9876,89:1.9873,90:1.987,91:1.9867,92:1.9864,93:1.9861,94:1.9858,95:1.9855,96:1.9852,97:1.9849,98:1.9846,99:1.9843,100:1.984,101:1.9838,102:1.9836,103:1.9834,104:1.9832,105:1.983,106:1.9828,107:1.9826,108:1.9824,109:1.9822,110:1.982,111:1.9818,112:1.9816,113:1.9814,114:1.9812,115:1.9819,116:1.9808,117:1.9806,118:1.9804,119:1.9802,120:1.98,infinity:1.96},C=Q,V=t=>t/1e6,K= exports.hrtimeNow =()=>V(Number(process.hrtime.bigint())),Y= exports.now =()=>performance.now();function $(t){return t!==null&&typeof t=="object"&&typeof t.then=="function"}var D=(t,e)=>t.reduce((r,s)=>r+(s-e)**2,0)/(t.length-1)||0,G=(async()=>{}).constructor,H=t=>t.constructor===G,J=async t=>{if(H(t.fn))return!0;try{if(t.opts.beforeEach!=null)try{await t.opts.beforeEach.call(t)}catch (e3){}let e=t.fn(),r=$(e);if(r)try{await e}catch (e4){}if(t.opts.afterEach!=null)try{await t.opts.afterEach.call(t)}catch (e5){}return r}catch (e6){return!1}},L= exports.Task =class extends EventTarget{constructor(t,e,r,s={}){super(),this.runs=0,this.bench=t,this.name=e,this.fn=r,this.opts=s}async loop(t,e){var r;let s=this.bench.concurrency==="task",{threshold:h}=this.bench,u=0,o=[];if(this.opts.beforeAll!=null)try{await this.opts.beforeAll.call(this)}catch(i){return{error:i}}let n=await J(this),l=async()=>{this.opts.beforeEach!=null&&await this.opts.beforeEach.call(this);let i=0;if(n){let d=this.bench.now();await this.fn.call(this),i=this.bench.now()-d}else{let d=this.bench.now();this.fn.call(this),i=this.bench.now()-d}o.push(i),u+=i,this.opts.afterEach!=null&&await this.opts.afterEach.call(this)},c=g(h);try{let i=[];for(;(u<t||o.length+c.activeCount+c.pendingCount<e)&&!((r=this.bench.signal)!=null&&r.aborted);)s?i.push(c(l)):await l();i.length&&await Promise.all(i)}catch(i){return{error:i}}if(this.opts.afterAll!=null)try{await this.opts.afterAll.call(this)}catch(i){return{error:i}}return{samples:o}}async run(){var t,e;if((t=this.result)!=null&&t.error)return this;this.dispatchEvent(a("start",this)),await this.bench.setup(this,"run");let{samples:r,error:s}=await this.loop(this.bench.time,this.bench.iterations);if(this.bench.teardown(this,"run"),r){let h=r.reduce((b,y)=>b+y,0);this.runs=r.length,r.sort((b,y)=>b-y);let u=h/this.runs,o=1e3/u,n=r.length,l=n-1,c=r[0],i=r[l],d=h/r.length||0,k=D(r,d),T=Math.sqrt(k),_=T/Math.sqrt(n),N=C[String(Math.round(l)||1)]||C.infinity,M=_*N,z=M/d*100,S=r[Math.ceil(n*.75)-1],j=r[Math.ceil(n*.99)-1],O=r[Math.ceil(n*.995)-1],A=r[Math.ceil(n*.999)-1];if((e=this.bench.signal)!=null&&e.aborted)return this;this.setResult({totalTime:h,min:c,max:i,hz:o,period:u,samples:r,mean:d,variance:k,sd:T,sem:_,df:l,critical:N,moe:M,rme:z,p75:S,p99:j,p995:O,p999:A})}if(s){if(this.setResult({error:s}),this.bench.throws)throw s;this.dispatchEvent(a("error",this)),this.bench.dispatchEvent(a("error",this))}return this.dispatchEvent(a("cycle",this)),this.bench.dispatchEvent(a("cycle",this)),this.dispatchEvent(a("complete",this)),this}async warmup(){var t;if((t=this.result)!=null&&t.error)return;this.dispatchEvent(a("warmup",this)),await this.bench.setup(this,"warmup");let{error:e}=await this.loop(this.bench.warmupTime,this.bench.warmupIterations);if(this.bench.teardown(this,"warmup"),e&&(this.setResult({error:e}),this.bench.throws))throw e}addEventListener(t,e,r){super.addEventListener(t,e,r)}removeEventListener(t,e,r){super.removeEventListener(t,e,r)}setResult(t){this.result={...this.result,...t},Object.freeze(this.result)}reset(){this.dispatchEvent(a("reset",this)),this.runs=0,this.result=void 0}},U= exports.Bench =class extends EventTarget{constructor(t={}){var e,r,s,h,u,o,n,l;super(),this._tasks=new Map,this._todos=new Map,this.concurrency=null,this.threshold=1/0,this.warmupTime=100,this.warmupIterations=5,this.time=500,this.iterations=10,this.now=Y,this.now=(e=t.now)!=null?e:this.now,this.warmupTime=(r=t.warmupTime)!=null?r:this.warmupTime,this.warmupIterations=(s=t.warmupIterations)!=null?s:this.warmupIterations,this.time=(h=t.time)!=null?h:this.time,this.iterations=(u=t.iterations)!=null?u:this.iterations,this.signal=t.signal,this.throws=(o=t.throws)!=null?o:!1,this.setup=(n=t.setup)!=null?n:()=>{},this.teardown=(l=t.teardown)!=null?l:()=>{},this.signal&&this.signal.addEventListener("abort",()=>{this.dispatchEvent(a("abort"))},{once:!0})}runTask(t){var e;return(e=this.signal)!=null&&e.aborted?t:t.run()}async run(){if(this.concurrency==="bench")return this.runConcurrently(this.threshold,this.concurrency);this.dispatchEvent(a("start"));let t=[];for(let e of[...this._tasks.values()])t.push(await this.runTask(e));return this.dispatchEvent(a("complete")),t}async runConcurrently(t=1/0,e="bench"){if(this.threshold=t,this.concurrency=e,e==="task")return this.run();this.dispatchEvent(a("start"));let r=g(t),s=[];for(let u of[...this._tasks.values()])s.push(r(()=>this.runTask(u)));let h=await Promise.all(s);return this.dispatchEvent(a("complete")),h}async warmup(){if(this.concurrency==="bench"){await this.warmupConcurrently(this.threshold,this.concurrency);return}this.dispatchEvent(a("warmup"));for(let[,t]of this._tasks)await t.warmup()}async warmupConcurrently(t=1/0,e="bench"){if(this.threshold=t,this.concurrency=e,e==="task"){await this.warmup();return}this.dispatchEvent(a("warmup"));let r=g(t),s=[];for(let[,h]of this._tasks)s.push(r(()=>h.warmup()));await Promise.all(s)}reset(){this.dispatchEvent(a("reset")),this._tasks.forEach(t=>{t.reset()})}add(t,e,r={}){let s=new L(this,t,e,r);return this._tasks.set(t,s),this.dispatchEvent(a("add",s)),this}todo(t,e=()=>{},r={}){let s=new L(this,t,e,r);return this._todos.set(t,s),this.dispatchEvent(a("todo",s)),this}remove(t){let e=this.getTask(t);return e&&(this.dispatchEvent(a("remove",e)),this._tasks.delete(t)),this}addEventListener(t,e,r){super.addEventListener(t,e,r)}removeEventListener(t,e,r){super.removeEventListener(t,e,r)}table(t){return this.tasks.map(e=>{if(e.result){if(e.result.error)throw e.result.error;return _optionalChain([t, 'optionalCall', _2 => _2(e)])||{"Task Name":e.name,"ops/sec":e.result.error?"NaN":parseInt(e.result.hz.toString(),10).toLocaleString(),"Average Time (ns)":e.result.error?"NaN":e.result.mean*1e3*1e3,Margin:e.result.error?"NaN":`\xB1${e.result.rme.toFixed(2)}%`,Samples:e.result.error?"NaN":e.result.samples.length}}return null})}get results(){return[...this._tasks.values()].map(t=>t.result)}get tasks(){return[...this._tasks.values()]}get todos(){return[...this._todos.values()]}getTask(t){return this._tasks.get(t)}};exports.Bench = U; exports.Task = L; exports.hrtimeNow = K; exports.now = Y;
|
|
2
|
+
//# sourceMappingURL=dist-SEGTJ72R.min.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/choksheaklau/src/react-utils/dist/dist-SEGTJ72R.min.cjs","../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.js"],"names":["$","C","s","D","n","t","O","d","k","f","e","F","r","M","m","w","E","g","y","h","p","a","l","i","c","o","G","N","J","U","B","W","S","X","Z","z","b","T","u","v","L","A","P","R","I","_","K","j","H","V","Q","Y","x"],"mappings":"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","file":"/Users/choksheaklau/src/react-utils/dist/dist-SEGTJ72R.min.cjs","sourcesContent":[null,"var $ = Object.defineProperty;\nvar C = (s) => {\n throw TypeError(s);\n};\nvar D = (s, n, t) => n in s ? $(s, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[n] = t;\nvar O = (s, n, t) => D(s, typeof n != \"symbol\" ? n + \"\" : n, t), q = (s, n, t) => n.has(s) || C(\"Cannot \" + t);\nvar d = (s, n, t) => (q(s, n, \"read from private field\"), t ? t.call(s) : n.get(s)), k = (s, n, t) => n.has(s) ? C(\"Cannot add the same private member more than once\") : n instanceof WeakSet ? n.add(s) : n.set(s, t), f = (s, n, t, e) => (q(s, n, \"write to private field\"), e ? e.call(s, t) : n.set(s, t), t);\nvar F = (s, n, t, e) => ({\n set _(r) {\n f(s, n, r, t);\n },\n get _() {\n return d(s, n, e);\n }\n});\n\n// node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js\nvar M = class {\n constructor(n) {\n O(this, \"value\");\n O(this, \"next\");\n this.value = n;\n }\n}, m, w, E, g = class {\n constructor() {\n k(this, m);\n k(this, w);\n k(this, E);\n this.clear();\n }\n enqueue(n) {\n let t = new M(n);\n d(this, m) ? (d(this, w).next = t, f(this, w, t)) : (f(this, m, t), f(this, w, t)), F(this, E)._++;\n }\n dequeue() {\n let n = d(this, m);\n if (n)\n return f(this, m, d(this, m).next), F(this, E)._--, n.value;\n }\n clear() {\n f(this, m, void 0), f(this, w, void 0), f(this, E, 0);\n }\n get size() {\n return d(this, E);\n }\n *[Symbol.iterator]() {\n let n = d(this, m);\n for (; n; )\n yield n.value, n = n.next;\n }\n};\nm = new WeakMap(), w = new WeakMap(), E = new WeakMap();\n\n// node_modules/.pnpm/p-limit@4.0.0/node_modules/p-limit/index.js\nfunction y(s) {\n if (!((Number.isInteger(s) || s === Number.POSITIVE_INFINITY) && s > 0))\n throw new TypeError(\"Expected `concurrency` to be a number from 1 and up\");\n let n = new g(), t = 0, e = () => {\n t--, n.size > 0 && n.dequeue()();\n }, r = async (h, p, a) => {\n t++;\n let l = (async () => h(...a))();\n p(l);\n try {\n await l;\n } catch (T) {\n }\n e();\n }, i = (h, p, a) => {\n n.enqueue(r.bind(void 0, h, p, a)), (async () => (await Promise.resolve(), t < s && n.size > 0 && n.dequeue()()))();\n }, c = (h, ...p) => new Promise((a) => {\n i(h, a, p);\n });\n return Object.defineProperties(c, {\n activeCount: {\n get: () => t\n },\n pendingCount: {\n get: () => n.size\n },\n clearQueue: {\n value: () => {\n n.clear();\n }\n }\n }), c;\n}\n\n// src/event.ts\nfunction o(s, n = null) {\n let t = new Event(s);\n return n && Object.defineProperty(t, \"task\", {\n value: n,\n enumerable: !0,\n writable: !1,\n configurable: !1\n }), t;\n}\n\n// src/constants.ts\nvar G = {\n 1: 12.71,\n 2: 4.303,\n 3: 3.182,\n 4: 2.776,\n 5: 2.571,\n 6: 2.447,\n 7: 2.365,\n 8: 2.306,\n 9: 2.262,\n 10: 2.228,\n 11: 2.201,\n 12: 2.179,\n 13: 2.16,\n 14: 2.145,\n 15: 2.131,\n 16: 2.12,\n 17: 2.11,\n 18: 2.101,\n 19: 2.093,\n 20: 2.086,\n 21: 2.08,\n 22: 2.074,\n 23: 2.069,\n 24: 2.064,\n 25: 2.06,\n 26: 2.056,\n 27: 2.052,\n 28: 2.048,\n 29: 2.045,\n 30: 2.042,\n 31: 2.0399,\n 32: 2.0378,\n 33: 2.0357,\n 34: 2.0336,\n 35: 2.0315,\n 36: 2.0294,\n 37: 2.0273,\n 38: 2.0252,\n 39: 2.0231,\n 40: 2.021,\n 41: 2.0198,\n 42: 2.0186,\n 43: 2.0174,\n 44: 2.0162,\n 45: 2.015,\n 46: 2.0138,\n 47: 2.0126,\n 48: 2.0114,\n 49: 2.0102,\n 50: 2.009,\n 51: 2.0081,\n 52: 2.0072,\n 53: 2.0063,\n 54: 2.0054,\n 55: 2.0045,\n 56: 2.0036,\n 57: 2.0027,\n 58: 2.0018,\n 59: 2.0009,\n 60: 2,\n 61: 1.9995,\n 62: 1.999,\n 63: 1.9985,\n 64: 1.998,\n 65: 1.9975,\n 66: 1.997,\n 67: 1.9965,\n 68: 1.996,\n 69: 1.9955,\n 70: 1.995,\n 71: 1.9945,\n 72: 1.994,\n 73: 1.9935,\n 74: 1.993,\n 75: 1.9925,\n 76: 1.992,\n 77: 1.9915,\n 78: 1.991,\n 79: 1.9905,\n 80: 1.99,\n 81: 1.9897,\n 82: 1.9894,\n 83: 1.9891,\n 84: 1.9888,\n 85: 1.9885,\n 86: 1.9882,\n 87: 1.9879,\n 88: 1.9876,\n 89: 1.9873,\n 90: 1.987,\n 91: 1.9867,\n 92: 1.9864,\n 93: 1.9861,\n 94: 1.9858,\n 95: 1.9855,\n 96: 1.9852,\n 97: 1.9849,\n 98: 1.9846,\n 99: 1.9843,\n 100: 1.984,\n 101: 1.9838,\n 102: 1.9836,\n 103: 1.9834,\n 104: 1.9832,\n 105: 1.983,\n 106: 1.9828,\n 107: 1.9826,\n 108: 1.9824,\n 109: 1.9822,\n 110: 1.982,\n 111: 1.9818,\n 112: 1.9816,\n 113: 1.9814,\n 114: 1.9812,\n 115: 1.9819,\n 116: 1.9808,\n 117: 1.9806,\n 118: 1.9804,\n 119: 1.9802,\n 120: 1.98,\n infinity: 1.96\n}, N = G;\n\n// src/utils.ts\nvar J = (s) => s / 1e6, U = () => J(Number(process.hrtime.bigint())), B = () => performance.now();\nfunction W(s) {\n return s !== null && typeof s == \"object\" && typeof s.then == \"function\";\n}\nvar S = (s, n) => s.reduce((e, r) => e + (r - n) ** 2, 0) / (s.length - 1) || 0, X = (async () => {\n}).constructor, Z = (s) => s.constructor === X, z = async (s) => {\n if (Z(s.fn))\n return !0;\n try {\n if (s.opts.beforeEach != null)\n try {\n await s.opts.beforeEach.call(s);\n } catch (e) {\n }\n let n = s.fn(), t = W(n);\n if (t)\n try {\n await n;\n } catch (e) {\n }\n if (s.opts.afterEach != null)\n try {\n await s.opts.afterEach.call(s);\n } catch (e) {\n }\n return t;\n } catch (n) {\n return !1;\n }\n};\n\n// src/task.ts\nvar b = class extends EventTarget {\n constructor(t, e, r, i = {}) {\n super();\n /*\n * the number of times the task\n * function has been executed\n */\n this.runs = 0;\n this.bench = t, this.name = e, this.fn = r, this.opts = i;\n }\n async loop(t, e) {\n var T;\n let r = this.bench.concurrency === \"task\", { threshold: i } = this.bench, c = 0, h = [];\n if (this.opts.beforeAll != null)\n try {\n await this.opts.beforeAll.call(this);\n } catch (u) {\n return { error: u };\n }\n let p = await z(this), a = async () => {\n this.opts.beforeEach != null && await this.opts.beforeEach.call(this);\n let u = 0;\n if (p) {\n let v = this.bench.now();\n await this.fn.call(this), u = this.bench.now() - v;\n } else {\n let v = this.bench.now();\n this.fn.call(this), u = this.bench.now() - v;\n }\n h.push(u), c += u, this.opts.afterEach != null && await this.opts.afterEach.call(this);\n }, l = y(i);\n try {\n let u = [];\n for (; (c < t || h.length + l.activeCount + l.pendingCount < e) && !((T = this.bench.signal) != null && T.aborted); )\n r ? u.push(l(a)) : await a();\n u.length && await Promise.all(u);\n } catch (u) {\n return { error: u };\n }\n if (this.opts.afterAll != null)\n try {\n await this.opts.afterAll.call(this);\n } catch (u) {\n return { error: u };\n }\n return { samples: h };\n }\n /**\n * run the current task and write the results in `Task.result` object\n */\n async run() {\n var r, i;\n if ((r = this.result) != null && r.error)\n return this;\n this.dispatchEvent(o(\"start\", this)), await this.bench.setup(this, \"run\");\n let { samples: t, error: e } = await this.loop(this.bench.time, this.bench.iterations);\n if (this.bench.teardown(this, \"run\"), t) {\n let c = t.reduce((L, A) => L + A, 0);\n this.runs = t.length, t.sort((L, A) => L - A);\n let h = c / this.runs, p = 1e3 / h, a = t.length, l = a - 1, T = t[0], u = t[l], v = c / t.length || 0, P = S(t, v), R = Math.sqrt(P), I = R / Math.sqrt(a), _ = N[String(Math.round(l) || 1)] || N.infinity, K = I * _, j = K / v * 100, H = t[Math.ceil(a * 0.75) - 1], V = t[Math.ceil(a * 0.99) - 1], Q = t[Math.ceil(a * 0.995) - 1], Y = t[Math.ceil(a * 0.999) - 1];\n if ((i = this.bench.signal) != null && i.aborted)\n return this;\n this.setResult({\n totalTime: c,\n min: T,\n max: u,\n hz: p,\n period: h,\n samples: t,\n mean: v,\n variance: P,\n sd: R,\n sem: I,\n df: l,\n critical: _,\n moe: K,\n rme: j,\n p75: H,\n p99: V,\n p995: Q,\n p999: Y\n });\n }\n if (e) {\n if (this.setResult({ error: e }), this.bench.throws)\n throw e;\n this.dispatchEvent(o(\"error\", this)), this.bench.dispatchEvent(o(\"error\", this));\n }\n return this.dispatchEvent(o(\"cycle\", this)), this.bench.dispatchEvent(o(\"cycle\", this)), this.dispatchEvent(o(\"complete\", this)), this;\n }\n /**\n * warmup the current task\n */\n async warmup() {\n var e;\n if ((e = this.result) != null && e.error)\n return;\n this.dispatchEvent(o(\"warmup\", this)), await this.bench.setup(this, \"warmup\");\n let { error: t } = await this.loop(this.bench.warmupTime, this.bench.warmupIterations);\n if (this.bench.teardown(this, \"warmup\"), t && (this.setResult({ error: t }), this.bench.throws))\n throw t;\n }\n addEventListener(t, e, r) {\n super.addEventListener(t, e, r);\n }\n removeEventListener(t, e, r) {\n super.removeEventListener(t, e, r);\n }\n /**\n * change the result object values\n */\n setResult(t) {\n this.result = { ...this.result, ...t }, Object.freeze(this.result);\n }\n /**\n * reset the task to make the `Task.runs` a zero-value and remove the `Task.result`\n * object\n */\n reset() {\n this.dispatchEvent(o(\"reset\", this)), this.runs = 0, this.result = void 0;\n }\n};\n\n// src/bench.ts\nvar x = class extends EventTarget {\n constructor(t = {}) {\n var e, r, i, c, h, p, a, l;\n super();\n /*\n * @private the task map\n */\n this._tasks = /* @__PURE__ */ new Map();\n this._todos = /* @__PURE__ */ new Map();\n /**\n * Executes tasks concurrently based on the specified concurrency mode.\n *\n * - When `mode` is set to `null` (default), concurrency is disabled.\n * - When `mode` is set to 'task', each task's iterations (calls of a task function) run concurrently.\n * - When `mode` is set to 'bench', different tasks within the bench run concurrently.\n */\n this.concurrency = null;\n /**\n * The maximum number of concurrent tasks to run. Defaults to Infinity.\n */\n this.threshold = 1 / 0;\n this.warmupTime = 100;\n this.warmupIterations = 5;\n this.time = 500;\n this.iterations = 10;\n this.now = B;\n this.now = (e = t.now) != null ? e : this.now, this.warmupTime = (r = t.warmupTime) != null ? r : this.warmupTime, this.warmupIterations = (i = t.warmupIterations) != null ? i : this.warmupIterations, this.time = (c = t.time) != null ? c : this.time, this.iterations = (h = t.iterations) != null ? h : this.iterations, this.signal = t.signal, this.throws = (p = t.throws) != null ? p : !1, this.setup = (a = t.setup) != null ? a : () => {\n }, this.teardown = (l = t.teardown) != null ? l : () => {\n }, this.signal && this.signal.addEventListener(\n \"abort\",\n () => {\n this.dispatchEvent(o(\"abort\"));\n },\n { once: !0 }\n );\n }\n runTask(t) {\n var e;\n return (e = this.signal) != null && e.aborted ? t : t.run();\n }\n /**\n * run the added tasks that were registered using the\n * {@link add} method.\n * Note: This method does not do any warmup. Call {@link warmup} for that.\n */\n async run() {\n if (this.concurrency === \"bench\")\n return this.runConcurrently(this.threshold, this.concurrency);\n this.dispatchEvent(o(\"start\"));\n let t = [];\n for (let e of [...this._tasks.values()])\n t.push(await this.runTask(e));\n return this.dispatchEvent(o(\"complete\")), t;\n }\n /**\n * See Bench.{@link concurrency}\n */\n async runConcurrently(t = 1 / 0, e = \"bench\") {\n if (this.threshold = t, this.concurrency = e, e === \"task\")\n return this.run();\n this.dispatchEvent(o(\"start\"));\n let r = y(t), i = [];\n for (let h of [...this._tasks.values()])\n i.push(r(() => this.runTask(h)));\n let c = await Promise.all(i);\n return this.dispatchEvent(o(\"complete\")), c;\n }\n /**\n * warmup the benchmark tasks.\n * This is not run by default by the {@link run} method.\n */\n async warmup() {\n if (this.concurrency === \"bench\") {\n await this.warmupConcurrently(this.threshold, this.concurrency);\n return;\n }\n this.dispatchEvent(o(\"warmup\"));\n for (let [, t] of this._tasks)\n await t.warmup();\n }\n /**\n * warmup the benchmark tasks concurrently.\n * This is not run by default by the {@link runConcurrently} method.\n */\n async warmupConcurrently(t = 1 / 0, e = \"bench\") {\n if (this.threshold = t, this.concurrency = e, e === \"task\") {\n await this.warmup();\n return;\n }\n this.dispatchEvent(o(\"warmup\"));\n let r = y(t), i = [];\n for (let [, c] of this._tasks)\n i.push(r(() => c.warmup()));\n await Promise.all(i);\n }\n /**\n * reset each task and remove its result\n */\n reset() {\n this.dispatchEvent(o(\"reset\")), this._tasks.forEach((t) => {\n t.reset();\n });\n }\n /**\n * add a benchmark task to the task map\n */\n add(t, e, r = {}) {\n let i = new b(this, t, e, r);\n return this._tasks.set(t, i), this.dispatchEvent(o(\"add\", i)), this;\n }\n /**\n * add a benchmark todo to the todo map\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n todo(t, e = () => {\n }, r = {}) {\n let i = new b(this, t, e, r);\n return this._todos.set(t, i), this.dispatchEvent(o(\"todo\", i)), this;\n }\n /**\n * remove a benchmark task from the task map\n */\n remove(t) {\n let e = this.getTask(t);\n return e && (this.dispatchEvent(o(\"remove\", e)), this._tasks.delete(t)), this;\n }\n addEventListener(t, e, r) {\n super.addEventListener(t, e, r);\n }\n removeEventListener(t, e, r) {\n super.removeEventListener(t, e, r);\n }\n /**\n * table of the tasks results\n */\n table(t) {\n return this.tasks.map((e) => {\n if (e.result) {\n if (e.result.error)\n throw e.result.error;\n return (t == null ? void 0 : t(e)) || {\n \"Task Name\": e.name,\n \"ops/sec\": e.result.error ? \"NaN\" : parseInt(e.result.hz.toString(), 10).toLocaleString(),\n \"Average Time (ns)\": e.result.error ? \"NaN\" : e.result.mean * 1e3 * 1e3,\n Margin: e.result.error ? \"NaN\" : `\\xB1${e.result.rme.toFixed(2)}%`,\n Samples: e.result.error ? \"NaN\" : e.result.samples.length\n };\n }\n return null;\n });\n }\n /**\n * (getter) tasks results as an array\n */\n get results() {\n return [...this._tasks.values()].map((t) => t.result);\n }\n /**\n * (getter) tasks as an array\n */\n get tasks() {\n return [...this._tasks.values()];\n }\n get todos() {\n return [...this._todos.values()];\n }\n /**\n * get a task based on the task name\n */\n getTask(t) {\n return this._tasks.get(t);\n }\n};\nexport {\n x as Bench,\n b as Task,\n U as hrtimeNow,\n B as now\n};\n"]}
|
package/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkALTY6BU7cjs = require('./chunk-ALTY6BU7.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ var _chunkHFIQE4XZcjs = require('./chunk-HFIQE4XZ.cjs');
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkKXFV42DPcjs = require('./chunk-KXFV42DP.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -40,4 +40,4 @@ require('./chunk-IS3BZTWE.cjs');
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
exports.SharedQueryConfig =
|
|
43
|
+
exports.SharedQueryConfig = _chunkALTY6BU7cjs.SharedQueryConfig; exports.SharedStateConfig = _chunkKXFV42DPcjs.SharedStateConfig; exports.configureSharedQuery = _chunkALTY6BU7cjs.configureSharedQuery; exports.configureSharedState = _chunkKXFV42DPcjs.configureSharedState; exports.getStorageAdapter = _chunk5PDGU37Ecjs.getStorageAdapter; exports.kvStoreAdapter = _chunk5PDGU37Ecjs.kvStoreAdapter; exports.localStoreAdapter = _chunk5PDGU37Ecjs.localStoreAdapter; exports.sharedQuery = _chunkALTY6BU7cjs.sharedQuery; exports.sharedState = _chunkKXFV42DPcjs.sharedState; exports.stringifyDeterministicForKeys = _chunkCYTO5EZEcjs.stringifyDeterministicForKeys; exports.useDeepMemo = _chunkWXLUEDBOcjs.useDeepMemo; exports.useSharedQuery = _chunkALTY6BU7cjs.useSharedQuery; exports.useSharedState = _chunkKXFV42DPcjs.useSharedState; exports.useSharedStateSetter = _chunkKXFV42DPcjs.useSharedStateSetter; exports.useSharedStateValue = _chunkKXFV42DPcjs.useSharedStateValue;
|
package/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { QueryFn, QueryStateValue, QueryTarget, QueryTargetWithFn, QueryTargetWithUrl, SharedQuery, SharedQueryConfig, SharedQueryOptions, SharedQueryState, UseQueryResult, configureSharedQuery, sharedQuery, useSharedQuery } from './sharedQuery.cjs';
|
|
2
2
|
export { useDeepMemo } from './useDeepMemo.cjs';
|
|
3
3
|
export { SharedState, SharedStateConfig, SharedStateOptions, configureSharedState, sharedState, useSharedState, useSharedStateSetter, useSharedStateValue } from './sharedState.cjs';
|
|
4
|
-
export { PersistTo, StorageOptions, StoreConstructorArgs, StoreOptions, getStorageAdapter, kvStoreAdapter, localStoreAdapter } from './storage.cjs';
|
|
5
4
|
export { stringifyDeterministicForKeys } from './stringify.cjs';
|
|
5
|
+
export { PersistTo, StorageOptions, StoreConstructorArgs, StoreOptions, getStorageAdapter, kvStoreAdapter, localStoreAdapter } from './storage.cjs';
|
|
6
6
|
import '@choksheak/ts-utils/storageAdapter';
|
|
7
7
|
import 'react';
|
|
8
8
|
import '@choksheak/ts-utils/duration';
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { QueryFn, QueryStateValue, QueryTarget, QueryTargetWithFn, QueryTargetWithUrl, SharedQuery, SharedQueryConfig, SharedQueryOptions, SharedQueryState, UseQueryResult, configureSharedQuery, sharedQuery, useSharedQuery } from './sharedQuery.js';
|
|
2
2
|
export { useDeepMemo } from './useDeepMemo.js';
|
|
3
3
|
export { SharedState, SharedStateConfig, SharedStateOptions, configureSharedState, sharedState, useSharedState, useSharedStateSetter, useSharedStateValue } from './sharedState.js';
|
|
4
|
-
export { PersistTo, StorageOptions, StoreConstructorArgs, StoreOptions, getStorageAdapter, kvStoreAdapter, localStoreAdapter } from './storage.js';
|
|
5
4
|
export { stringifyDeterministicForKeys } from './stringify.js';
|
|
5
|
+
export { PersistTo, StorageOptions, StoreConstructorArgs, StoreOptions, getStorageAdapter, kvStoreAdapter, localStoreAdapter } from './storage.js';
|
|
6
6
|
import '@choksheak/ts-utils/storageAdapter';
|
|
7
7
|
import 'react';
|
|
8
8
|
import '@choksheak/ts-utils/duration';
|