zova-module-a-model 5.1.31 → 5.1.32

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 CHANGED
@@ -663,6 +663,20 @@ function Model(options) {
663
663
  }
664
664
  //#endregion
665
665
  //#region src/lib/utils.ts
666
+ function $QueryGetFresh(fn, isStale) {
667
+ const query = fn();
668
+ if (!query) return;
669
+ if (!isStale(query)) return query.data;
670
+ query.suspense();
671
+ }
672
+ async function $QueryEnsureFresh(fn, isStale) {
673
+ const query = fn();
674
+ if (!query) return;
675
+ if (!isStale(query)) return query.data;
676
+ const result = await query.suspense();
677
+ if (result.error) throw result.error;
678
+ return result.data;
679
+ }
666
680
  async function $QueryEnsureLoaded(fn) {
667
681
  return _QueryEnsureLoadedInner(fn);
668
682
  }
@@ -684,6 +698,6 @@ async function _QueryEnsureLoadedInner(fn) {
684
698
  return query;
685
699
  }
686
700
  //#endregion
687
- export { $QueriesEnsureLoaded, $QueryEnsureLoaded, BeanModelBase, Model, Monkey, ScopeModuleAModel, ServiceStorage, config, resolveMaxAgeTime, resolveStaleTime };
701
+ export { $QueriesEnsureLoaded, $QueryEnsureFresh, $QueryEnsureLoaded, $QueryGetFresh, BeanModelBase, Model, Monkey, ScopeModuleAModel, ServiceStorage, config, resolveMaxAgeTime, resolveStaleTime };
688
702
 
689
703
  //# 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 $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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"}
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 function $QueryGetFresh(fn, isStale) {\n const query = fn();\n if (!query) return;\n if (!isStale(query)) return query.data;\n void query.suspense();\n}\nexport async function $QueryEnsureFresh(fn, isStale) {\n const query = fn();\n if (!query) return;\n if (!isStale(query)) return query.data;\n const result = await query.suspense();\n if (result.error) throw result.error;\n return result.data;\n}\nexport 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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"}
@@ -1,5 +1,8 @@
1
1
  import type { DataQuery } from '../types/query.js';
2
- export type TypeQueryEnsureLoadedFn<T> = () => DataQuery<T> | undefined;
2
+ export type TypeQueryEnsureLoadedFn<TData, TError = Error | null> = () => DataQuery<TData, TError> | undefined;
3
+ export type TypeQueryIsStaleFn<TData, TError = Error | null> = (query: DataQuery<TData, TError>) => boolean;
4
+ export declare function $QueryGetFresh<TData = any, TError = Error | null>(fn: TypeQueryEnsureLoadedFn<TData, TError>, isStale: TypeQueryIsStaleFn<TData, TError>): TData | undefined;
5
+ export declare function $QueryEnsureFresh<TData = any, TError = Error | null>(fn: TypeQueryEnsureLoadedFn<TData, TError>, isStale: TypeQueryIsStaleFn<TData, TError>): Promise<TData | undefined>;
3
6
  export declare function $QueryEnsureLoaded<T = any>(fn: TypeQueryEnsureLoadedFn<T>): Promise<{
4
7
  data: T | undefined;
5
8
  error: Error | null;
@@ -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,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"}
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,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,IAAI,MAChE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GACxB,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,IAAI,CAC7D,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAC5B,OAAO,CAAC;AAEb,wBAAgB,cAAc,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,EAC/D,EAAE,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,EAC1C,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,GACzC,KAAK,GAAG,SAAS,CAKnB;AAED,wBAAsB,iBAAiB,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,EACxE,EAAE,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,EAC1C,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,GACzC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAO5B;AAED,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"}
@@ -68,7 +68,7 @@ export interface QueryMetaPersister {
68
68
  cookieType?: QueryMetaPersisterCookieType;
69
69
  refetchOnRestore?: boolean | 'always';
70
70
  }
71
- export type DataQuery<TData> = UnwrapNestedRefs<ReturnType<typeof useQuery<TData | undefined, Error | null>>>;
71
+ export type DataQuery<TData, TError = Error | null> = UnwrapNestedRefs<ReturnType<typeof useQuery<TData | undefined, TError>>>;
72
72
  export type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<ReturnType<typeof useMutation<TData, DefaultError, TVariables, TContext>>>;
73
73
  export declare function resolveStaleTime<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(staleTime: undefined | StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>, query: Query<TQueryFnData, TError, TData, TQueryKey>): StaleTime | undefined;
74
74
  export declare function resolveMaxAgeTime<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(maxAge: undefined | MaxAgeTimeFunction<TQueryFnData, TError, TData, TQueryKey>, query: Query<TQueryFnData, TError, TData, TQueryKey>): MaxAgeTime | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAE7D,OAAO,MAAM,CAAC;AAEd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,QAAQ;QACvB,YAAY,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;KACjD;CACF;AAED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAiB,oBAAoB;QACnC,KAAK,EAAE,eAAe,CAAC;KACxB;CACF;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,QAAQ;QACvB,SAAS,EAAE,WAAW,CAAC;QACvB,YAAY,EAAE,cAAc,CAAC;KAC9B;CACF;AAED,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;IAChC,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC;CACjD;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,KAAA,EAAE,SAAS,KAAA,EAAE,OAAO,KAAA,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9E,MAAM,MAAM,4BAA4B,GACpC,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,iBAAiB,CAC3B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,IACnC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC;AAEtF,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AACnC,MAAM,MAAM,kBAAkB,CAC5B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,IACnC,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;IACzF,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,GAAG,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;IACzF,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,GAAG,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACvC;AAED,MAAM,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,IAAI,gBAAgB,CACpE,UAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CACvD,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,OAAO,IAAI,gBAAgB,CACjG,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAC1E,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAChF,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GACnD,SAAS,GAAG,SAAS,CAEvB;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC9E,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GACnD,UAAU,GAAG,SAAS,CAExB;AAED,MAAM,MAAM,kBAAkB,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AAEpE,MAAM,WAAW,uBAAuB,CAAC,KAAK,EAAE,SAAS;IACvD,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-model",
3
- "version": "5.1.31",
4
- "gitHead": "f7296d0004da7e5c173bc9149d209c2e57cab1b8",
3
+ "version": "5.1.32",
4
+ "gitHead": "c11c57c30cfd0703183edbd23f203b78dc329427",
5
5
  "description": "core",
6
6
  "keywords": [
7
7
  "Zova Module"
package/src/lib/utils.ts CHANGED
@@ -1,6 +1,34 @@
1
1
  import type { DataQuery } from '../types/query.js';
2
2
 
3
- export type TypeQueryEnsureLoadedFn<T> = () => DataQuery<T> | undefined;
3
+ export type TypeQueryEnsureLoadedFn<TData, TError = Error | null> = () =>
4
+ | DataQuery<TData, TError>
5
+ | undefined;
6
+
7
+ export type TypeQueryIsStaleFn<TData, TError = Error | null> = (
8
+ query: DataQuery<TData, TError>,
9
+ ) => boolean;
10
+
11
+ export function $QueryGetFresh<TData = any, TError = Error | null>(
12
+ fn: TypeQueryEnsureLoadedFn<TData, TError>,
13
+ isStale: TypeQueryIsStaleFn<TData, TError>,
14
+ ): TData | undefined {
15
+ const query = fn();
16
+ if (!query) return;
17
+ if (!isStale(query)) return query.data;
18
+ void query.suspense();
19
+ }
20
+
21
+ export async function $QueryEnsureFresh<TData = any, TError = Error | null>(
22
+ fn: TypeQueryEnsureLoadedFn<TData, TError>,
23
+ isStale: TypeQueryIsStaleFn<TData, TError>,
24
+ ): Promise<TData | undefined> {
25
+ const query = fn();
26
+ if (!query) return;
27
+ if (!isStale(query)) return query.data;
28
+ const result = await query.suspense();
29
+ if (result.error) throw result.error;
30
+ return result.data;
31
+ }
4
32
 
5
33
  export async function $QueryEnsureLoaded<T = any>(fn: TypeQueryEnsureLoadedFn<T>) {
6
34
  return _QueryEnsureLoadedInner<T>(fn);
@@ -108,8 +108,8 @@ export interface QueryMetaPersister {
108
108
  refetchOnRestore?: boolean | 'always';
109
109
  }
110
110
 
111
- export type DataQuery<TData> = UnwrapNestedRefs<
112
- ReturnType<typeof useQuery<TData | undefined, Error | null>>
111
+ export type DataQuery<TData, TError = Error | null> = UnwrapNestedRefs<
112
+ ReturnType<typeof useQuery<TData | undefined, TError>>
113
113
  >;
114
114
 
115
115
  export type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<