zova-module-a-model 5.1.35 → 5.1.37
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.useMutation.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 +50 -28
- 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 +13 -6
- package/dist/types/query.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/bean/bean.model/bean.model.persister.ts +3 -1
- package/src/bean/bean.model/bean.model.useMutation.ts +1 -11
- package/src/bean/bean.model/bean.model.useQuery.ts +12 -30
- 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/lib/utils.ts +2 -1
- package/src/types/query.ts +29 -10
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.model.useMutation.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useMutation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAK5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,QAAA,MAAM,kBAAkB,eAA+B,CAAC;AAExD,qBAAa,oBAAqB,SAAQ,wBAAwB;IAChE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAA+B;IAE3D,YAAY,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,OAAO,EACjE,eAAe,EAAE,YAAY,CAC3B,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CACnE,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAMrF,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,OAAO,EACrE,eAAe,EAAE,YAAY,CAC3B,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CACnE,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bean.model.useMutation.d.ts","sourceRoot":"","sources":["../../../src/bean/bean.model/bean.model.useMutation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAK5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,QAAA,MAAM,kBAAkB,eAA+B,CAAC;AAExD,qBAAa,oBAAqB,SAAQ,wBAAwB;IAChE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAA+B;IAE3D,YAAY,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,OAAO,EACjE,eAAe,EAAE,YAAY,CAC3B,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CACnE,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAMrF,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,OAAO,EACrE,eAAe,EAAE,YAAY,CAC3B,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CACnE,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;CAatF"}
|
|
@@ -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;AAIhG,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;CA2B1C"}
|
|
@@ -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
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { BeanBase, BeanInfo, BeanScopeBase, BeanSimple, SymbolBeanFullName, Virtual, cast, createBeanDecorator, deepExtend } from "zova";
|
|
2
2
|
import { Bean, Scope, Service } from "zova-module-a-bean";
|
|
3
3
|
import { QueryCache, QueryClient, VueQueryPlugin, defaultShouldDehydrateQuery, dehydrate, hashKey, hydrate, useMutation, useQuery, useQueryClient } from "@tanstack/vue-query";
|
|
4
|
-
import { checkErrorJwtExpired } from "@cabloy/utils";
|
|
5
4
|
import localforage from "localforage";
|
|
6
5
|
import { experimental_createQueryPersister } from "@tanstack/query-persist-client-core";
|
|
7
6
|
import { markRaw } from "vue";
|
|
7
|
+
//#region src/lib/queryRefetch.ts
|
|
8
|
+
function createQueryRefetch(refetch, getQuery) {
|
|
9
|
+
return async (refetchOptions) => {
|
|
10
|
+
const { bypassPersister, ...options } = refetchOptions ?? {};
|
|
11
|
+
if (!bypassPersister) return refetch(options);
|
|
12
|
+
const query = getQuery();
|
|
13
|
+
if (query && query.state.fetchStatus !== "idle" && query.state.data === void 0) await refetch({ cancelRefetch: false });
|
|
14
|
+
return await refetch({
|
|
15
|
+
...options,
|
|
16
|
+
meta: { bypassPersister: true }
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
8
21
|
//#region src/types/query.ts
|
|
9
22
|
function resolveStaleTime(staleTime, query) {
|
|
10
23
|
return typeof staleTime === "function" ? staleTime(query) : staleTime;
|
|
@@ -34,7 +47,7 @@ var CookieWrapper = class extends BeanSimple {
|
|
|
34
47
|
const opts = { ...this.bean.scope(__ThisModule__).config.persister.cookie.options };
|
|
35
48
|
let maxAge = resolveMaxAgeTime(this.options.maxAge, this.query);
|
|
36
49
|
if (maxAge !== void 0) {
|
|
37
|
-
if (maxAge === Infinity) maxAge =
|
|
50
|
+
if (maxAge === Infinity) maxAge = 31536e6;
|
|
38
51
|
opts.expires = new Date(Date.now() + maxAge);
|
|
39
52
|
}
|
|
40
53
|
this.app.meta.cookie.setItem(key, value, opts);
|
|
@@ -44,6 +57,14 @@ var CookieWrapper = class extends BeanSimple {
|
|
|
44
57
|
}
|
|
45
58
|
};
|
|
46
59
|
//#endregion
|
|
60
|
+
//#region src/lib/queryPersister.ts
|
|
61
|
+
function createQueryPersister(persisterFn) {
|
|
62
|
+
return (queryFn, context, query) => {
|
|
63
|
+
if (query.state.fetchMeta?.bypassPersister === true) return queryFn(context);
|
|
64
|
+
return persisterFn(queryFn, context, query);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
47
68
|
//#region src/bean/bean.model/bean.model.last.ts
|
|
48
69
|
var BeanModelLast = class extends BeanBase {
|
|
49
70
|
constructor(selector) {
|
|
@@ -161,13 +182,14 @@ var BeanModelPersister = class extends BeanModelLast {
|
|
|
161
182
|
_createPersister(options) {
|
|
162
183
|
options = this._adjustPersisterOptions(options);
|
|
163
184
|
if (!options) return void 0;
|
|
164
|
-
|
|
185
|
+
const persisterFn = experimental_createQueryPersister({
|
|
165
186
|
storage: this._getPersisterStorage(options),
|
|
166
187
|
maxAge: options.maxAge,
|
|
167
188
|
refetchOnRestore: options.refetchOnRestore,
|
|
168
189
|
prefix: options.prefix,
|
|
169
190
|
buster: options.buster
|
|
170
191
|
}).persisterFn;
|
|
192
|
+
return createQueryPersister(persisterFn);
|
|
171
193
|
}
|
|
172
194
|
_adjustPersisterOptions(options) {
|
|
173
195
|
if (options === false) return void 0;
|
|
@@ -328,15 +350,7 @@ var BeanModelUseQuery = class extends BeanModelQuery {
|
|
|
328
350
|
$useQuery(options, queryClient) {
|
|
329
351
|
const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
|
|
330
352
|
const persister = this._createPersister(options.meta?.persister);
|
|
331
|
-
|
|
332
|
-
if (!cast(options).meta?.disableErrorEffect) optionsDefault.throwOnError = (error, query) => {
|
|
333
|
-
let errorInfo = cast(options).meta?.errorInfo;
|
|
334
|
-
if (typeof errorInfo === "function") errorInfo = errorInfo(error, query);
|
|
335
|
-
if (!error.message.includes("useQuery:") && !checkErrorJwtExpired(error)) error.message = `useQuery: [${queryKey.join(", ")}]: ${error.message}`;
|
|
336
|
-
this.$errorHandler(error, errorInfo ?? "useQuery");
|
|
337
|
-
return false;
|
|
338
|
-
};
|
|
339
|
-
options = Object.assign(optionsDefault, options, {
|
|
353
|
+
options = Object.assign({}, options, {
|
|
340
354
|
queryKey,
|
|
341
355
|
persister
|
|
342
356
|
});
|
|
@@ -350,7 +364,9 @@ var BeanModelUseQuery = class extends BeanModelQuery {
|
|
|
350
364
|
};
|
|
351
365
|
}
|
|
352
366
|
return this.ctx.util.instanceScope(() => {
|
|
353
|
-
|
|
367
|
+
const query = useQuery(options, queryClient);
|
|
368
|
+
query.refetch = createQueryRefetch(query.refetch, () => this.$queryFind({ queryKey }));
|
|
369
|
+
return query;
|
|
354
370
|
});
|
|
355
371
|
}
|
|
356
372
|
};
|
|
@@ -469,12 +485,14 @@ var BeanModelUseState = class extends BeanModelUseQuery {
|
|
|
469
485
|
});
|
|
470
486
|
}
|
|
471
487
|
$useStateComputed(options) {
|
|
472
|
-
const
|
|
488
|
+
const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
|
|
489
|
+
const queryHash = hashKey(queryKey);
|
|
473
490
|
if (!this[SymbolUseComputeds][queryHash]) this[SymbolUseComputeds][queryHash] = this.$computed(options.queryFn, options.debugOptions);
|
|
474
491
|
return this[SymbolUseComputeds][queryHash];
|
|
475
492
|
}
|
|
476
493
|
$useStateData(options, queryClient) {
|
|
477
|
-
const
|
|
494
|
+
const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
|
|
495
|
+
const queryHash = hashKey(queryKey);
|
|
478
496
|
if (!this[SymbolUseQueries][queryHash]) {
|
|
479
497
|
const useQuery = this.$useQuery(options, queryClient);
|
|
480
498
|
this[SymbolUseQueries][queryHash] = useQuery;
|
|
@@ -552,13 +570,7 @@ var BeanModelUseMutation = class extends BeanModelUseStateGeneral {
|
|
|
552
570
|
mutationKey = this.self._forceQueryKeyPrefix(mutationKey);
|
|
553
571
|
const mutationHash = hashKey(mutationKey);
|
|
554
572
|
if (!this[SymbolUseMutations][mutationHash]) {
|
|
555
|
-
|
|
556
|
-
if (!cast(mutationOptions).meta?.disableErrorEffect) optionsDefault.onError = (error, variables, context) => {
|
|
557
|
-
let errorInfo = cast(mutationOptions).meta?.errorInfo;
|
|
558
|
-
if (typeof errorInfo === "function") errorInfo = errorInfo(error, variables, context);
|
|
559
|
-
this.$errorHandler(error, errorInfo ?? "useMutationData");
|
|
560
|
-
};
|
|
561
|
-
mutationOptions = Object.assign(optionsDefault, mutationOptions, { mutationKey });
|
|
573
|
+
mutationOptions = Object.assign({}, mutationOptions, { mutationKey });
|
|
562
574
|
this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);
|
|
563
575
|
}
|
|
564
576
|
return this[SymbolUseMutations][mutationHash];
|
|
@@ -569,11 +581,16 @@ var BeanModelUseMutation = class extends BeanModelUseStateGeneral {
|
|
|
569
581
|
var BeanModelFirst = class extends BeanModelUseMutation {};
|
|
570
582
|
//#endregion
|
|
571
583
|
//#region src/bean/bean.modelBase.ts
|
|
572
|
-
var _dec$2
|
|
584
|
+
var _dec$2;
|
|
585
|
+
var _dec2$2;
|
|
586
|
+
var _dec3;
|
|
587
|
+
var _class$2;
|
|
573
588
|
var BeanModelBase = (_dec$2 = Bean(), _dec2$2 = Virtual(), _dec3 = BeanInfo({ module: "a-model" }), _dec$2(_class$2 = _dec2$2(_class$2 = _dec3(_class$2 = class BeanModelBase extends BeanModelFirst {}) || _class$2) || _class$2) || _class$2);
|
|
574
589
|
//#endregion
|
|
575
590
|
//#region src/service/storage.ts
|
|
576
|
-
var _dec$1
|
|
591
|
+
var _dec$1;
|
|
592
|
+
var _dec2$1;
|
|
593
|
+
var _class$1;
|
|
577
594
|
var ServiceStorage = (_dec$1 = Service(), _dec2$1 = BeanInfo({ module: "a-model" }), _dec$1(_class$1 = _dec2$1(_class$1 = class ServiceStorage extends BeanBase {
|
|
578
595
|
constructor(...args) {
|
|
579
596
|
super(...args);
|
|
@@ -610,7 +627,7 @@ var defaultOptions = {
|
|
|
610
627
|
refetchOnWindowFocus: false,
|
|
611
628
|
refetchOnMount: false,
|
|
612
629
|
refetchOnReconnect: true,
|
|
613
|
-
gcTime:
|
|
630
|
+
gcTime: 3e5
|
|
614
631
|
},
|
|
615
632
|
dehydrate: {
|
|
616
633
|
shouldDehydrateQuery(query) {
|
|
@@ -629,7 +646,7 @@ var config = (_sys) => {
|
|
|
629
646
|
maxAge: {
|
|
630
647
|
cookie: void 0,
|
|
631
648
|
local: Infinity,
|
|
632
|
-
db:
|
|
649
|
+
db: 864e5
|
|
633
650
|
},
|
|
634
651
|
cookie: { options: {} },
|
|
635
652
|
refetchOnRestore: true
|
|
@@ -675,7 +692,9 @@ var Monkey = class extends BeanSimple {
|
|
|
675
692
|
//#region src/.metadata/index.ts
|
|
676
693
|
/** monkey: end */
|
|
677
694
|
/** scope: begin */
|
|
678
|
-
var _dec
|
|
695
|
+
var _dec;
|
|
696
|
+
var _dec2;
|
|
697
|
+
var _class;
|
|
679
698
|
var ScopeModuleAModel = (_dec = Scope(), _dec2 = BeanInfo({ module: "a-model" }), _dec(_class = _dec2(_class = class ScopeModuleAModel extends BeanScopeBase {}) || _class) || _class);
|
|
680
699
|
/** scope: end */
|
|
681
700
|
//#endregion
|
|
@@ -716,7 +735,10 @@ async function $QueriesEnsureLoaded(fn1, fn2, fn3, fn4, fn5, ...fns) {
|
|
|
716
735
|
async function _QueryEnsureLoadedInner(fn) {
|
|
717
736
|
if (!fn) return;
|
|
718
737
|
const query = fn();
|
|
719
|
-
if (query && query.data === void 0)
|
|
738
|
+
if (query && query.data === void 0) {
|
|
739
|
+
const result = await query.suspense();
|
|
740
|
+
if (result.error) throw result.error;
|
|
741
|
+
}
|
|
720
742
|
return query;
|
|
721
743
|
}
|
|
722
744
|
//#endregion
|
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 { useQuery } from '@tanstack/vue-query';\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 options = Object.assign({}, 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 mutationOptions = Object.assign({}, 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 const result = await query.suspense();\n if (result.error) throw result.error;\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,18 +18,25 @@ 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;
|
|
24
34
|
persister?: QueryMetaPersister | boolean;
|
|
25
|
-
disableErrorEffect?: boolean;
|
|
26
35
|
disableSuspenseOnInit?: boolean;
|
|
27
36
|
}
|
|
28
37
|
export interface MyQueryMeta extends MyQueryMetaBase {
|
|
29
|
-
errorInfo?: ((error: any, query: any) => string) | string;
|
|
30
38
|
}
|
|
31
|
-
export interface MyMutationMeta extends
|
|
32
|
-
errorInfo?: ((error: any, variables: any, context: any) => string) | string;
|
|
39
|
+
export interface MyMutationMeta extends Record<string, unknown> {
|
|
33
40
|
}
|
|
34
41
|
export interface QueryMetaSSR {
|
|
35
42
|
/** default is true */
|
|
@@ -68,7 +75,7 @@ export interface QueryMetaPersister {
|
|
|
68
75
|
cookieType?: QueryMetaPersisterCookieType;
|
|
69
76
|
refetchOnRestore?: boolean | 'always';
|
|
70
77
|
}
|
|
71
|
-
export type DataQuery<TData, TError = Error | null> =
|
|
78
|
+
export type DataQuery<TData, TError = Error | null> = ModelUseQueryReturnType<TData | undefined, TError>;
|
|
72
79
|
export type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<ReturnType<typeof useMutation<TData, DefaultError, TVariables, TContext>>>;
|
|
73
80
|
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
81
|
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
|
@@ -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) {
|
|
@@ -41,17 +41,7 @@ export class BeanModelUseMutation extends BeanModelUseStateGeneral {
|
|
|
41
41
|
mutationKey = this.self._forceQueryKeyPrefix(mutationKey);
|
|
42
42
|
const mutationHash = hashKey(mutationKey);
|
|
43
43
|
if (!this[SymbolUseMutations][mutationHash]) {
|
|
44
|
-
|
|
45
|
-
if (!cast(mutationOptions).meta?.disableErrorEffect) {
|
|
46
|
-
optionsDefault.onError = (error, variables, context) => {
|
|
47
|
-
let errorInfo = cast(mutationOptions).meta?.errorInfo;
|
|
48
|
-
if (typeof errorInfo === 'function') {
|
|
49
|
-
errorInfo = errorInfo(error, variables, context);
|
|
50
|
-
}
|
|
51
|
-
this.$errorHandler(error, errorInfo ?? 'useMutationData');
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
mutationOptions = Object.assign(optionsDefault, mutationOptions, { mutationKey });
|
|
44
|
+
mutationOptions = Object.assign({}, mutationOptions, { mutationKey });
|
|
55
45
|
this[SymbolUseMutations][mutationHash] = this.$useMutation(mutationOptions, queryClient);
|
|
56
46
|
}
|
|
57
47
|
return this[SymbolUseMutations][mutationHash] as UnwrapNestedRefs<
|
|
@@ -1,22 +1,14 @@
|
|
|
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
|
-
import { checkErrorJwtExpired } from '@cabloy/utils';
|
|
12
3
|
import { useQuery } from '@tanstack/vue-query';
|
|
13
|
-
import { cast } from 'zova';
|
|
14
4
|
|
|
15
5
|
import type {
|
|
16
6
|
DefinedInitialQueryOptions,
|
|
17
7
|
UndefinedInitialQueryOptions,
|
|
18
8
|
} from '../../common/types.js';
|
|
9
|
+
import type { ModelUseQueryDefinedReturnType, ModelUseQueryReturnType } from '../../types/query.js';
|
|
19
10
|
|
|
11
|
+
import { createQueryRefetch } from '../../lib/queryRefetch.js';
|
|
20
12
|
import { resolveStaleTime } from '../../types/index.js';
|
|
21
13
|
import { BeanModelQuery } from './bean.model.query.js';
|
|
22
14
|
|
|
@@ -29,7 +21,7 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
29
21
|
>(
|
|
30
22
|
options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
31
23
|
queryClient?: QueryClient,
|
|
32
|
-
):
|
|
24
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
33
25
|
$useQuery<
|
|
34
26
|
TQueryFnData = unknown,
|
|
35
27
|
TError = DefaultError,
|
|
@@ -38,7 +30,7 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
38
30
|
>(
|
|
39
31
|
options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
40
32
|
queryClient?: QueryClient,
|
|
41
|
-
):
|
|
33
|
+
): ModelUseQueryDefinedReturnType<TData, TError>;
|
|
42
34
|
$useQuery<
|
|
43
35
|
TQueryFnData = unknown,
|
|
44
36
|
TError = DefaultError,
|
|
@@ -47,25 +39,11 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
47
39
|
>(
|
|
48
40
|
options: UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
|
|
49
41
|
queryClient?: QueryClient,
|
|
50
|
-
):
|
|
42
|
+
): ModelUseQueryReturnType<TData, TError>;
|
|
51
43
|
$useQuery(options, queryClient) {
|
|
52
44
|
const queryKey = this.self._forceQueryKeyPrefix(options.queryKey);
|
|
53
45
|
const persister = this._createPersister(options.meta?.persister);
|
|
54
|
-
|
|
55
|
-
if (!cast(options).meta?.disableErrorEffect) {
|
|
56
|
-
optionsDefault.throwOnError = (error: Error, query) => {
|
|
57
|
-
let errorInfo = cast(options).meta?.errorInfo;
|
|
58
|
-
if (typeof errorInfo === 'function') {
|
|
59
|
-
errorInfo = errorInfo(error, query);
|
|
60
|
-
}
|
|
61
|
-
if (!error.message.includes('useQuery:') && !checkErrorJwtExpired(error)) {
|
|
62
|
-
error.message = `useQuery: [${queryKey.join(', ')}]: ${error.message}`;
|
|
63
|
-
}
|
|
64
|
-
this.$errorHandler(error, errorInfo ?? 'useQuery');
|
|
65
|
-
return false;
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
options = Object.assign(optionsDefault, options, { queryKey, persister });
|
|
46
|
+
options = Object.assign({}, options, { queryKey, persister });
|
|
69
47
|
// staleTime
|
|
70
48
|
const sync = typeof options.meta?.persister === 'object' && options.meta?.persister?.sync;
|
|
71
49
|
if (sync !== true) {
|
|
@@ -81,7 +59,11 @@ export class BeanModelUseQuery extends BeanModelQuery {
|
|
|
81
59
|
};
|
|
82
60
|
}
|
|
83
61
|
return this.ctx.util.instanceScope(() => {
|
|
84
|
-
|
|
62
|
+
const query = useQuery(options, queryClient) as unknown as ModelUseQueryReturnType<any, any>;
|
|
63
|
+
query.refetch = createQueryRefetch(query.refetch, () =>
|
|
64
|
+
this.$queryFind({ queryKey }),
|
|
65
|
+
) as typeof query.refetch;
|
|
66
|
+
return query;
|
|
85
67
|
});
|
|
86
68
|
}
|
|
87
69
|
}
|
|
@@ -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/lib/utils.ts
CHANGED
|
@@ -68,7 +68,8 @@ async function _QueryEnsureLoadedInner<T = any>(fn?: TypeQueryEnsureLoadedFn<T>)
|
|
|
68
68
|
if (!fn) return;
|
|
69
69
|
const query = fn();
|
|
70
70
|
if (query && query.data === undefined) {
|
|
71
|
-
await query.suspense();
|
|
71
|
+
const result = await query.suspense();
|
|
72
|
+
if (result.error) throw result.error;
|
|
72
73
|
}
|
|
73
74
|
return query;
|
|
74
75
|
}
|
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,21 +35,36 @@ 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;
|
|
38
61
|
persister?: QueryMetaPersister | boolean;
|
|
39
|
-
disableErrorEffect?: boolean;
|
|
40
62
|
disableSuspenseOnInit?: boolean;
|
|
41
63
|
}
|
|
42
64
|
|
|
43
|
-
export interface MyQueryMeta extends MyQueryMetaBase {
|
|
44
|
-
errorInfo?: ((error, query) => string) | string;
|
|
45
|
-
}
|
|
65
|
+
export interface MyQueryMeta extends MyQueryMetaBase {}
|
|
46
66
|
|
|
47
|
-
export interface MyMutationMeta extends
|
|
48
|
-
errorInfo?: ((error, variables, context) => string) | string;
|
|
49
|
-
}
|
|
67
|
+
export interface MyMutationMeta extends Record<string, unknown> {}
|
|
50
68
|
|
|
51
69
|
export interface QueryMetaSSR {
|
|
52
70
|
/** default is true */
|
|
@@ -108,8 +126,9 @@ export interface QueryMetaPersister {
|
|
|
108
126
|
refetchOnRestore?: boolean | 'always';
|
|
109
127
|
}
|
|
110
128
|
|
|
111
|
-
export type DataQuery<TData, TError = Error | null> =
|
|
112
|
-
|
|
129
|
+
export type DataQuery<TData, TError = Error | null> = ModelUseQueryReturnType<
|
|
130
|
+
TData | undefined,
|
|
131
|
+
TError
|
|
113
132
|
>;
|
|
114
133
|
|
|
115
134
|
export type DataMutation<TData = unknown, TVariables = void, TContext = unknown> = UnwrapNestedRefs<
|