zova-module-a-model 5.1.30 → 5.1.31
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/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +3 -3
- package/dist/lib/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/lib/utils.ts +17 -17
package/dist/index.js
CHANGED
|
@@ -663,27 +663,27 @@ function Model(options) {
|
|
|
663
663
|
}
|
|
664
664
|
//#endregion
|
|
665
665
|
//#region src/lib/utils.ts
|
|
666
|
-
async function $
|
|
667
|
-
return
|
|
666
|
+
async function $QueryEnsureLoaded(fn) {
|
|
667
|
+
return _QueryEnsureLoadedInner(fn);
|
|
668
668
|
}
|
|
669
|
-
async function $
|
|
669
|
+
async function $QueriesEnsureLoaded(fn1, fn2, fn3, fn4, fn5, ...fns) {
|
|
670
670
|
let promises = [
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
671
|
+
_QueryEnsureLoadedInner(fn1),
|
|
672
|
+
_QueryEnsureLoadedInner(fn2),
|
|
673
|
+
_QueryEnsureLoadedInner(fn3),
|
|
674
|
+
_QueryEnsureLoadedInner(fn4),
|
|
675
|
+
_QueryEnsureLoadedInner(fn5)
|
|
676
676
|
];
|
|
677
|
-
if (fns.length > 0) promises = promises.concat(fns.map((fn) =>
|
|
677
|
+
if (fns.length > 0) promises = promises.concat(fns.map((fn) => _QueryEnsureLoadedInner(fn)));
|
|
678
678
|
return await Promise.all(promises);
|
|
679
679
|
}
|
|
680
|
-
async function
|
|
680
|
+
async function _QueryEnsureLoadedInner(fn) {
|
|
681
681
|
if (!fn) return;
|
|
682
682
|
const query = fn();
|
|
683
683
|
if (query && query.data === void 0) await query.suspense();
|
|
684
684
|
return query;
|
|
685
685
|
}
|
|
686
686
|
//#endregion
|
|
687
|
-
export { $
|
|
687
|
+
export { $QueriesEnsureLoaded, $QueryEnsureLoaded, BeanModelBase, Model, Monkey, ScopeModuleAModel, ServiceStorage, config, resolveMaxAgeTime, resolveStaleTime };
|
|
688
688
|
|
|
689
689
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/types/query.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.ts","../src/bean/bean.model/bean.model.last.ts","../src/bean/bean.model/bean.model.persister.ts","../src/bean/bean.model/bean.model.local.ts","../src/bean/bean.model/bean.model.cookie.ts","../src/bean/bean.model/bean.model.query.ts","../src/bean/bean.model/bean.model.useQuery.ts","../src/bean/bean.model/bean.model.useState.ts","../src/bean/bean.model/bean.model.useStateGeneral.ts","../src/bean/bean.model/bean.model.useMutation.ts","../src/bean/bean.model/bean.model.first.ts","../src/bean/bean.modelBase.ts","../src/service/storage.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/model.ts","../src/lib/utils.ts"],"sourcesContent":["import 'zova';\nexport function resolveStaleTime(staleTime, query) {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime;\n}\nexport function resolveMaxAgeTime(maxAge, query) {\n return typeof maxAge === 'function' ? maxAge(query) : maxAge;\n}","export const __ThisModule__ = 'a-model';\nexport { ScopeModuleAModel as ScopeModule } from './index.js';","import { BeanSimple } from 'zova';\nimport { __ThisModule__ } from '../.metadata/this.js';\nimport { resolveMaxAgeTime } from '../types/index.js';\nexport class CookieWrapper extends BeanSimple {\n constructor(...args) {\n super(...args);\n this.options = void 0;\n this.query = void 0;\n }\n __init__(options, query) {\n this.options = options;\n this.query = query;\n }\n getItem(key) {\n return this.app.meta.cookie.getItem(key);\n }\n setItem(key, value) {\n const configScope = this.bean.scope(__ThisModule__).config;\n const opts = {\n ...configScope.persister.cookie.options\n };\n let maxAge = resolveMaxAgeTime(this.options.maxAge, this.query);\n if (maxAge !== undefined) {\n if (maxAge === Infinity) maxAge = 1000 * 60 * 60 * 24 * 365;\n opts.expires = new Date(Date.now() + maxAge);\n }\n this.app.meta.cookie.setItem(key, value, opts);\n }\n removeItem(key) {\n this.app.meta.cookie.removeItem(key);\n }\n}","import { BeanBase, cast } from 'zova';\nimport { __ThisModule__ } from '../../.metadata/this.js';\nexport class BeanModelLast extends BeanBase {\n constructor(selector) {\n super();\n this.selector = void 0;\n if (this.$onionOptions?.enableSelector) {\n this.selector = selector ?? '';\n }\n }\n async __init__(_selector) {\n // do nothing\n }\n get $onionOptions() {\n return super.$onionOptions;\n }\n get self() {\n return cast(this);\n }\n get scopeSelf() {\n return this.bean.scope(__ThisModule__);\n }\n}","import { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';\nimport localforage from 'localforage';\nimport { SymbolBeanFullName } from 'zova';\nimport { CookieWrapper } from '../../common/cookieWrapper.js';\nimport { resolveMaxAgeTime } from '../../types/index.js';\nimport { BeanModelLast } from './bean.model.last.js';\nexport class BeanModelPersister extends BeanModelLast {\n _persisterLoad_inner(storage, storageKey, storedData, query, options) {\n if (!storedData) return undefined;\n const persistedQuery = options.deserialize ? options.deserialize(storedData, options.deserializeDefault) : options.deserializeDefault(storedData);\n if (persistedQuery.state.dataUpdatedAt) {\n const queryAge = Date.now() - persistedQuery.state.dataUpdatedAt;\n const expired = queryAge > (resolveMaxAgeTime(options.maxAge, query) ?? Infinity);\n const busted = persistedQuery.buster !== options.buster;\n if (expired || busted) {\n storage.removeItem(storageKey);\n } else {\n // Set proper updatedAt, since resolving in the first pass overrides those values\n query.setState({\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt\n });\n return persistedQuery.state.data;\n }\n } else {\n storage.removeItem(storageKey);\n }\n }\n $persisterLoad(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return undefined;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return undefined;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return undefined;\n const storageKey = this._getPersisterStorageKey(options, query);\n try {\n const storedData = storage.getItem(storageKey);\n if (options.sync) {\n return this._persisterLoad_inner(storage, storageKey, storedData, query, options);\n } else {\n return storedData.then(storedData => {\n return this._persisterLoad_inner(storage, storageKey, storedData, query, options);\n });\n }\n } catch (err) {\n if (process.env.DEV) {\n console.error(err);\n console.warn('Encountered an error attempting to restore query cache from persisted location.');\n }\n storage.removeItem(storageKey);\n }\n }\n $persisterSave(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return;\n const storageKey = this._getPersisterStorageKey(options, query);\n const params = {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster: options.buster\n };\n const data = options.serialize ? options.serialize(params, options.serializeDefault) : options.serializeDefault(params);\n if (options.sync === true) {\n storage.setItem(storageKey, data);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.setItem(storageKey, data);\n }, 0);\n }\n }\n $persisterRemove(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return;\n const storageKey = this._getPersisterStorageKey(options, query);\n if (options.sync === true) {\n storage.removeItem(storageKey);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.removeItem(storageKey);\n }, 0);\n }\n }\n _createPersister(options) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n return experimental_createQueryPersister({\n storage: this._getPersisterStorage(options),\n maxAge: options.maxAge,\n refetchOnRestore: options.refetchOnRestore,\n prefix: options.prefix,\n buster: options.buster\n }).persisterFn;\n }\n _adjustPersisterOptions(options) {\n if (options === false) return undefined;\n if (options === undefined || options === true) {\n options = {};\n } else {\n options = {\n ...options\n };\n }\n options.storage = options.storage ?? (options.sync ? 'local' : 'db');\n options.maxAge = options.maxAge ?? this.scopeSelf.config.persister.maxAge[options.storage];\n options.refetchOnRestore = options.refetchOnRestore ?? this.scopeSelf.config.persister.refetchOnRestore;\n options.prefix = options.prefix ?? this._getPersisterPrefix();\n options.buster = options.buster ?? this._getPersisterBuster();\n options.serializeDefault = options.serializeDefault ?? JSON.stringify;\n options.deserializeDefault = options.deserializeDefault ?? JSON.parse;\n return options;\n }\n _getPersisterStorageKey(options, query) {\n if (options.storageKeySimplify) return String(query.queryKey[query.queryKey.length - 1]);\n return `${options.prefix}-${query.queryHash}`;\n }\n _getPersisterStorage(options, query) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n // cookie\n if (options.storage === 'cookie') return this.bean._newBeanSimple(CookieWrapper, false, options, query);\n // check server\n if (process.env.SERVER) return undefined;\n // local\n if (options.storage === 'local') return localStorage;\n // db\n if (options.storage === 'db') return localforage;\n }\n _getPersisterPrefix() {\n return `${this.sys.env.APP_NAME}-query`;\n }\n _getPersisterBuster() {\n return this.sys.env.APP_VERSION;\n }\n _forceQueryKeyPrefix(queryKey) {\n if (!queryKey) queryKey = [];\n if (!this._prefixIsBeanFullName(queryKey[0])) {\n const prefixes = [this[SymbolBeanFullName]];\n if (this.$onionOptions?.enableSelector) {\n prefixes.push(this.selector);\n }\n queryKey = prefixes.concat(queryKey);\n }\n return queryKey;\n }\n _prefixIsBeanFullName(prefix) {\n return prefix === this[SymbolBeanFullName];\n // return (prefix && typeof prefix === 'string' && prefix.split('.').length === 3);\n }\n}","import { BeanModelPersister } from './bean.model.persister.js';\nexport class BeanModelLocal extends BeanModelPersister {\n $serializeLocal(obj) {\n return JSON.stringify(obj?.state?.data);\n }\n $deserializeLocal(value) {\n return {\n state: {\n data: value ? JSON.parse(value) : undefined,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n}","import { BeanModelLocal } from './bean.model.local.js';\nexport class BeanModelCookie extends BeanModelLocal {\n $serializeCookie(obj) {\n return String(obj?.state?.data ?? '');\n }\n $deserializeCookie(value) {\n return {\n state: {\n data: value,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n _cookieCoerce(value, cookieType) {\n if (value === undefined || value === '') return undefined; // string of '' means should delete the cookie\n if (!cookieType || cookieType === 'auto') {\n return value === 'true' ? true : value === 'false' ? false : value;\n } else if (cookieType === 'boolean') {\n return value === 'true' ? true : value === 'false' ? false : Boolean(Number(value));\n } else if (cookieType === 'number') {\n return Number(value);\n } else if (cookieType === 'date') {\n return new Date(value);\n } else if (cookieType === 'string') {\n return value;\n }\n return value;\n }\n}","import localforage from 'localforage';\nimport { cast } from 'zova';\nimport { BeanModelCookie } from './bean.model.cookie.js';\nexport class BeanModelQuery extends BeanModelCookie {\n $setQueryData(queryKey, updater, persisterSave, options) {\n queryKey = this._forceQueryKeyPrefix(queryKey);\n const data = this.$queryClient.setQueryData(queryKey, updater, options);\n if (data === undefined) {\n if (persisterSave) {\n this.$persisterRemove(queryKey);\n }\n this.$setQueryDataDirect(queryKey, data);\n } else {\n if (persisterSave) {\n this.$persisterSave(queryKey);\n }\n }\n return data;\n }\n $queryFind(filters) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.getQueryCache().find(filters);\n }\n $invalidateQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.invalidateQueries(filters, options);\n }\n $refetchQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.refetchQueries(filters, options);\n }\n $setQueryDataDirect(queryKey, value) {\n const query = this.$queryFind({\n queryKey,\n exact: true\n });\n query?.setData(value);\n }\n async $clear() {\n const queries = this.$queryClient.getQueryCache().getAll();\n for (const query of queries) {\n query?.setData(undefined);\n }\n // remove all db cache\n await localforage.clear();\n }\n $normalizeFilters(filters) {\n if (!filters) filters = {};\n const queryKey = this._forceQueryKeyPrefix(cast(filters).queryKey);\n return {\n ...filters,\n queryKey\n };\n }\n}","import { checkErrorJwtExpired } from '@cabloy/utils';\nimport { useQuery } from '@tanstack/vue-query';\nimport { cast } from 'zova';\nimport { resolveStaleTime } from '../../types/index.js';\nimport { BeanModelQuery } from './bean.model.query.js';\nexport class BeanModelUseQuery extends BeanModelQuery {\n $useQuery(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const persister = this._createPersister(options.meta?.persister);\n const optionsDefault = {};\n if (!cast(options).meta?.disableErrorEffect) {\n optionsDefault.throwOnError = (error, query) => {\n let errorInfo = cast(options).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, query);\n }\n if (!error.message.includes('useQuery:') && !checkErrorJwtExpired(error)) {\n error.message = `useQuery: [${queryKey.join(', ')}]: ${error.message}`;\n }\n this.$errorHandler(error, errorInfo ?? 'useQuery');\n return false;\n };\n }\n options = Object.assign(optionsDefault, options, {\n queryKey,\n persister\n });\n // staleTime\n const sync = typeof options.meta?.persister === 'object' && options.meta?.persister?.sync;\n if (sync !== true) {\n const staleTime = options.staleTime ?? this.scopeSelf.config.query.staleTime.async;\n const queryCache = this.$queryFind({\n queryKey\n });\n const queryCacheExists = queryCache?.state.data !== undefined;\n options.staleTime = query => {\n if (!queryCacheExists) return resolveStaleTime(0, query);\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n return resolveStaleTime(this.scopeSelf.config.query.staleTime.ssr, query);\n }\n return resolveStaleTime(staleTime, query);\n };\n }\n return this.ctx.util.instanceScope(() => {\n return useQuery(options, queryClient);\n });\n }\n}","import { hashKey } from '@tanstack/vue-query';\nimport { deepExtend } from 'zova';\nimport { BeanModelUseQuery } from './bean.model.useQuery.js';\nconst SymbolUseQueries = Symbol('SymbolUseQueries');\nconst SymbolUseComputeds = Symbol('SymbolUseComputeds');\nexport class BeanModelUseState extends BeanModelUseQuery {\n constructor(...args) {\n super(...args);\n this[SymbolUseQueries] = {};\n this[SymbolUseComputeds] = {};\n }\n async $loadStateDb(dbData) {\n return await dbData;\n }\n $useStateDb(options, queryClient) {\n options = deepExtend({\n meta: {\n maxAge: this.scopeSelf.config.persister.maxAge.local\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n ssr: {\n dehydrate: false\n },\n persister: {\n storage: 'db',\n sync: false\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleAsyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n }\n $useStateLocal(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeLocal(obj);\n },\n deserializeDefault: value => {\n return this.$deserializeLocal(value);\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'local',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateCookie(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeCookie(obj);\n },\n deserializeDefault: value => {\n const cookieType = options.meta.persister.cookieType;\n return this.$deserializeCookie(this._cookieCoerce(value, cookieType));\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'cookie',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateMem(options, queryClient) {\n options = deepExtend({}, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: false\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, false);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, false, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, false);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, false, value);\n // },\n // });\n }\n $useStateComputed(options) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseComputeds][queryHash]) {\n this[SymbolUseComputeds][queryHash] = this.$computed(options.queryFn, options.debugOptions);\n }\n return this[SymbolUseComputeds][queryHash];\n }\n $useStateData(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseQueries][queryHash]) {\n const useQuery = this.$useQuery(options, queryClient);\n this[SymbolUseQueries][queryHash] = useQuery;\n if (!options.meta?.disableSuspenseOnInit) {\n useQuery.suspense();\n }\n }\n return this[SymbolUseQueries][queryHash];\n }\n _handleAsyncDataGet(options, queryClient, persister) {\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n return this._handleAsyncDataGet_inner(options, queryClient, persister);\n }\n async _handleAsyncDataGet_inner(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (persister) {\n const data = await this.$persisterLoad(queryKey);\n if (data !== undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n if (persister) {\n const data = this.$persisterLoad(queryKey);\n if (data !== undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet_defaultData(queryKey, options) {\n let defaultData = options.meta?.defaultData;\n if (typeof defaultData === 'function') {\n defaultData = defaultData();\n }\n if (defaultData !== undefined) {\n // need not persister save\n this.$setQueryData(queryKey, defaultData, false);\n }\n }\n _handleSyncDataSet(options, queryClient, persister, value) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n this.$setQueryData(queryKey, value, persister);\n return query;\n }\n}","import { BeanModelUseState } from './bean.model.useState.js';\nexport class BeanModelUseStateGeneral extends BeanModelUseState {\n $useState(stateType, options, queryClient) {\n switch (stateType) {\n case 'db':\n return this.$useStateDb(options, queryClient);\n case 'local':\n return this.$useStateLocal(options, queryClient);\n case 'cookie':\n return this.$useStateCookie(options, queryClient);\n case 'mem':\n return this.$useStateMem(options, queryClient);\n case 'data':\n return this.$useStateData(options, queryClient);\n }\n }\n}","import { hashKey, useMutation } from '@tanstack/vue-query';\nimport { cast } from 'zova';\nimport { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.js';\nconst SymbolUseMutations = Symbol('SymbolUseMutations');\nexport class BeanModelUseMutation extends BeanModelUseStateGeneral {\n constructor(...args) {\n super(...args);\n this[SymbolUseMutations] = {};\n }\n $useMutation(mutationOptions, queryClient) {\n return this.ctx.util.instanceScope(() => {\n return useMutation(mutationOptions, queryClient);\n });\n }\n $useMutationData(mutationOptions, queryClient) {\n let mutationKey = cast(mutationOptions).mutationKey;\n if (!mutationKey || mutationKey.length === 0) throw new Error('should specify mutationKey');\n mutationKey = this.self._forceQueryKeyPrefix(mutationKey);\n const mutationHash = hashKey(mutationKey);\n if (!this[SymbolUseMutations][mutationHash]) {\n const optionsDefault = {};\n if (!cast(mutationOptions).meta?.disableErrorEffect) {\n optionsDefault.onError = (error, variables, context) => {\n let errorInfo = cast(mutationOptions).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, variables, context);\n }\n this.$errorHandler(error, errorInfo ?? 'useMutationData');\n };\n }\n mutationOptions = Object.assign(optionsDefault, mutationOptions, {\n mutationKey\n });\n this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);\n }\n return this[SymbolUseMutations][mutationHash];\n }\n}","import { BeanModelUseMutation } from './bean.model.useMutation.js';\nexport class BeanModelFirst extends BeanModelUseMutation {}","var _dec, _dec2, _dec3, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nimport { BeanModelFirst } from './bean.model/bean.model.first.js';\nexport let BeanModelBase = (_dec = Bean(), _dec2 = Virtual(), _dec3 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = _dec3(_class = class BeanModelBase extends BeanModelFirst {}) || _class) || _class) || _class);","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@tanstack/vue-query';\nimport { BeanBase, deepExtend } from 'zova';\nimport { Service } from 'zova-module-a-bean';\nexport let ServiceStorage = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ServiceStorage extends BeanBase {\n constructor(...args) {\n super(...args);\n this._queryClient = void 0;\n }\n async moduleLoaded() {\n // options\n const options = deepExtend({}, this.scope.config.queryClientConfig.defaultOptions);\n if (process.env.SERVER) {\n options.queries ??= {};\n options.queries.gcTime = Infinity;\n }\n // queryCache\n const queryCache = new QueryCache();\n // queryClient\n const queryClient = this._queryClient = new QueryClient({\n defaultOptions: options,\n queryCache\n });\n // use plugin\n const vueQueryPluginOptions = {\n queryClient\n };\n this.app.vue.use(VueQueryPlugin, vueQueryPluginOptions);\n }\n async appInitialize() {\n // onRendered\n if (process.env.SERVER) {\n this.ctx.meta.$ssr.context.onRendered(err => {\n if (!err) {\n this.ctx.meta.$ssr.stateDefer.query = dehydrate(this._queryClient, {\n shouldDehydrateMutation: () => {\n return false;\n }\n });\n }\n this._queryClient?.clear();\n });\n }\n // client\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n hydrate(this._queryClient, this.ctx.meta.$ssr.stateDefer.query);\n }\n }\n}) || _class) || _class);","import { defaultShouldDehydrateQuery } from '@tanstack/vue-query';\nconst defaultOptions = {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: true,\n gcTime: 1000 * 60 * 5\n },\n dehydrate: {\n shouldDehydrateQuery(query) {\n if (query.meta?.ssr?.dehydrate === false) return false;\n // mem query return true, because mem persister is false\n if (typeof query.meta?.persister === 'object' && query.meta?.persister?.sync) return false;\n return defaultShouldDehydrateQuery(query);\n },\n shouldDehydrateMutation(_mutation) {\n return false;\n }\n }\n};\nexport const config = _sys => {\n return {\n persister: {\n maxAge: {\n cookie: undefined,\n // undefined: session cookie\n local: Infinity,\n db: 1000 * 60 * 60 * 24 // 24 hours\n },\n cookie: {\n options: {}\n },\n refetchOnRestore: true\n },\n query: {\n staleTime: {\n async: 0,\n ssr: Infinity\n }\n },\n queryClientConfig: {\n defaultOptions\n }\n };\n};","import { useQueryClient } from '@tanstack/vue-query';\nimport { markRaw } from 'vue';\nimport { BeanSimple } from 'zova';\nimport { ServiceStorage } from './service/storage.js';\nexport class Monkey extends BeanSimple {\n constructor(moduleSelf) {\n super();\n this._moduleSelf = void 0;\n this._storage = void 0;\n this._moduleSelf = moduleSelf;\n }\n async getStorage() {\n if (!this._storage) {\n this._storage = await this.bean._newBean(ServiceStorage, false);\n }\n return this._storage;\n }\n async appInitialize() {\n const storage = await this.getStorage();\n await storage.appInitialize();\n }\n async moduleLoading(_module) {}\n async moduleLoaded(module) {\n // self\n if (this._moduleSelf === module) {\n const storage = await this.getStorage();\n await storage.moduleLoaded();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$queryClient', {\n enumerable: false,\n configurable: true,\n get() {\n return markRaw(useQueryClient());\n }\n });\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** bean: begin */\nexport * from '../bean/bean.modelBase.js';\nimport 'zova';\n/** bean: end */\n/** bean: begin */\n\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/storage.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceStorage } from '../service/storage.js';\nimport 'zova';\n/** service: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAModel = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAModel extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { createBeanDecorator } from 'zova';\nexport function Model(options) {\n return createBeanDecorator('model', 'ctx', true, options);\n}","export async function $QueryAutoLoad(fn) {\n return _QueryAutoLoadInner(fn);\n}\nexport async function $QueriesAutoLoad(fn1, fn2, fn3, fn4, fn5, ...fns) {\n let promises = [_QueryAutoLoadInner(fn1), _QueryAutoLoadInner(fn2), _QueryAutoLoadInner(fn3), _QueryAutoLoadInner(fn4), _QueryAutoLoadInner(fn5)];\n if (fns.length > 0) {\n promises = promises.concat(fns.map(fn => _QueryAutoLoadInner(fn)));\n }\n return await Promise.all(promises);\n}\nasync function _QueryAutoLoadInner(fn) {\n if (!fn) return;\n const query = fn();\n if (query && query.data === undefined) {\n await query.suspense();\n }\n return query;\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/types/query.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.ts","../src/bean/bean.model/bean.model.last.ts","../src/bean/bean.model/bean.model.persister.ts","../src/bean/bean.model/bean.model.local.ts","../src/bean/bean.model/bean.model.cookie.ts","../src/bean/bean.model/bean.model.query.ts","../src/bean/bean.model/bean.model.useQuery.ts","../src/bean/bean.model/bean.model.useState.ts","../src/bean/bean.model/bean.model.useStateGeneral.ts","../src/bean/bean.model/bean.model.useMutation.ts","../src/bean/bean.model/bean.model.first.ts","../src/bean/bean.modelBase.ts","../src/service/storage.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts","../src/lib/model.ts","../src/lib/utils.ts"],"sourcesContent":["import 'zova';\nexport function resolveStaleTime(staleTime, query) {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime;\n}\nexport function resolveMaxAgeTime(maxAge, query) {\n return typeof maxAge === 'function' ? maxAge(query) : maxAge;\n}","export const __ThisModule__ = 'a-model';\nexport { ScopeModuleAModel as ScopeModule } from './index.js';","import { BeanSimple } from 'zova';\nimport { __ThisModule__ } from '../.metadata/this.js';\nimport { resolveMaxAgeTime } from '../types/index.js';\nexport class CookieWrapper extends BeanSimple {\n constructor(...args) {\n super(...args);\n this.options = void 0;\n this.query = void 0;\n }\n __init__(options, query) {\n this.options = options;\n this.query = query;\n }\n getItem(key) {\n return this.app.meta.cookie.getItem(key);\n }\n setItem(key, value) {\n const configScope = this.bean.scope(__ThisModule__).config;\n const opts = {\n ...configScope.persister.cookie.options\n };\n let maxAge = resolveMaxAgeTime(this.options.maxAge, this.query);\n if (maxAge !== undefined) {\n if (maxAge === Infinity) maxAge = 1000 * 60 * 60 * 24 * 365;\n opts.expires = new Date(Date.now() + maxAge);\n }\n this.app.meta.cookie.setItem(key, value, opts);\n }\n removeItem(key) {\n this.app.meta.cookie.removeItem(key);\n }\n}","import { BeanBase, cast } from 'zova';\nimport { __ThisModule__ } from '../../.metadata/this.js';\nexport class BeanModelLast extends BeanBase {\n constructor(selector) {\n super();\n this.selector = void 0;\n if (this.$onionOptions?.enableSelector) {\n this.selector = selector ?? '';\n }\n }\n async __init__(_selector) {\n // do nothing\n }\n get $onionOptions() {\n return super.$onionOptions;\n }\n get self() {\n return cast(this);\n }\n get scopeSelf() {\n return this.bean.scope(__ThisModule__);\n }\n}","import { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';\nimport localforage from 'localforage';\nimport { SymbolBeanFullName } from 'zova';\nimport { CookieWrapper } from '../../common/cookieWrapper.js';\nimport { resolveMaxAgeTime } from '../../types/index.js';\nimport { BeanModelLast } from './bean.model.last.js';\nexport class BeanModelPersister extends BeanModelLast {\n _persisterLoad_inner(storage, storageKey, storedData, query, options) {\n if (!storedData) return undefined;\n const persistedQuery = options.deserialize ? options.deserialize(storedData, options.deserializeDefault) : options.deserializeDefault(storedData);\n if (persistedQuery.state.dataUpdatedAt) {\n const queryAge = Date.now() - persistedQuery.state.dataUpdatedAt;\n const expired = queryAge > (resolveMaxAgeTime(options.maxAge, query) ?? Infinity);\n const busted = persistedQuery.buster !== options.buster;\n if (expired || busted) {\n storage.removeItem(storageKey);\n } else {\n // Set proper updatedAt, since resolving in the first pass overrides those values\n query.setState({\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt\n });\n return persistedQuery.state.data;\n }\n } else {\n storage.removeItem(storageKey);\n }\n }\n $persisterLoad(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return undefined;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return undefined;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return undefined;\n const storageKey = this._getPersisterStorageKey(options, query);\n try {\n const storedData = storage.getItem(storageKey);\n if (options.sync) {\n return this._persisterLoad_inner(storage, storageKey, storedData, query, options);\n } else {\n return storedData.then(storedData => {\n return this._persisterLoad_inner(storage, storageKey, storedData, query, options);\n });\n }\n } catch (err) {\n if (process.env.DEV) {\n console.error(err);\n console.warn('Encountered an error attempting to restore query cache from persisted location.');\n }\n storage.removeItem(storageKey);\n }\n }\n $persisterSave(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return;\n const storageKey = this._getPersisterStorageKey(options, query);\n const params = {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster: options.buster\n };\n const data = options.serialize ? options.serialize(params, options.serializeDefault) : options.serializeDefault(params);\n if (options.sync === true) {\n storage.setItem(storageKey, data);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.setItem(storageKey, data);\n }, 0);\n }\n }\n $persisterRemove(queryKey) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) return;\n const options = this._adjustPersisterOptions(query.meta?.persister);\n if (!options) return;\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return;\n const storageKey = this._getPersisterStorageKey(options, query);\n if (options.sync === true) {\n storage.removeItem(storageKey);\n } else {\n // Persist if we have storage defined, we use timeout to get proper state to be persisted\n setTimeout(() => {\n storage.removeItem(storageKey);\n }, 0);\n }\n }\n _createPersister(options) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n return experimental_createQueryPersister({\n storage: this._getPersisterStorage(options),\n maxAge: options.maxAge,\n refetchOnRestore: options.refetchOnRestore,\n prefix: options.prefix,\n buster: options.buster\n }).persisterFn;\n }\n _adjustPersisterOptions(options) {\n if (options === false) return undefined;\n if (options === undefined || options === true) {\n options = {};\n } else {\n options = {\n ...options\n };\n }\n options.storage = options.storage ?? (options.sync ? 'local' : 'db');\n options.maxAge = options.maxAge ?? this.scopeSelf.config.persister.maxAge[options.storage];\n options.refetchOnRestore = options.refetchOnRestore ?? this.scopeSelf.config.persister.refetchOnRestore;\n options.prefix = options.prefix ?? this._getPersisterPrefix();\n options.buster = options.buster ?? this._getPersisterBuster();\n options.serializeDefault = options.serializeDefault ?? JSON.stringify;\n options.deserializeDefault = options.deserializeDefault ?? JSON.parse;\n return options;\n }\n _getPersisterStorageKey(options, query) {\n if (options.storageKeySimplify) return String(query.queryKey[query.queryKey.length - 1]);\n return `${options.prefix}-${query.queryHash}`;\n }\n _getPersisterStorage(options, query) {\n options = this._adjustPersisterOptions(options);\n if (!options) return undefined;\n // cookie\n if (options.storage === 'cookie') return this.bean._newBeanSimple(CookieWrapper, false, options, query);\n // check server\n if (process.env.SERVER) return undefined;\n // local\n if (options.storage === 'local') return localStorage;\n // db\n if (options.storage === 'db') return localforage;\n }\n _getPersisterPrefix() {\n return `${this.sys.env.APP_NAME}-query`;\n }\n _getPersisterBuster() {\n return this.sys.env.APP_VERSION;\n }\n _forceQueryKeyPrefix(queryKey) {\n if (!queryKey) queryKey = [];\n if (!this._prefixIsBeanFullName(queryKey[0])) {\n const prefixes = [this[SymbolBeanFullName]];\n if (this.$onionOptions?.enableSelector) {\n prefixes.push(this.selector);\n }\n queryKey = prefixes.concat(queryKey);\n }\n return queryKey;\n }\n _prefixIsBeanFullName(prefix) {\n return prefix === this[SymbolBeanFullName];\n // return (prefix && typeof prefix === 'string' && prefix.split('.').length === 3);\n }\n}","import { BeanModelPersister } from './bean.model.persister.js';\nexport class BeanModelLocal extends BeanModelPersister {\n $serializeLocal(obj) {\n return JSON.stringify(obj?.state?.data);\n }\n $deserializeLocal(value) {\n return {\n state: {\n data: value ? JSON.parse(value) : undefined,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n}","import { BeanModelLocal } from './bean.model.local.js';\nexport class BeanModelCookie extends BeanModelLocal {\n $serializeCookie(obj) {\n return String(obj?.state?.data ?? '');\n }\n $deserializeCookie(value) {\n return {\n state: {\n data: value,\n dataUpdateCount: 0,\n dataUpdatedAt: Date.now(),\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: 'success',\n fetchStatus: 'idle'\n },\n queryKey: undefined,\n queryHash: undefined,\n buster: this._getPersisterBuster()\n };\n }\n _cookieCoerce(value, cookieType) {\n if (value === undefined || value === '') return undefined; // string of '' means should delete the cookie\n if (!cookieType || cookieType === 'auto') {\n return value === 'true' ? true : value === 'false' ? false : value;\n } else if (cookieType === 'boolean') {\n return value === 'true' ? true : value === 'false' ? false : Boolean(Number(value));\n } else if (cookieType === 'number') {\n return Number(value);\n } else if (cookieType === 'date') {\n return new Date(value);\n } else if (cookieType === 'string') {\n return value;\n }\n return value;\n }\n}","import localforage from 'localforage';\nimport { cast } from 'zova';\nimport { BeanModelCookie } from './bean.model.cookie.js';\nexport class BeanModelQuery extends BeanModelCookie {\n $setQueryData(queryKey, updater, persisterSave, options) {\n queryKey = this._forceQueryKeyPrefix(queryKey);\n const data = this.$queryClient.setQueryData(queryKey, updater, options);\n if (data === undefined) {\n if (persisterSave) {\n this.$persisterRemove(queryKey);\n }\n this.$setQueryDataDirect(queryKey, data);\n } else {\n if (persisterSave) {\n this.$persisterSave(queryKey);\n }\n }\n return data;\n }\n $queryFind(filters) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.getQueryCache().find(filters);\n }\n $invalidateQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.invalidateQueries(filters, options);\n }\n $refetchQueries(filters, options) {\n filters = this.$normalizeFilters(filters);\n return this.$queryClient.refetchQueries(filters, options);\n }\n $setQueryDataDirect(queryKey, value) {\n const query = this.$queryFind({\n queryKey,\n exact: true\n });\n query?.setData(value);\n }\n async $clear() {\n const queries = this.$queryClient.getQueryCache().getAll();\n for (const query of queries) {\n query?.setData(undefined);\n }\n // remove all db cache\n await localforage.clear();\n }\n $normalizeFilters(filters) {\n if (!filters) filters = {};\n const queryKey = this._forceQueryKeyPrefix(cast(filters).queryKey);\n return {\n ...filters,\n queryKey\n };\n }\n}","import { checkErrorJwtExpired } from '@cabloy/utils';\nimport { useQuery } from '@tanstack/vue-query';\nimport { cast } from 'zova';\nimport { resolveStaleTime } from '../../types/index.js';\nimport { BeanModelQuery } from './bean.model.query.js';\nexport class BeanModelUseQuery extends BeanModelQuery {\n $useQuery(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const persister = this._createPersister(options.meta?.persister);\n const optionsDefault = {};\n if (!cast(options).meta?.disableErrorEffect) {\n optionsDefault.throwOnError = (error, query) => {\n let errorInfo = cast(options).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, query);\n }\n if (!error.message.includes('useQuery:') && !checkErrorJwtExpired(error)) {\n error.message = `useQuery: [${queryKey.join(', ')}]: ${error.message}`;\n }\n this.$errorHandler(error, errorInfo ?? 'useQuery');\n return false;\n };\n }\n options = Object.assign(optionsDefault, options, {\n queryKey,\n persister\n });\n // staleTime\n const sync = typeof options.meta?.persister === 'object' && options.meta?.persister?.sync;\n if (sync !== true) {\n const staleTime = options.staleTime ?? this.scopeSelf.config.query.staleTime.async;\n const queryCache = this.$queryFind({\n queryKey\n });\n const queryCacheExists = queryCache?.state.data !== undefined;\n options.staleTime = query => {\n if (!queryCacheExists) return resolveStaleTime(0, query);\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n return resolveStaleTime(this.scopeSelf.config.query.staleTime.ssr, query);\n }\n return resolveStaleTime(staleTime, query);\n };\n }\n return this.ctx.util.instanceScope(() => {\n return useQuery(options, queryClient);\n });\n }\n}","import { hashKey } from '@tanstack/vue-query';\nimport { deepExtend } from 'zova';\nimport { BeanModelUseQuery } from './bean.model.useQuery.js';\nconst SymbolUseQueries = Symbol('SymbolUseQueries');\nconst SymbolUseComputeds = Symbol('SymbolUseComputeds');\nexport class BeanModelUseState extends BeanModelUseQuery {\n constructor(...args) {\n super(...args);\n this[SymbolUseQueries] = {};\n this[SymbolUseComputeds] = {};\n }\n async $loadStateDb(dbData) {\n return await dbData;\n }\n $useStateDb(options, queryClient) {\n options = deepExtend({\n meta: {\n maxAge: this.scopeSelf.config.persister.maxAge.local\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n ssr: {\n dehydrate: false\n },\n persister: {\n storage: 'db',\n sync: false\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleAsyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n }\n $useStateLocal(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeLocal(obj);\n },\n deserializeDefault: value => {\n return this.$deserializeLocal(value);\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'local',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateCookie(options, queryClient) {\n options = deepExtend({\n meta: {\n persister: {\n serializeDefault: obj => {\n return this.$serializeCookie(obj);\n },\n deserializeDefault: value => {\n const cookieType = options.meta.persister.cookieType;\n return this.$deserializeCookie(this._cookieCoerce(value, cookieType));\n },\n storageKeySimplify: true\n }\n }\n }, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: {\n storage: 'cookie',\n sync: true\n }\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, true);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, true, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, true);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, true, value);\n // },\n // });\n }\n $useStateMem(options, queryClient) {\n options = deepExtend({}, options, {\n enabled: false,\n staleTime: Infinity,\n meta: {\n persister: false\n }\n });\n const self = this;\n return this.$customRef(() => {\n return {\n get() {\n return self._handleSyncDataGet(options, queryClient, false);\n },\n set(value) {\n self._handleSyncDataSet(options, queryClient, false, value);\n }\n };\n });\n // return useComputed({\n // get() {\n // return self._handleSyncDataGet(options, queryClient, false);\n // },\n // set(value) {\n // self._handleSyncDataSet(options, queryClient, false, value);\n // },\n // });\n }\n $useStateComputed(options) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseComputeds][queryHash]) {\n this[SymbolUseComputeds][queryHash] = this.$computed(options.queryFn, options.debugOptions);\n }\n return this[SymbolUseComputeds][queryHash];\n }\n $useStateData(options, queryClient) {\n const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);\n const queryHash = hashKey(queryKey);\n if (!this[SymbolUseQueries][queryHash]) {\n const useQuery = this.$useQuery(options, queryClient);\n this[SymbolUseQueries][queryHash] = useQuery;\n if (!options.meta?.disableSuspenseOnInit) {\n useQuery.suspense();\n }\n }\n return this[SymbolUseQueries][queryHash];\n }\n _handleAsyncDataGet(options, queryClient, persister) {\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n return this._handleAsyncDataGet_inner(options, queryClient, persister);\n }\n async _handleAsyncDataGet_inner(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (persister) {\n const data = await this.$persisterLoad(queryKey);\n if (data !== undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet(options, queryClient, persister) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n if (query.data !== undefined) return query.data;\n if (persister) {\n const data = this.$persisterLoad(queryKey);\n if (data !== undefined) {\n this.$setQueryData(queryKey, data, false);\n }\n }\n if (query.data === undefined) {\n this._handleSyncDataGet_defaultData(queryKey, options);\n }\n return query.data;\n }\n _handleSyncDataGet_defaultData(queryKey, options) {\n let defaultData = options.meta?.defaultData;\n if (typeof defaultData === 'function') {\n defaultData = defaultData();\n }\n if (defaultData !== undefined) {\n // need not persister save\n this.$setQueryData(queryKey, defaultData, false);\n }\n }\n _handleSyncDataSet(options, queryClient, persister, value) {\n const queryKey = options.queryKey;\n const query = this.$useStateData(options, queryClient);\n this.$setQueryData(queryKey, value, persister);\n return query;\n }\n}","import { BeanModelUseState } from './bean.model.useState.js';\nexport class BeanModelUseStateGeneral extends BeanModelUseState {\n $useState(stateType, options, queryClient) {\n switch (stateType) {\n case 'db':\n return this.$useStateDb(options, queryClient);\n case 'local':\n return this.$useStateLocal(options, queryClient);\n case 'cookie':\n return this.$useStateCookie(options, queryClient);\n case 'mem':\n return this.$useStateMem(options, queryClient);\n case 'data':\n return this.$useStateData(options, queryClient);\n }\n }\n}","import { hashKey, useMutation } from '@tanstack/vue-query';\nimport { cast } from 'zova';\nimport { BeanModelUseStateGeneral } from './bean.model.useStateGeneral.js';\nconst SymbolUseMutations = Symbol('SymbolUseMutations');\nexport class BeanModelUseMutation extends BeanModelUseStateGeneral {\n constructor(...args) {\n super(...args);\n this[SymbolUseMutations] = {};\n }\n $useMutation(mutationOptions, queryClient) {\n return this.ctx.util.instanceScope(() => {\n return useMutation(mutationOptions, queryClient);\n });\n }\n $useMutationData(mutationOptions, queryClient) {\n let mutationKey = cast(mutationOptions).mutationKey;\n if (!mutationKey || mutationKey.length === 0) throw new Error('should specify mutationKey');\n mutationKey = this.self._forceQueryKeyPrefix(mutationKey);\n const mutationHash = hashKey(mutationKey);\n if (!this[SymbolUseMutations][mutationHash]) {\n const optionsDefault = {};\n if (!cast(mutationOptions).meta?.disableErrorEffect) {\n optionsDefault.onError = (error, variables, context) => {\n let errorInfo = cast(mutationOptions).meta?.errorInfo;\n if (typeof errorInfo === 'function') {\n errorInfo = errorInfo(error, variables, context);\n }\n this.$errorHandler(error, errorInfo ?? 'useMutationData');\n };\n }\n mutationOptions = Object.assign(optionsDefault, mutationOptions, {\n mutationKey\n });\n this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);\n }\n return this[SymbolUseMutations][mutationHash];\n }\n}","import { BeanModelUseMutation } from './bean.model.useMutation.js';\nexport class BeanModelFirst extends BeanModelUseMutation {}","var _dec, _dec2, _dec3, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nimport { BeanModelFirst } from './bean.model/bean.model.first.js';\nexport let BeanModelBase = (_dec = Bean(), _dec2 = Virtual(), _dec3 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = _dec3(_class = class BeanModelBase extends BeanModelFirst {}) || _class) || _class) || _class);","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { dehydrate, hydrate, QueryCache, QueryClient, VueQueryPlugin } from '@tanstack/vue-query';\nimport { BeanBase, deepExtend } from 'zova';\nimport { Service } from 'zova-module-a-bean';\nexport let ServiceStorage = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ServiceStorage extends BeanBase {\n constructor(...args) {\n super(...args);\n this._queryClient = void 0;\n }\n async moduleLoaded() {\n // options\n const options = deepExtend({}, this.scope.config.queryClientConfig.defaultOptions);\n if (process.env.SERVER) {\n options.queries ??= {};\n options.queries.gcTime = Infinity;\n }\n // queryCache\n const queryCache = new QueryCache();\n // queryClient\n const queryClient = this._queryClient = new QueryClient({\n defaultOptions: options,\n queryCache\n });\n // use plugin\n const vueQueryPluginOptions = {\n queryClient\n };\n this.app.vue.use(VueQueryPlugin, vueQueryPluginOptions);\n }\n async appInitialize() {\n // onRendered\n if (process.env.SERVER) {\n this.ctx.meta.$ssr.context.onRendered(err => {\n if (!err) {\n this.ctx.meta.$ssr.stateDefer.query = dehydrate(this._queryClient, {\n shouldDehydrateMutation: () => {\n return false;\n }\n });\n }\n this._queryClient?.clear();\n });\n }\n // client\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n hydrate(this._queryClient, this.ctx.meta.$ssr.stateDefer.query);\n }\n }\n}) || _class) || _class);","import { defaultShouldDehydrateQuery } from '@tanstack/vue-query';\nconst defaultOptions = {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: true,\n gcTime: 1000 * 60 * 5\n },\n dehydrate: {\n shouldDehydrateQuery(query) {\n if (query.meta?.ssr?.dehydrate === false) return false;\n // mem query return true, because mem persister is false\n if (typeof query.meta?.persister === 'object' && query.meta?.persister?.sync) return false;\n return defaultShouldDehydrateQuery(query);\n },\n shouldDehydrateMutation(_mutation) {\n return false;\n }\n }\n};\nexport const config = _sys => {\n return {\n persister: {\n maxAge: {\n cookie: undefined,\n // undefined: session cookie\n local: Infinity,\n db: 1000 * 60 * 60 * 24 // 24 hours\n },\n cookie: {\n options: {}\n },\n refetchOnRestore: true\n },\n query: {\n staleTime: {\n async: 0,\n ssr: Infinity\n }\n },\n queryClientConfig: {\n defaultOptions\n }\n };\n};","import { useQueryClient } from '@tanstack/vue-query';\nimport { markRaw } from 'vue';\nimport { BeanSimple } from 'zova';\nimport { ServiceStorage } from './service/storage.js';\nexport class Monkey extends BeanSimple {\n constructor(moduleSelf) {\n super();\n this._moduleSelf = void 0;\n this._storage = void 0;\n this._moduleSelf = moduleSelf;\n }\n async getStorage() {\n if (!this._storage) {\n this._storage = await this.bean._newBean(ServiceStorage, false);\n }\n return this._storage;\n }\n async appInitialize() {\n const storage = await this.getStorage();\n await storage.appInitialize();\n }\n async moduleLoading(_module) {}\n async moduleLoaded(module) {\n // self\n if (this._moduleSelf === module) {\n const storage = await this.getStorage();\n await storage.moduleLoaded();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$queryClient', {\n enumerable: false,\n configurable: true,\n get() {\n return markRaw(useQueryClient());\n }\n });\n }\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** bean: begin */\nexport * from '../bean/bean.modelBase.js';\nimport 'zova';\n/** bean: end */\n/** bean: begin */\n\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/storage.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceStorage } from '../service/storage.js';\nimport 'zova';\n/** service: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAModel = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-model\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAModel extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { createBeanDecorator } from 'zova';\nexport function Model(options) {\n return createBeanDecorator('model', 'ctx', true, options);\n}","export async function $QueryEnsureLoaded(fn) {\n return _QueryEnsureLoadedInner(fn);\n}\nexport async function $QueriesEnsureLoaded(fn1, fn2, fn3, fn4, fn5, ...fns) {\n let promises = [_QueryEnsureLoadedInner(fn1), _QueryEnsureLoadedInner(fn2), _QueryEnsureLoadedInner(fn3), _QueryEnsureLoadedInner(fn4), _QueryEnsureLoadedInner(fn5)];\n if (fns.length > 0) {\n promises = promises.concat(fns.map(fn => _QueryEnsureLoadedInner(fn)));\n }\n return await Promise.all(promises);\n}\nasync function _QueryEnsureLoadedInner(fn) {\n if (!fn) return;\n const query = fn();\n if (query && query.data === undefined) {\n await query.suspense();\n }\n return query;\n}"],"mappings":"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"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DataQuery } from '../types/query.js';
|
|
2
|
-
export type
|
|
3
|
-
export declare function $
|
|
2
|
+
export type TypeQueryEnsureLoadedFn<T> = () => DataQuery<T> | undefined;
|
|
3
|
+
export declare function $QueryEnsureLoaded<T = any>(fn: TypeQueryEnsureLoadedFn<T>): Promise<{
|
|
4
4
|
data: T | undefined;
|
|
5
5
|
error: Error | null;
|
|
6
6
|
isError: true;
|
|
@@ -141,7 +141,7 @@ export declare function $QueryAutoLoad<T = any>(fn: TypeQueryAutoLoadFn<T>): Pro
|
|
|
141
141
|
promise: Promise<T | undefined>;
|
|
142
142
|
suspense: () => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
143
143
|
} | undefined>;
|
|
144
|
-
export declare function $
|
|
144
|
+
export declare function $QueriesEnsureLoaded<T1 = any, T2 = any, T3 = any, T4 = any, T5 = any>(fn1?: TypeQueryEnsureLoadedFn<T1>, fn2?: TypeQueryEnsureLoadedFn<T2>, fn3?: TypeQueryEnsureLoadedFn<T3>, fn4?: TypeQueryEnsureLoadedFn<T4>, fn5?: TypeQueryEnsureLoadedFn<T5>, ...fns: TypeQueryEnsureLoadedFn<any>[]): Promise<[
|
|
145
145
|
DataQuery<T1> | undefined,
|
|
146
146
|
DataQuery<T2> | undefined,
|
|
147
147
|
DataQuery<T3> | undefined,
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAExE,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAE/E;AAED,wBAAsB,oBAAoB,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EACzF,GAAG,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,EACjC,GAAG,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,EACjC,GAAG,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,EACjC,GAAG,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,EACjC,GAAG,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,EACjC,GAAG,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,GACrC,OAAO,CACR;IACE,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS;IACzB,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS;IACzB,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS;IACzB,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS;IACzB,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS;IACzB,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE;CACpB,CACF,CAYA"}
|
package/package.json
CHANGED
package/src/lib/utils.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { DataQuery } from '../types/query.js';
|
|
2
2
|
|
|
3
|
-
export type
|
|
3
|
+
export type TypeQueryEnsureLoadedFn<T> = () => DataQuery<T> | undefined;
|
|
4
4
|
|
|
5
|
-
export async function $
|
|
6
|
-
return
|
|
5
|
+
export async function $QueryEnsureLoaded<T = any>(fn: TypeQueryEnsureLoadedFn<T>) {
|
|
6
|
+
return _QueryEnsureLoadedInner<T>(fn);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export async function $
|
|
10
|
-
fn1?:
|
|
11
|
-
fn2?:
|
|
12
|
-
fn3?:
|
|
13
|
-
fn4?:
|
|
14
|
-
fn5?:
|
|
15
|
-
...fns:
|
|
9
|
+
export async function $QueriesEnsureLoaded<T1 = any, T2 = any, T3 = any, T4 = any, T5 = any>(
|
|
10
|
+
fn1?: TypeQueryEnsureLoadedFn<T1>,
|
|
11
|
+
fn2?: TypeQueryEnsureLoadedFn<T2>,
|
|
12
|
+
fn3?: TypeQueryEnsureLoadedFn<T3>,
|
|
13
|
+
fn4?: TypeQueryEnsureLoadedFn<T4>,
|
|
14
|
+
fn5?: TypeQueryEnsureLoadedFn<T5>,
|
|
15
|
+
...fns: TypeQueryEnsureLoadedFn<any>[]
|
|
16
16
|
): Promise<
|
|
17
17
|
[
|
|
18
18
|
DataQuery<T1> | undefined,
|
|
@@ -24,19 +24,19 @@ export async function $QueriesAutoLoad<T1 = any, T2 = any, T3 = any, T4 = any, T
|
|
|
24
24
|
]
|
|
25
25
|
> {
|
|
26
26
|
let promises: any[] = [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
_QueryEnsureLoadedInner<T1>(fn1),
|
|
28
|
+
_QueryEnsureLoadedInner<T2>(fn2),
|
|
29
|
+
_QueryEnsureLoadedInner<T3>(fn3),
|
|
30
|
+
_QueryEnsureLoadedInner<T4>(fn4),
|
|
31
|
+
_QueryEnsureLoadedInner<T5>(fn5),
|
|
32
32
|
];
|
|
33
33
|
if (fns.length > 0) {
|
|
34
|
-
promises = promises.concat(fns.map(fn =>
|
|
34
|
+
promises = promises.concat(fns.map(fn => _QueryEnsureLoadedInner(fn)));
|
|
35
35
|
}
|
|
36
36
|
return (await Promise.all(promises)) as any;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
async function
|
|
39
|
+
async function _QueryEnsureLoadedInner<T = any>(fn?: TypeQueryEnsureLoadedFn<T>) {
|
|
40
40
|
if (!fn) return;
|
|
41
41
|
const query = fn();
|
|
42
42
|
if (query && query.data === undefined) {
|