zova-module-a-model 5.1.34 → 5.1.36
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/bean/bean.model/bean.model.persister.d.ts.map +1 -1
- package/dist/bean/bean.model/bean.model.useQuery.d.ts +5 -5
- package/dist/bean/bean.model/bean.model.useQuery.d.ts.map +1 -1
- package/dist/bean/bean.model/bean.model.useState.d.ts +5 -6
- package/dist/bean/bean.model/bean.model.useState.d.ts.map +1 -1
- package/dist/bean/bean.model/bean.model.useStateGeneral.d.ts +5 -5
- package/dist/bean/bean.model/bean.model.useStateGeneral.d.ts.map +1 -1
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/queryPersister.d.ts +3 -0
- package/dist/lib/queryPersister.d.ts.map +1 -0
- package/dist/lib/queryRefetch.d.ts +6 -0
- package/dist/lib/queryRefetch.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +1 -141
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/types/query.d.ts +12 -2
- package/dist/types/query.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/.metadata/index.ts +12 -12
- package/src/bean/bean.model/bean.model.persister.ts +3 -1
- package/src/bean/bean.model/bean.model.useQuery.ts +11 -13
- package/src/bean/bean.model/bean.model.useState.ts +9 -7
- package/src/bean/bean.model/bean.model.useStateGeneral.ts +5 -12
- package/src/lib/queryPersister.ts +17 -0
- package/src/lib/queryRefetch.ts +34 -0
- package/src/types/query.ts +27 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.model.persister.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.persister.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"bean.model.persister.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.persister.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,oBAAoB;IA+B5B,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;IA4B7E,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAQjC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO;IAuBvF,OAAO,CAAC,cAAc;IAuBtB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;IAkBnC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,GAAG,GAAG;IAavE,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO;IAkBxE,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK;IAK3E,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK;IAcpF,SAAS,CAAC,mBAAmB;IAI7B,SAAS,CAAC,mBAAmB;IAI7B,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAY7D,OAAO,CAAC,qBAAqB;CAI9B"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { DefaultError, QueryClient, QueryKey,
|
|
2
|
-
import type { UnwrapNestedRefs } from 'vue';
|
|
1
|
+
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
3
2
|
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.js';
|
|
3
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.js';
|
|
4
4
|
import { BeanModelQuery } from './bean.model.query.js';
|
|
5
5
|
export declare class BeanModelUseQuery extends BeanModelQuery {
|
|
6
|
-
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient):
|
|
7
|
-
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient):
|
|
8
|
-
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient):
|
|
6
|
+
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
7
|
+
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
8
|
+
$useQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=bean.model.useQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.model.useQuery.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bean.model.useQuery.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMhG,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAIpG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,OAAO,EAAE,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC7E,WAAW,CAAC,EAAE,WAAW,GACxB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;IACzC,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,OAAO,EAAE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC3E,WAAW,CAAC,EAAE,WAAW,GACxB,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC;IAChD,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,EAC9E,WAAW,CAAC,EAAE,WAAW,GACxB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;CAyC1C"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { DefaultError, QueryClient, QueryKey,
|
|
2
|
-
import type { UnwrapNestedRefs } from 'vue';
|
|
1
|
+
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
3
2
|
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.js';
|
|
4
|
-
import type { UseQueryComputedOptions } from '../../types/query.js';
|
|
3
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType, UseQueryComputedOptions } from '../../types/query.js';
|
|
5
4
|
import { BeanModelUseQuery } from './bean.model.useQuery.js';
|
|
6
5
|
declare const SymbolUseQueries: unique symbol;
|
|
7
6
|
declare const SymbolUseComputeds: unique symbol;
|
|
@@ -22,9 +21,9 @@ export declare class BeanModelUseState extends BeanModelUseQuery {
|
|
|
22
21
|
$useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
23
22
|
$useStateMem<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
24
23
|
$useStateComputed<TDATA, TQueryKey extends QueryKey>(options: UseQueryComputedOptions<TDATA, TQueryKey>): TDATA;
|
|
25
|
-
$useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient):
|
|
26
|
-
$useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient):
|
|
27
|
-
$useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient):
|
|
24
|
+
$useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
25
|
+
$useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
26
|
+
$useStateData<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
28
27
|
private _handleAsyncDataGet;
|
|
29
28
|
private _handleAsyncDataGet_inner;
|
|
30
29
|
private _handleSyncDataGet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.model.useState.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,WAAW,EACX,QAAQ,EAER,
|
|
1
|
+
{"version":3,"file":"bean.model.useState.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { DefaultError, QueryClient, QueryKey,
|
|
2
|
-
import type { UnwrapNestedRefs } from 'vue';
|
|
1
|
+
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
3
2
|
import type { DefinedInitialQueryOptions, UndefinedInitialQueryOptions } from '../../common/types.js';
|
|
3
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.js';
|
|
4
4
|
import { BeanModelUseState } from './bean.model.useState.js';
|
|
5
5
|
export declare class BeanModelUseStateGeneral extends BeanModelUseState {
|
|
6
6
|
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'localAsync' | 'local' | 'cookie' | 'mem', options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
7
7
|
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'localAsync' | 'local' | 'cookie' | 'mem', options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
8
8
|
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'localAsync' | 'local' | 'cookie' | 'mem', options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): TData;
|
|
9
|
-
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'data', options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient):
|
|
10
|
-
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'data', options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient):
|
|
11
|
-
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'data', options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient):
|
|
9
|
+
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'data', options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
10
|
+
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'data', options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
11
|
+
$useState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(stateType: 'data', options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, queryClient?: QueryClient): ModelUseQueryReturnType<TData, TError>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=bean.model.useStateGeneral.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.model.useStateGeneral.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useStateGeneral.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bean.model.useStateGeneral.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useStateGeneral.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEhG,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,qBAAa,wBAAyB,SAAQ,iBAAiB;IAC7D,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,EACpD,OAAO,EAAE,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC7E,WAAW,CAAC,EAAE,WAAW,GACxB,KAAK;IACR,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,EACpD,OAAO,EAAE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC3E,WAAW,CAAC,EAAE,WAAW,GACxB,KAAK;IACR,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,EACpD,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,EAC9E,WAAW,CAAC,EAAE,WAAW,GACxB,KAAK;IACR,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,4BAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC7E,WAAW,CAAC,EAAE,WAAW,GACxB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;IACzC,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC3E,WAAW,CAAC,EAAE,WAAW,GACxB,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC;IAChD,SAAS,CACP,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,EAC9E,WAAW,CAAC,EAAE,WAAW,GACxB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;CAe1C"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,20 @@ import { checkErrorJwtExpired } from "@cabloy/utils";
|
|
|
5
5
|
import localforage from "localforage";
|
|
6
6
|
import { experimental_createQueryPersister } from "@tanstack/query-persist-client-core";
|
|
7
7
|
import { markRaw } from "vue";
|
|
8
|
+
//#region src/lib/queryRefetch.ts
|
|
9
|
+
function createQueryRefetch(refetch, getQuery) {
|
|
10
|
+
return async (refetchOptions) => {
|
|
11
|
+
const { bypassPersister, ...options } = refetchOptions ?? {};
|
|
12
|
+
if (!bypassPersister) return refetch(options);
|
|
13
|
+
const query = getQuery();
|
|
14
|
+
if (query && query.state.fetchStatus !== "idle" && query.state.data === void 0) await refetch({ cancelRefetch: false });
|
|
15
|
+
return await refetch({
|
|
16
|
+
...options,
|
|
17
|
+
meta: { bypassPersister: true }
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
8
22
|
//#region src/types/query.ts
|
|
9
23
|
function resolveStaleTime(staleTime, query) {
|
|
10
24
|
return typeof staleTime === "function" ? staleTime(query) : staleTime;
|
|
@@ -44,6 +58,14 @@ var CookieWrapper = class extends BeanSimple {
|
|
|
44
58
|
}
|
|
45
59
|
};
|
|
46
60
|
//#endregion
|
|
61
|
+
//#region src/lib/queryPersister.ts
|
|
62
|
+
function createQueryPersister(persisterFn) {
|
|
63
|
+
return (queryFn, context, query) => {
|
|
64
|
+
if (query.state.fetchMeta?.bypassPersister === true) return queryFn(context);
|
|
65
|
+
return persisterFn(queryFn, context, query);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
47
69
|
//#region src/bean/bean.model/bean.model.last.ts
|
|
48
70
|
var BeanModelLast = class extends BeanBase {
|
|
49
71
|
constructor(selector) {
|
|
@@ -161,13 +183,14 @@ var BeanModelPersister = class extends BeanModelLast {
|
|
|
161
183
|
_createPersister(options) {
|
|
162
184
|
options = this._adjustPersisterOptions(options);
|
|
163
185
|
if (!options) return void 0;
|
|
164
|
-
|
|
186
|
+
const persisterFn = experimental_createQueryPersister({
|
|
165
187
|
storage: this._getPersisterStorage(options),
|
|
166
188
|
maxAge: options.maxAge,
|
|
167
189
|
refetchOnRestore: options.refetchOnRestore,
|
|
168
190
|
prefix: options.prefix,
|
|
169
191
|
buster: options.buster
|
|
170
192
|
}).persisterFn;
|
|
193
|
+
return createQueryPersister(persisterFn);
|
|
171
194
|
}
|
|
172
195
|
_adjustPersisterOptions(options) {
|
|
173
196
|
if (options === false) return void 0;
|
|
@@ -350,7 +373,9 @@ var BeanModelUseQuery = class extends BeanModelQuery {
|
|
|
350
373
|
};
|
|
351
374
|
}
|
|
352
375
|
return this.ctx.util.instanceScope(() => {
|
|
353
|
-
|
|
376
|
+
const query = useQuery(options, queryClient);
|
|
377
|
+
query.refetch = createQueryRefetch(query.refetch, () => this.$queryFind({ queryKey }));
|
|
378
|
+
return query;
|
|
354
379
|
});
|
|
355
380
|
}
|
|
356
381
|
};
|
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 this._persisterSave(query, options);\n }\n $persisterSaveTo(queryKey, storageTarget, value) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) {\n if (process.env.DEV) {\n console.warn('Cannot save persisted query because it was not found', queryKey);\n }\n return;\n }\n const persister = query.meta?.persister && typeof query.meta.persister === 'object' ? query.meta.persister : {};\n const options = this._adjustPersisterOptions({\n ...persister,\n storage: storageTarget,\n sync: true,\n serializeDefault: obj => storageTarget === 'cookie' ? String(obj?.state?.data ?? '') : JSON.stringify(obj?.state?.data)\n });\n if (!options) return;\n this._persisterSave(query, options, value);\n }\n _persisterSave(query, options, value) {\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return;\n const storageKey = this._getPersisterStorageKey(options, query);\n const params = {\n state: value === undefined ? query.state : {\n ...query.state,\n data: value\n },\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 $ensureStateLocalAsync(state) {\n return await state;\n }\n $useStateLocalAsync(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 'localAsync':\n return this.$useStateLocalAsync(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
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/lib/queryRefetch.ts","../src/types/query.ts","../src/.metadata/this.ts","../src/common/cookieWrapper.ts","../src/lib/queryPersister.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":["export function createQueryRefetch(refetch, getQuery) {\n return async refetchOptions => {\n const {\n bypassPersister,\n ...options\n } = refetchOptions ?? {};\n if (!bypassPersister) return refetch(options);\n const query = getQuery();\n // A cold query may already be fetching before its result is returned. Query.fetch\n // deduplicates that request before applying the new fetch metadata, so wait for it\n // before issuing the marked fetch.\n if (query && query.state.fetchStatus !== 'idle' && query.state.data === undefined) {\n await refetch({\n cancelRefetch: false\n });\n }\n\n // TanStack's public RefetchOptions does not expose the internal fetch metadata\n // forwarded by the installed QueryObserver implementation.\n const refetchWithFetchOptions = refetch;\n return await refetchWithFetchOptions({\n ...options,\n meta: {\n bypassPersister: true\n }\n });\n };\n}","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}","// TanStack's FetchMeta is internal to the public QueryPersister call path.\n\nexport function createQueryPersister(persisterFn) {\n return (queryFn, context, query) => {\n if (query.state.fetchMeta?.bypassPersister === true) {\n return queryFn(context);\n }\n return persisterFn(queryFn, context, query);\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 { createQueryPersister } from '../../lib/queryPersister.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 this._persisterSave(query, options);\n }\n $persisterSaveTo(queryKey, storageTarget, value) {\n const query = this.self.$queryFind({\n queryKey\n });\n if (!query) {\n if (process.env.DEV) {\n console.warn('Cannot save persisted query because it was not found', queryKey);\n }\n return;\n }\n const persister = query.meta?.persister && typeof query.meta.persister === 'object' ? query.meta.persister : {};\n const options = this._adjustPersisterOptions({\n ...persister,\n storage: storageTarget,\n sync: true,\n serializeDefault: obj => storageTarget === 'cookie' ? String(obj?.state?.data ?? '') : JSON.stringify(obj?.state?.data)\n });\n if (!options) return;\n this._persisterSave(query, options, value);\n }\n _persisterSave(query, options, value) {\n const storage = this._getPersisterStorage(options, query);\n if (!storage) return;\n const storageKey = this._getPersisterStorageKey(options, query);\n const params = {\n state: value === undefined ? query.state : {\n ...query.state,\n data: value\n },\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 const persisterFn = 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 return createQueryPersister(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 { createQueryRefetch } from '../../lib/queryRefetch.js';\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 const query = useQuery(options, queryClient);\n query.refetch = createQueryRefetch(query.refetch, () => this.$queryFind({\n queryKey\n }));\n return query;\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 $ensureStateLocalAsync(state) {\n return await state;\n }\n $useStateLocalAsync(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 'localAsync':\n return this.$useStateLocalAsync(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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryPersister.d.ts","sourceRoot":"","sources":["../../src/lib/queryPersister.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3D,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,SAAS,SAAS,SAAS,OAAO,EAAE,EAC1E,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,GACxC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CAO9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Query, RefetchOptions } from '@tanstack/query-core';
|
|
2
|
+
import type { QueryRefetchOptions } from '../types/query.js';
|
|
3
|
+
type QueryRefetch<TResult> = (options?: RefetchOptions) => Promise<TResult>;
|
|
4
|
+
export declare function createQueryRefetch<TResult>(refetch: QueryRefetch<TResult>, getQuery: () => Query | undefined): (options?: QueryRefetchOptions) => Promise<TResult>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=queryRefetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryRefetch.d.ts","sourceRoot":"","sources":["../../src/lib/queryRefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,KAAK,YAAY,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAK5E,wBAAgB,kBAAkB,CAAC,OAAO,EACxC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAC9B,QAAQ,EAAE,MAAM,KAAK,GAAG,SAAS,GAChC,CAAC,OAAO,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAqBrD"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -3,147 +3,7 @@ export type TypeQueryEnsureLoadedFn<TData, TError = Error | null> = () => DataQu
|
|
|
3
3
|
export type TypeQueryIsStaleFn<TData, TError = Error | null> = (query: DataQuery<TData, TError>) => boolean;
|
|
4
4
|
export declare function $QueryGetFresh<TData = any, TError = Error | null>(fn: TypeQueryEnsureLoadedFn<TData, TError>, isStale: TypeQueryIsStaleFn<TData, TError>): TData | undefined;
|
|
5
5
|
export declare function $QueryEnsureFresh<TData = any, TError = Error | null>(fn: TypeQueryEnsureLoadedFn<TData, TError>, isStale: TypeQueryIsStaleFn<TData, TError>): Promise<TData | undefined>;
|
|
6
|
-
export declare function $QueryEnsureLoaded<T = any>(fn: TypeQueryEnsureLoadedFn<T>): Promise<
|
|
7
|
-
data: T | undefined;
|
|
8
|
-
error: Error | null;
|
|
9
|
-
isError: true;
|
|
10
|
-
isPending: false;
|
|
11
|
-
isLoading: false;
|
|
12
|
-
isLoadingError: false;
|
|
13
|
-
isRefetchError: true;
|
|
14
|
-
isSuccess: false;
|
|
15
|
-
isPlaceholderData: false;
|
|
16
|
-
status: "error";
|
|
17
|
-
dataUpdatedAt: number;
|
|
18
|
-
errorUpdatedAt: number;
|
|
19
|
-
failureCount: number;
|
|
20
|
-
failureReason: Error | null;
|
|
21
|
-
errorUpdateCount: number;
|
|
22
|
-
isFetched: boolean;
|
|
23
|
-
isFetchedAfterMount: boolean;
|
|
24
|
-
isFetching: boolean;
|
|
25
|
-
isInitialLoading: boolean;
|
|
26
|
-
isPaused: boolean;
|
|
27
|
-
isRefetching: boolean;
|
|
28
|
-
isStale: boolean;
|
|
29
|
-
isEnabled: boolean;
|
|
30
|
-
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
31
|
-
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
32
|
-
promise: Promise<T | undefined>;
|
|
33
|
-
suspense: () => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
34
|
-
} | {
|
|
35
|
-
data: T | undefined;
|
|
36
|
-
error: null;
|
|
37
|
-
isError: false;
|
|
38
|
-
isPending: false;
|
|
39
|
-
isLoading: false;
|
|
40
|
-
isLoadingError: false;
|
|
41
|
-
isRefetchError: false;
|
|
42
|
-
isSuccess: true;
|
|
43
|
-
isPlaceholderData: false;
|
|
44
|
-
status: "success";
|
|
45
|
-
dataUpdatedAt: number;
|
|
46
|
-
errorUpdatedAt: number;
|
|
47
|
-
failureCount: number;
|
|
48
|
-
failureReason: Error | null;
|
|
49
|
-
errorUpdateCount: number;
|
|
50
|
-
isFetched: boolean;
|
|
51
|
-
isFetchedAfterMount: boolean;
|
|
52
|
-
isFetching: boolean;
|
|
53
|
-
isInitialLoading: boolean;
|
|
54
|
-
isPaused: boolean;
|
|
55
|
-
isRefetching: boolean;
|
|
56
|
-
isStale: boolean;
|
|
57
|
-
isEnabled: boolean;
|
|
58
|
-
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
59
|
-
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
60
|
-
promise: Promise<T | undefined>;
|
|
61
|
-
suspense: () => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
62
|
-
} | {
|
|
63
|
-
data: undefined;
|
|
64
|
-
error: Error | null;
|
|
65
|
-
isError: true;
|
|
66
|
-
isPending: false;
|
|
67
|
-
isLoading: false;
|
|
68
|
-
isLoadingError: true;
|
|
69
|
-
isRefetchError: false;
|
|
70
|
-
isSuccess: false;
|
|
71
|
-
isPlaceholderData: false;
|
|
72
|
-
status: "error";
|
|
73
|
-
dataUpdatedAt: number;
|
|
74
|
-
errorUpdatedAt: number;
|
|
75
|
-
failureCount: number;
|
|
76
|
-
failureReason: Error | null;
|
|
77
|
-
errorUpdateCount: number;
|
|
78
|
-
isFetched: boolean;
|
|
79
|
-
isFetchedAfterMount: boolean;
|
|
80
|
-
isFetching: boolean;
|
|
81
|
-
isInitialLoading: boolean;
|
|
82
|
-
isPaused: boolean;
|
|
83
|
-
isRefetching: boolean;
|
|
84
|
-
isStale: boolean;
|
|
85
|
-
isEnabled: boolean;
|
|
86
|
-
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
87
|
-
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
88
|
-
promise: Promise<T | undefined>;
|
|
89
|
-
suspense: () => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
90
|
-
} | {
|
|
91
|
-
data: undefined;
|
|
92
|
-
error: null;
|
|
93
|
-
isError: false;
|
|
94
|
-
isPending: true;
|
|
95
|
-
isLoadingError: false;
|
|
96
|
-
isRefetchError: false;
|
|
97
|
-
isSuccess: false;
|
|
98
|
-
isPlaceholderData: false;
|
|
99
|
-
status: "pending";
|
|
100
|
-
dataUpdatedAt: number;
|
|
101
|
-
errorUpdatedAt: number;
|
|
102
|
-
failureCount: number;
|
|
103
|
-
failureReason: Error | null;
|
|
104
|
-
errorUpdateCount: number;
|
|
105
|
-
isFetched: boolean;
|
|
106
|
-
isFetchedAfterMount: boolean;
|
|
107
|
-
isFetching: boolean;
|
|
108
|
-
isLoading: boolean;
|
|
109
|
-
isInitialLoading: boolean;
|
|
110
|
-
isPaused: boolean;
|
|
111
|
-
isRefetching: boolean;
|
|
112
|
-
isStale: boolean;
|
|
113
|
-
isEnabled: boolean;
|
|
114
|
-
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
115
|
-
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
116
|
-
promise: Promise<T | undefined>;
|
|
117
|
-
suspense: () => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
118
|
-
} | {
|
|
119
|
-
data: T | undefined;
|
|
120
|
-
isError: false;
|
|
121
|
-
error: null;
|
|
122
|
-
isPending: false;
|
|
123
|
-
isLoading: false;
|
|
124
|
-
isLoadingError: false;
|
|
125
|
-
isRefetchError: false;
|
|
126
|
-
isSuccess: true;
|
|
127
|
-
isPlaceholderData: true;
|
|
128
|
-
status: "success";
|
|
129
|
-
dataUpdatedAt: number;
|
|
130
|
-
errorUpdatedAt: number;
|
|
131
|
-
failureCount: number;
|
|
132
|
-
failureReason: Error | null;
|
|
133
|
-
errorUpdateCount: number;
|
|
134
|
-
isFetched: boolean;
|
|
135
|
-
isFetchedAfterMount: boolean;
|
|
136
|
-
isFetching: boolean;
|
|
137
|
-
isInitialLoading: boolean;
|
|
138
|
-
isPaused: boolean;
|
|
139
|
-
isRefetching: boolean;
|
|
140
|
-
isStale: boolean;
|
|
141
|
-
isEnabled: boolean;
|
|
142
|
-
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
143
|
-
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
144
|
-
promise: Promise<T | undefined>;
|
|
145
|
-
suspense: () => Promise<import("@tanstack/query-core").QueryObserverResult<T | undefined, Error | null>>;
|
|
146
|
-
} | undefined>;
|
|
6
|
+
export declare function $QueryEnsureLoaded<T = any>(fn: TypeQueryEnsureLoadedFn<T>): Promise<DataQuery<T, Error | null> | undefined>;
|
|
147
7
|
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<[
|
|
148
8
|
DataQuery<T1> | undefined,
|
|
149
9
|
DataQuery<T2> | 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,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
|
|
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,mDAE/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/dist/types/query.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefaultError, DehydratedState, Query, QueryKey,
|
|
1
|
+
import type { DefaultError, DehydratedState, Query, QueryKey, QueryObserverResult, RefetchOptions, UseQueryDefinedReturnType as TanStackUseQueryDefinedReturnType, UseQueryReturnType as TanStackUseQueryReturnType, useMutation, useQueryClient } from '@tanstack/vue-query';
|
|
2
2
|
import type { DebuggerOptions, UnwrapNestedRefs } from 'vue';
|
|
3
3
|
import 'zova';
|
|
4
4
|
declare module 'zova' {
|
|
@@ -18,6 +18,16 @@ declare module '@tanstack/vue-query' {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
export type { UseQueryOptions } from '@tanstack/vue-query';
|
|
21
|
+
export type QueryRefetchOptions = RefetchOptions & {
|
|
22
|
+
bypassPersister?: boolean;
|
|
23
|
+
};
|
|
24
|
+
type QueryRefetch<TResult> = (options?: QueryRefetchOptions) => Promise<TResult>;
|
|
25
|
+
export type ModelUseQueryReturnType<TData, TError> = Omit<UnwrapNestedRefs<TanStackUseQueryReturnType<TData, TError>>, 'refetch'> & {
|
|
26
|
+
refetch: QueryRefetch<QueryObserverResult<TData, TError>>;
|
|
27
|
+
};
|
|
28
|
+
export type ModelUseQueryDefinedReturnType<TData, TError> = Omit<UnwrapNestedRefs<TanStackUseQueryDefinedReturnType<TData, TError>>, 'refetch'> & {
|
|
29
|
+
refetch: QueryRefetch<QueryObserverResult<TData, TError>>;
|
|
30
|
+
};
|
|
21
31
|
export interface MyQueryMetaBase extends Record<string, unknown> {
|
|
22
32
|
defaultData?: (() => any) | any;
|
|
23
33
|
ssr?: QueryMetaSSR;
|
|
@@ -68,7 +78,7 @@ export interface QueryMetaPersister {
|
|
|
68
78
|
cookieType?: QueryMetaPersisterCookieType;
|
|
69
79
|
refetchOnRestore?: boolean | 'always';
|
|
70
80
|
}
|
|
71
|
-
export type DataQuery<TData, TError = Error | null> =
|
|
81
|
+
export type DataQuery<TData, TError = Error | null> = ModelUseQueryReturnType<TData | undefined, TError>;
|
|
72
82
|
export type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<ReturnType<typeof useMutation<TData, DefaultError, TVariables, TContext>>>;
|
|
73
83
|
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
84
|
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":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,KAAK,EACL,QAAQ,EACR,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/.metadata/index.ts
CHANGED
|
@@ -4,11 +4,11 @@ export * from '../bean/bean.modelBase.js';
|
|
|
4
4
|
|
|
5
5
|
import 'zova';
|
|
6
6
|
declare module 'zova' {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
|
|
9
9
|
}
|
|
10
10
|
declare module 'zova-module-a-model' {
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
}
|
|
13
13
|
/** bean: end */
|
|
14
14
|
/** bean: begin */
|
|
@@ -25,15 +25,15 @@ export * from '../service/storage.js';
|
|
|
25
25
|
|
|
26
26
|
import 'zova-module-a-bean';
|
|
27
27
|
declare module 'zova-module-a-bean' {
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
export interface IServiceRecord {
|
|
30
30
|
'a-model:storage': never;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
}
|
|
35
35
|
declare module 'zova-module-a-model' {
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
export interface ServiceStorage {
|
|
38
38
|
/** @internal */
|
|
39
39
|
get scope(): ScopeModuleAModel;
|
|
@@ -42,8 +42,8 @@ declare module 'zova-module-a-model' {
|
|
|
42
42
|
export interface ServiceStorage {
|
|
43
43
|
get $beanFullName(): 'a-model.service.storage';
|
|
44
44
|
get $onionName(): 'a-model:storage';
|
|
45
|
-
|
|
46
|
-
}
|
|
45
|
+
|
|
46
|
+
}
|
|
47
47
|
}
|
|
48
48
|
/** service: end */
|
|
49
49
|
/** service: begin */
|
|
@@ -79,14 +79,14 @@ declare module 'zova' {
|
|
|
79
79
|
export interface IBeanScopeRecord {
|
|
80
80
|
'a-model': ScopeModuleAModel;
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
export interface IBeanScopeConfig {
|
|
84
84
|
'a-model': ReturnType<typeof config>;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
88
87
|
|
|
89
|
-
|
|
88
|
+
|
|
89
|
+
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
|
|
92
92
|
/** scope: end */
|
|
@@ -7,6 +7,7 @@ import { SymbolBeanFullName } from 'zova';
|
|
|
7
7
|
import type { QueryMetaPersister } from '../../types/index.js';
|
|
8
8
|
|
|
9
9
|
import { CookieWrapper } from '../../common/cookieWrapper.js';
|
|
10
|
+
import { createQueryPersister } from '../../lib/queryPersister.js';
|
|
10
11
|
import { resolveMaxAgeTime } from '../../types/index.js';
|
|
11
12
|
import { BeanModelLast } from './bean.model.last.js';
|
|
12
13
|
|
|
@@ -145,13 +146,14 @@ export class BeanModelPersister extends BeanModelLast {
|
|
|
145
146
|
protected _createPersister(options?: QueryMetaPersister | boolean): any {
|
|
146
147
|
options = this._adjustPersisterOptions(options);
|
|
147
148
|
if (!options) return undefined;
|
|
148
|
-
|
|
149
|
+
const persisterFn = experimental_createQueryPersister({
|
|
149
150
|
storage: this._getPersisterStorage(options) as any,
|
|
150
151
|
maxAge: options.maxAge as number,
|
|
151
152
|
refetchOnRestore: options.refetchOnRestore,
|
|
152
153
|
prefix: options.prefix,
|
|
153
154
|
buster: options.buster,
|
|
154
155
|
}).persisterFn;
|
|
156
|
+
return createQueryPersister(persisterFn);
|
|
155
157
|
}
|
|
156
158
|
|
|
157
159
|
protected _adjustPersisterOptions(options?: QueryMetaPersister | boolean) {
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
DefaultError,
|
|
3
|
-
QueryClient,
|
|
4
|
-
QueryKey,
|
|
5
|
-
UseQueryDefinedReturnType,
|
|
6
|
-
UseQueryOptions,
|
|
7
|
-
UseQueryReturnType,
|
|
8
|
-
} from '@tanstack/vue-query';
|
|
9
|
-
import type { UnwrapNestedRefs } from 'vue';
|
|
1
|
+
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
10
2
|
|
|
11
3
|
import { checkErrorJwtExpired } from '@cabloy/utils';
|
|
12
4
|
import { useQuery } from '@tanstack/vue-query';
|
|
@@ -16,7 +8,9 @@ import type {
|
|
|
16
8
|
DefinedInitialQueryOptions,
|
|
17
9
|
UndefinedInitialQueryOptions,
|
|
18
10
|
} from '../../common/types.js';
|
|
11
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.js';
|
|
19
12
|
|
|
13
|
+
import { createQueryRefetch } from '../../lib/queryRefetch.js';
|
|
20
14
|
import { resolveStaleTime } from '../../types/index.js';
|
|
21
15
|
import { BeanModelQuery } from './bean.model.query.js';
|
|
22
16
|
|
|
@@ -29,7 +23,7 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
29
23
|
>(
|
|
30
24
|
options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
31
25
|
queryClient?: QueryClient,
|
|
32
|
-
):
|
|
26
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
33
27
|
$useQuery<
|
|
34
28
|
TQueryFnData = unknown,
|
|
35
29
|
TError = DefaultError,
|
|
@@ -38,7 +32,7 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
38
32
|
>(
|
|
39
33
|
options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
40
34
|
queryClient?: QueryClient,
|
|
41
|
-
):
|
|
35
|
+
): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
42
36
|
$useQuery<
|
|
43
37
|
TQueryFnData = unknown,
|
|
44
38
|
TError = DefaultError,
|
|
@@ -47,7 +41,7 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
47
41
|
>(
|
|
48
42
|
options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
|
|
49
43
|
queryClient?: QueryClient,
|
|
50
|
-
):
|
|
44
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
51
45
|
$useQuery(options, queryClient) {
|
|
52
46
|
const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
|
|
53
47
|
const persister = this._createPersister(options.meta?.persister);
|
|
@@ -81,7 +75,11 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
81
75
|
};
|
|
82
76
|
}
|
|
83
77
|
return this.ctx.util.instanceScope(() => {
|
|
84
|
-
|
|
78
|
+
const query = useQuery(options, queryClient) as unknown as ModelUseQueryReturnType<any, any>;
|
|
79
|
+
query.refetch = createQueryRefetch(query.refetch, () =>
|
|
80
|
+
this.$queryFind({ queryKey }),
|
|
81
|
+
) as typeof query.refetch;
|
|
82
|
+
return query;
|
|
85
83
|
});
|
|
86
84
|
}
|
|
87
85
|
}
|
|
@@ -4,11 +4,8 @@ import type {
|
|
|
4
4
|
QueryClient,
|
|
5
5
|
QueryKey,
|
|
6
6
|
QueryMeta,
|
|
7
|
-
UseQueryDefinedReturnType,
|
|
8
7
|
UseQueryOptions,
|
|
9
|
-
UseQueryReturnType,
|
|
10
8
|
} from '@tanstack/vue-query';
|
|
11
|
-
import type { UnwrapNestedRefs } from 'vue';
|
|
12
9
|
|
|
13
10
|
import { hashKey } from '@tanstack/vue-query';
|
|
14
11
|
import { deepExtend } from 'zova';
|
|
@@ -17,7 +14,12 @@ import type {
|
|
|
17
14
|
DefinedInitialQueryOptions,
|
|
18
15
|
UndefinedInitialQueryOptions,
|
|
19
16
|
} from '../../common/types.js';
|
|
20
|
-
import type {
|
|
17
|
+
import type {
|
|
18
|
+
ModelUseQueryDefinedReturnType,
|
|
19
|
+
ModelUseQueryReturnType,
|
|
20
|
+
QueryMetaPersister,
|
|
21
|
+
UseQueryComputedOptions,
|
|
22
|
+
} from '../../types/query.js';
|
|
21
23
|
|
|
22
24
|
import { BeanModelUseQuery } from './bean.model.useQuery.js';
|
|
23
25
|
|
|
@@ -311,7 +313,7 @@ export class BeanModelUseState extends BeanModelUseQuery {
|
|
|
311
313
|
>(
|
|
312
314
|
options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
313
315
|
queryClient?: QueryClient,
|
|
314
|
-
):
|
|
316
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
315
317
|
$useStateData<
|
|
316
318
|
TQueryFnData = unknown,
|
|
317
319
|
TError = DefaultError,
|
|
@@ -320,7 +322,7 @@ export class BeanModelUseState extends BeanModelUseQuery {
|
|
|
320
322
|
>(
|
|
321
323
|
options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
322
324
|
queryClient?: QueryClient,
|
|
323
|
-
):
|
|
325
|
+
): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
324
326
|
$useStateData<
|
|
325
327
|
TQueryFnData = unknown,
|
|
326
328
|
TError = DefaultError,
|
|
@@ -329,7 +331,7 @@ export class BeanModelUseState extends BeanModelUseQuery {
|
|
|
329
331
|
>(
|
|
330
332
|
options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
|
|
331
333
|
queryClient?: QueryClient,
|
|
332
|
-
):
|
|
334
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
333
335
|
$useStateData(options, queryClient) {
|
|
334
336
|
const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
|
|
335
337
|
const queryHash = hashKey(queryKey);
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
DefaultError,
|
|
3
|
-
QueryClient,
|
|
4
|
-
QueryKey,
|
|
5
|
-
UseQueryDefinedReturnType,
|
|
6
|
-
UseQueryOptions,
|
|
7
|
-
UseQueryReturnType,
|
|
8
|
-
} from '@tanstack/vue-query';
|
|
9
|
-
import type { UnwrapNestedRefs } from 'vue';
|
|
1
|
+
import type { DefaultError, QueryClient, QueryKey, UseQueryOptions } from '@tanstack/vue-query';
|
|
10
2
|
|
|
11
3
|
import type {
|
|
12
4
|
DefinedInitialQueryOptions,
|
|
13
5
|
UndefinedInitialQueryOptions,
|
|
14
6
|
} from '../../common/types.js';
|
|
7
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.js';
|
|
15
8
|
import type { StateType } from '../../types/query.js';
|
|
16
9
|
|
|
17
10
|
import { BeanModelUseState } from './bean.model.useState.js';
|
|
@@ -56,7 +49,7 @@ export class BeanModelUseStateGeneral extends BeanModelUseState {
|
|
|
56
49
|
stateType: 'data',
|
|
57
50
|
options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
58
51
|
queryClient?: QueryClient,
|
|
59
|
-
):
|
|
52
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
60
53
|
$useState<
|
|
61
54
|
TQueryFnData = unknown,
|
|
62
55
|
TError = DefaultError,
|
|
@@ -66,7 +59,7 @@ export class BeanModelUseStateGeneral extends BeanModelUseState {
|
|
|
66
59
|
stateType: 'data',
|
|
67
60
|
options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
68
61
|
queryClient?: QueryClient,
|
|
69
|
-
):
|
|
62
|
+
): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
70
63
|
$useState<
|
|
71
64
|
TQueryFnData = unknown,
|
|
72
65
|
TError = DefaultError,
|
|
@@ -76,7 +69,7 @@ export class BeanModelUseStateGeneral extends BeanModelUseState {
|
|
|
76
69
|
stateType: 'data',
|
|
77
70
|
options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
|
|
78
71
|
queryClient?: QueryClient,
|
|
79
|
-
):
|
|
72
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
80
73
|
$useState(stateType: StateType, options, queryClient) {
|
|
81
74
|
switch (stateType) {
|
|
82
75
|
case 'localAsync':
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { QueryPersister } from '@tanstack/query-core';
|
|
2
|
+
|
|
3
|
+
// TanStack's FetchMeta is internal to the public QueryPersister call path.
|
|
4
|
+
type QueryFetchMeta = {
|
|
5
|
+
bypassPersister?: boolean;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export function createQueryPersister<T, TQueryKey extends readonly unknown[]>(
|
|
9
|
+
persisterFn: QueryPersister<T, TQueryKey>,
|
|
10
|
+
): QueryPersister<T, TQueryKey> {
|
|
11
|
+
return (queryFn, context, query) => {
|
|
12
|
+
if ((query.state.fetchMeta as QueryFetchMeta | null)?.bypassPersister === true) {
|
|
13
|
+
return queryFn(context);
|
|
14
|
+
}
|
|
15
|
+
return persisterFn(queryFn, context, query);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Query, RefetchOptions } from '@tanstack/query-core';
|
|
2
|
+
|
|
3
|
+
import type { QueryRefetchOptions } from '../types/query.js';
|
|
4
|
+
|
|
5
|
+
type QueryRefetch<TResult> = (options?: RefetchOptions) => Promise<TResult>;
|
|
6
|
+
type QueryRefetchWithFetchOptions<TResult> = (
|
|
7
|
+
options?: RefetchOptions & { meta?: { bypassPersister?: boolean } },
|
|
8
|
+
) => Promise<TResult>;
|
|
9
|
+
|
|
10
|
+
export function createQueryRefetch<TResult>(
|
|
11
|
+
refetch: QueryRefetch<TResult>,
|
|
12
|
+
getQuery: () => Query | undefined,
|
|
13
|
+
): (options?: QueryRefetchOptions) => Promise<TResult> {
|
|
14
|
+
return async (refetchOptions?: QueryRefetchOptions) => {
|
|
15
|
+
const { bypassPersister, ...options } = refetchOptions ?? {};
|
|
16
|
+
if (!bypassPersister) return refetch(options);
|
|
17
|
+
|
|
18
|
+
const query = getQuery();
|
|
19
|
+
// A cold query may already be fetching before its result is returned. Query.fetch
|
|
20
|
+
// deduplicates that request before applying the new fetch metadata, so wait for it
|
|
21
|
+
// before issuing the marked fetch.
|
|
22
|
+
if (query && query.state.fetchStatus !== 'idle' && query.state.data === undefined) {
|
|
23
|
+
await refetch({ cancelRefetch: false });
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// TanStack's public RefetchOptions does not expose the internal fetch metadata
|
|
27
|
+
// forwarded by the installed QueryObserver implementation.
|
|
28
|
+
const refetchWithFetchOptions = refetch as QueryRefetchWithFetchOptions<TResult>;
|
|
29
|
+
return await refetchWithFetchOptions({
|
|
30
|
+
...options,
|
|
31
|
+
meta: { bypassPersister: true },
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
package/src/types/query.ts
CHANGED
|
@@ -3,8 +3,11 @@ import type {
|
|
|
3
3
|
DehydratedState,
|
|
4
4
|
Query,
|
|
5
5
|
QueryKey,
|
|
6
|
+
QueryObserverResult,
|
|
7
|
+
RefetchOptions,
|
|
8
|
+
UseQueryDefinedReturnType as TanStackUseQueryDefinedReturnType,
|
|
9
|
+
UseQueryReturnType as TanStackUseQueryReturnType,
|
|
6
10
|
useMutation,
|
|
7
|
-
useQuery,
|
|
8
11
|
useQueryClient,
|
|
9
12
|
} from '@tanstack/vue-query';
|
|
10
13
|
import type { DebuggerOptions, UnwrapNestedRefs } from 'vue';
|
|
@@ -32,6 +35,26 @@ declare module '@tanstack/vue-query' {
|
|
|
32
35
|
|
|
33
36
|
export type { UseQueryOptions } from '@tanstack/vue-query';
|
|
34
37
|
|
|
38
|
+
export type QueryRefetchOptions = RefetchOptions & {
|
|
39
|
+
bypassPersister?: boolean;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
type QueryRefetch<TResult> = (options?: QueryRefetchOptions) => Promise<TResult>;
|
|
43
|
+
|
|
44
|
+
export type ModelUseQueryReturnType<TData, TError> = Omit<
|
|
45
|
+
UnwrapNestedRefs<TanStackUseQueryReturnType<TData, TError>>,
|
|
46
|
+
'refetch'
|
|
47
|
+
> & {
|
|
48
|
+
refetch: QueryRefetch<QueryObserverResult<TData, TError>>;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export type ModelUseQueryDefinedReturnType<TData, TError> = Omit<
|
|
52
|
+
UnwrapNestedRefs<TanStackUseQueryDefinedReturnType<TData, TError>>,
|
|
53
|
+
'refetch'
|
|
54
|
+
> & {
|
|
55
|
+
refetch: QueryRefetch<QueryObserverResult<TData, TError>>;
|
|
56
|
+
};
|
|
57
|
+
|
|
35
58
|
export interface MyQueryMetaBase extends Record<string, unknown> {
|
|
36
59
|
defaultData?: (() => any) | any;
|
|
37
60
|
ssr?: QueryMetaSSR;
|
|
@@ -108,8 +131,9 @@ export interface QueryMetaPersister {
|
|
|
108
131
|
refetchOnRestore?: boolean | 'always';
|
|
109
132
|
}
|
|
110
133
|
|
|
111
|
-
export type DataQuery<TData, TError = Error | null> =
|
|
112
|
-
|
|
134
|
+
export type DataQuery<TData, TError = Error | null> = ModelUseQueryReturnType<
|
|
135
|
+
TData | undefined,
|
|
136
|
+
TError
|
|
113
137
|
>;
|
|
114
138
|
|
|
115
139
|
export type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<
|