@qiaopeng/tanstack-query-plus 0.1.3 → 0.1.5
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/components/internal/ErrorBoundary.d.ts +1 -0
- package/dist/components/internal/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/internal/ErrorBoundary.js +9 -0
- package/dist/core/devtools.d.ts +4 -3
- package/dist/core/devtools.d.ts.map +1 -1
- package/dist/core/env.d.ts +1 -0
- package/dist/core/env.d.ts.map +1 -1
- package/dist/core/env.js +25 -2
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/usePrefetch.d.ts.map +1 -1
- package/dist/hooks/usePrefetch.js +27 -23
- package/dist/hooks/useQuery.d.ts +17 -1
- package/dist/hooks/useQuery.d.ts.map +1 -1
- package/dist/hooks/useQuery.js +42 -1
- package/dist/react-query/index.d.ts +2 -2
- package/dist/react-query/index.d.ts.map +1 -1
- package/dist/react-query/index.js +1 -1
- package/package.json +10 -1
|
@@ -19,6 +19,7 @@ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBo
|
|
|
19
19
|
componentDidCatch(error: Error, errorInfo: {
|
|
20
20
|
componentStack: string;
|
|
21
21
|
}): void;
|
|
22
|
+
componentDidUpdate(prevProps: ErrorBoundaryProps): void;
|
|
22
23
|
resetErrorBoundary: () => void;
|
|
23
24
|
render(): string | number | boolean | Iterable<ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/components/internal/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACpC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtE,KAAK,EAAE,kBAAkB;IAIrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAGjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;IAGrE,kBAAkB,aAGhB;IACF,MAAM;CAmBP"}
|
|
1
|
+
{"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/components/internal/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACpC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtE,KAAK,EAAE,kBAAkB;IAIrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAGjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;IAGrE,kBAAkB,CAAC,SAAS,EAAE,kBAAkB;IAShD,kBAAkB,aAGhB;IACF,MAAM;CAmBP"}
|
|
@@ -15,6 +15,15 @@ export class ErrorBoundary extends Component {
|
|
|
15
15
|
componentDidCatch(error, errorInfo) {
|
|
16
16
|
this.props.onError?.(error, errorInfo);
|
|
17
17
|
}
|
|
18
|
+
componentDidUpdate(prevProps) {
|
|
19
|
+
if (this.state.hasError && this.props.resetKeys && prevProps.resetKeys) {
|
|
20
|
+
const hasResetKeyChanged = this.props.resetKeys.length !== prevProps.resetKeys.length ||
|
|
21
|
+
this.props.resetKeys.some((key, index) => key !== prevProps.resetKeys?.[index]);
|
|
22
|
+
if (hasResetKeyChanged) {
|
|
23
|
+
this.resetErrorBoundary();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
18
27
|
render() {
|
|
19
28
|
const { hasError, error } = this.state;
|
|
20
29
|
const { children, fallback } = this.props;
|
package/dist/core/devtools.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
1
2
|
export { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
|
2
3
|
export interface DevToolsConfig {
|
|
3
4
|
initialIsOpen?: boolean;
|
|
4
5
|
position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
5
6
|
enabled?: boolean;
|
|
6
7
|
buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
7
|
-
panelProps?:
|
|
8
|
-
closeButtonProps?:
|
|
9
|
-
toggleButtonProps?:
|
|
8
|
+
panelProps?: ComponentProps<"div">;
|
|
9
|
+
closeButtonProps?: ComponentProps<"button">;
|
|
10
|
+
toggleButtonProps?: ComponentProps<"button">;
|
|
10
11
|
}
|
|
11
12
|
export declare const defaultDevToolsConfig: DevToolsConfig;
|
|
12
13
|
export declare function createDevToolsConfig(overrides?: Partial<DevToolsConfig>): DevToolsConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/core/devtools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/core/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IAC3E,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,qBAAqB,EAAE,cAInC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAKxF;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
package/dist/core/env.d.ts
CHANGED
package/dist/core/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,MAAM,SAA2B,CAAC;AAC/C,eAAO,MAAM,KAAK,SAA+D,CAAC;AAClF,eAAO,MAAM,MAAM,SAAqB,CAAC"}
|
package/dist/core/env.js
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
function getEnvironment() {
|
|
2
|
+
// Node.js / Webpack / CRA
|
|
3
|
+
if (typeof process !== "undefined" && process?.env?.NODE_ENV) {
|
|
4
|
+
return process.env.NODE_ENV;
|
|
5
|
+
}
|
|
6
|
+
// Vite / modern bundlers
|
|
7
|
+
try {
|
|
8
|
+
// @ts-expect-error import.meta.env may not exist in all environments
|
|
9
|
+
if (typeof import.meta !== "undefined" && import.meta.env) {
|
|
10
|
+
// @ts-expect-error accessing Vite-specific env
|
|
11
|
+
const env = import.meta.env;
|
|
12
|
+
if (env.MODE)
|
|
13
|
+
return env.MODE;
|
|
14
|
+
if (typeof env.PROD === "boolean")
|
|
15
|
+
return env.PROD ? "production" : "development";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// import.meta not supported
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const nodeEnv = getEnvironment();
|
|
2
24
|
export const isProd = nodeEnv === "production";
|
|
3
|
-
export const isDev = !isProd;
|
|
25
|
+
export const isDev = nodeEnv === "development" || (!isProd && nodeEnv !== "test");
|
|
26
|
+
export const isTest = nodeEnv === "test";
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { createCustomConfig, DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, defaultMutationRetryStrategy, defaultQueryRetryStrategy, DEVELOPMENT_CONFIG, ensureBestPractices, exponentialBackoff, getConfigByEnvironment, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, PRODUCTION_CONFIG, REALTIME_CONFIG, SMART_RETRY_MUTATION_CONFIG, TIME_CONSTANTS, validateConfig, validateGcTime } from "./config.js";
|
|
2
2
|
export { createDevToolsConfig, defaultDevToolsConfig, type DevToolsConfig, isDevToolsEnabled } from "./devtools.js";
|
|
3
3
|
export { ReactQueryDevtools } from "./devtools.js";
|
|
4
|
+
export { isDev, isProd, isTest } from "./env.js";
|
|
4
5
|
export { focusManager, type FocusManagerConfig, getSmartFocusManager, pauseFocusManager, resetSmartFocusManager, resumeFocusManager, setupFocusManager, SmartFocusManager } from "./focusManager.js";
|
|
5
6
|
export { areKeysEqual, containsEntity, createComplexKey, createDomainKeyFactory, createFilteredKey, createMutationKeyFactory, createPaginatedKey, createSearchKey, createSortedKey, extractEntityId, matchesKeyPattern, normalizeQueryKey, queryKeys, validateQueryKey } from "./keys.js";
|
|
6
7
|
export { createAppQueryOptions, createAppQueryOptionsWithSelect } from "./queryOptions.js";
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { createCustomConfig, DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, defaultMutationRetryStrategy, defaultQueryRetryStrategy, DEVELOPMENT_CONFIG, ensureBestPractices, exponentialBackoff, getConfigByEnvironment, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, PRODUCTION_CONFIG, REALTIME_CONFIG, SMART_RETRY_MUTATION_CONFIG, TIME_CONSTANTS, validateConfig, validateGcTime } from "./config.js";
|
|
2
2
|
export { createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from "./devtools.js";
|
|
3
3
|
export { ReactQueryDevtools } from "./devtools.js";
|
|
4
|
+
export { isDev, isProd, isTest } from "./env.js";
|
|
4
5
|
export { focusManager, getSmartFocusManager, pauseFocusManager, resetSmartFocusManager, resumeFocusManager, setupFocusManager, SmartFocusManager } from "./focusManager.js";
|
|
5
6
|
export { areKeysEqual, containsEntity, createComplexKey, createDomainKeyFactory, createFilteredKey, createMutationKeyFactory, createPaginatedKey, createSearchKey, createSortedKey, extractEntityId, matchesKeyPattern, normalizeQueryKey, queryKeys, validateQueryKey } from "./keys.js";
|
|
6
7
|
export { createAppQueryOptions, createAppQueryOptionsWithSelect } from "./queryOptions.js";
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export { useConditionalFocusRefetch, useFocusCallback, useFocusRefetch, type Use
|
|
|
3
3
|
export { createCursorPaginationOptions, createOffsetPaginationOptions, createPageNumberPaginationOptions, useEnhancedInfiniteQuery } from "./useInfiniteQuery.js";
|
|
4
4
|
export { cancelQueriesBatch, invalidateQueriesBatch, type MutationDefaultsConfig, type MutationKey, setQueryDataBatch, setupMutationDefaults, useBatchMutation, useConditionalOptimisticMutation, useListMutation, useMutation } from "./useMutation.js";
|
|
5
5
|
export { type HoverPrefetchOptions, type InViewPrefetchOptions, type PrefetchOptions, useBatchPrefetch, useConditionalPrefetch, useHoverPrefetch, useIdlePrefetch, usePeriodicPrefetch, usePredictivePrefetch, usePriorityPrefetch, useRoutePrefetch, useSmartPrefetch } from "./usePrefetch.js";
|
|
6
|
-
export { skipToken, useEnhancedQuery } from "./useQuery.js";
|
|
6
|
+
export { skipToken, useEnhancedQuery, type EnhancedQueryOptions, type EnhancedQueryResult } from "./useQuery.js";
|
|
7
7
|
export { createSuspenseInfiniteQuery, createSuspenseQuery, useEnhancedSuspenseInfiniteQuery, useEnhancedSuspenseQuery } from "./useSuspenseQuery.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,KAAK,sBAAsB,EAC3B,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,KAAK,oBAAoB,EACzB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClK,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gCAAgC,EAChC,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,KAAK,sBAAsB,EAC3B,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,KAAK,oBAAoB,EACzB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClK,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gCAAgC,EAChC,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrefetch.d.ts","sourceRoot":"","sources":["../../src/hooks/usePrefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMrE,MAAM,WAAW,eAAe;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;AAChH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAAG,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAAG,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;AASjI,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,GAAE,oBAAyB;;;;EAwBtI;AAGD,wBAAgB,gBAAgB,KAGV,KAAK,sBAAsB,QAAQ,WAAW,aAAa,CAAC,KAAK,CAAC,YAAY,eAAe,UAUlH;AAED,wBAAgB,gBAAgB,KAEV,KAAK,qBAAqB,KAAK,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,UAO/H;AAED,wBAAgB,gBAAgB;eAUA,KAAK,sBAAsB,QAAQ,WAAW,aAAa,CAAC,KAAK,CAAC,YAAY,eAAe;;;EAa5H;
|
|
1
|
+
{"version":3,"file":"usePrefetch.d.ts","sourceRoot":"","sources":["../../src/hooks/usePrefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMrE,MAAM,WAAW,eAAe;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;AAChH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAAG,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAAG,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;AASjI,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,GAAE,oBAAyB;;;;EAwBtI;AAGD,wBAAgB,gBAAgB,KAGV,KAAK,sBAAsB,QAAQ,WAAW,aAAa,CAAC,KAAK,CAAC,YAAY,eAAe,UAUlH;AAED,wBAAgB,gBAAgB,KAEV,KAAK,qBAAqB,KAAK,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,UAO/H;AAED,wBAAgB,gBAAgB;eAUA,KAAK,sBAAsB,QAAQ,WAAW,aAAa,CAAC,KAAK,CAAC,YAAY,eAAe;;;EAa5H;AAaD,wBAAgB,sBAAsB,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,QAgBvJ;AAED,wBAAgB,eAAe,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,QAwBnJ;AAED,wBAAgB,mBAAmB,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,QAkBxJ;AAED,wBAAgB,qBAAqB;gCAIY,MAAM,UAAU,MAAM;;wBAa9B,KAAK,4BAA4B,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;KAAE;;EASlJ;AAED,wBAAgB,mBAAmB;sBAII,KAAK,sBAAsB,QAAQ,WAAW,aAAa,CAAC,KAAK,CAAC,aAAY,MAAM,GAAG,QAAQ,GAAG,KAAK;;;;EAmB7I"}
|
|
@@ -100,75 +100,79 @@ export function useSmartPrefetch() {
|
|
|
100
100
|
const clearPrefetchHistory = useCallback(() => { prefetchedRef.current.clear(); }, []);
|
|
101
101
|
return { prefetch, shouldPrefetch: !isSlowNetwork(), clearPrefetchHistory };
|
|
102
102
|
}
|
|
103
|
+
function useStableQueryKey(queryKey) {
|
|
104
|
+
const keyRef = useRef(queryKey);
|
|
105
|
+
const keyStr = JSON.stringify(queryKey);
|
|
106
|
+
const prevKeyStr = useRef(keyStr);
|
|
107
|
+
if (prevKeyStr.current !== keyStr) {
|
|
108
|
+
keyRef.current = queryKey;
|
|
109
|
+
prevKeyStr.current = keyStr;
|
|
110
|
+
}
|
|
111
|
+
return keyRef.current;
|
|
112
|
+
}
|
|
103
113
|
export function useConditionalPrefetch(queryKey, queryFn, condition, options) {
|
|
104
114
|
const queryClient = useQueryClient();
|
|
105
115
|
const { staleTime = DEFAULT_STALE_TIME, delay = 0 } = options || {};
|
|
106
116
|
const queryFnRef = useRef(queryFn);
|
|
107
117
|
useEffect(() => { queryFnRef.current = queryFn; }, [queryFn]);
|
|
108
|
-
const stableQueryKey =
|
|
109
|
-
useEffect(() => { if (JSON.stringify(stableQueryKey.current) !== JSON.stringify(queryKey)) {
|
|
110
|
-
stableQueryKey.current = queryKey;
|
|
111
|
-
} }, [queryKey]);
|
|
118
|
+
const stableQueryKey = useStableQueryKey(queryKey);
|
|
112
119
|
useEffect(() => {
|
|
113
120
|
if (!condition)
|
|
114
121
|
return;
|
|
122
|
+
const currentQueryKey = stableQueryKey;
|
|
115
123
|
const timeoutId = setTimeout(() => {
|
|
116
|
-
if (isMissingOrStale(queryClient,
|
|
117
|
-
queryClient.prefetchQuery({ queryKey:
|
|
124
|
+
if (isMissingOrStale(queryClient, currentQueryKey, staleTime)) {
|
|
125
|
+
queryClient.prefetchQuery({ queryKey: currentQueryKey, queryFn: queryFnRef.current, staleTime });
|
|
118
126
|
}
|
|
119
127
|
}, delay);
|
|
120
128
|
return () => clearTimeout(timeoutId);
|
|
121
|
-
}, [condition, queryClient, staleTime, delay]);
|
|
129
|
+
}, [condition, queryClient, staleTime, delay, stableQueryKey]);
|
|
122
130
|
}
|
|
123
131
|
export function useIdlePrefetch(queryKey, queryFn, options) {
|
|
124
132
|
const queryClient = useQueryClient();
|
|
125
133
|
const { staleTime = DEFAULT_STALE_TIME, enabled = true, timeout = 1000 } = options || {};
|
|
126
134
|
const queryFnRef = useRef(queryFn);
|
|
127
135
|
useEffect(() => { queryFnRef.current = queryFn; }, [queryFn]);
|
|
128
|
-
const stableQueryKey =
|
|
129
|
-
useEffect(() => { if (JSON.stringify(stableQueryKey.current) !== JSON.stringify(queryKey)) {
|
|
130
|
-
stableQueryKey.current = queryKey;
|
|
131
|
-
} }, [queryKey]);
|
|
136
|
+
const stableQueryKey = useStableQueryKey(queryKey);
|
|
132
137
|
useEffect(() => {
|
|
133
138
|
if (!enabled)
|
|
134
139
|
return;
|
|
140
|
+
const currentQueryKey = stableQueryKey;
|
|
135
141
|
if (typeof window === "undefined" || !("requestIdleCallback" in window)) {
|
|
136
142
|
const timeoutId = setTimeout(() => {
|
|
137
|
-
if (isMissingOrStale(queryClient,
|
|
138
|
-
queryClient.prefetchQuery({ queryKey:
|
|
143
|
+
if (isMissingOrStale(queryClient, currentQueryKey, staleTime)) {
|
|
144
|
+
queryClient.prefetchQuery({ queryKey: currentQueryKey, queryFn: queryFnRef.current, staleTime });
|
|
139
145
|
}
|
|
140
146
|
}, timeout);
|
|
141
147
|
return () => clearTimeout(timeoutId);
|
|
142
148
|
}
|
|
143
149
|
const idleCallbackId = window.requestIdleCallback(() => {
|
|
144
|
-
if (isMissingOrStale(queryClient,
|
|
145
|
-
queryClient.prefetchQuery({ queryKey:
|
|
150
|
+
if (isMissingOrStale(queryClient, currentQueryKey, staleTime)) {
|
|
151
|
+
queryClient.prefetchQuery({ queryKey: currentQueryKey, queryFn: queryFnRef.current, staleTime });
|
|
146
152
|
}
|
|
147
153
|
}, { timeout });
|
|
148
154
|
return () => window.cancelIdleCallback(idleCallbackId);
|
|
149
|
-
}, [queryClient, staleTime, enabled, timeout]);
|
|
155
|
+
}, [queryClient, staleTime, enabled, timeout, stableQueryKey]);
|
|
150
156
|
}
|
|
151
157
|
export function usePeriodicPrefetch(queryKey, queryFn, options) {
|
|
152
158
|
const queryClient = useQueryClient();
|
|
153
159
|
const { staleTime = DEFAULT_STALE_TIME, enabled = true, interval = 60000 } = options || {};
|
|
154
160
|
const queryFnRef = useRef(queryFn);
|
|
155
161
|
useEffect(() => { queryFnRef.current = queryFn; }, [queryFn]);
|
|
156
|
-
const stableQueryKey =
|
|
157
|
-
useEffect(() => { if (JSON.stringify(stableQueryKey.current) !== JSON.stringify(queryKey)) {
|
|
158
|
-
stableQueryKey.current = queryKey;
|
|
159
|
-
} }, [queryKey]);
|
|
162
|
+
const stableQueryKey = useStableQueryKey(queryKey);
|
|
160
163
|
useEffect(() => {
|
|
161
164
|
if (!enabled)
|
|
162
165
|
return;
|
|
166
|
+
const currentQueryKey = stableQueryKey;
|
|
163
167
|
const prefetchData = () => {
|
|
164
|
-
if (isMissingOrStale(queryClient,
|
|
165
|
-
queryClient.prefetchQuery({ queryKey:
|
|
168
|
+
if (isMissingOrStale(queryClient, currentQueryKey, staleTime)) {
|
|
169
|
+
queryClient.prefetchQuery({ queryKey: currentQueryKey, queryFn: queryFnRef.current, staleTime });
|
|
166
170
|
}
|
|
167
171
|
};
|
|
168
172
|
prefetchData();
|
|
169
173
|
const intervalId = setInterval(prefetchData, interval);
|
|
170
174
|
return () => clearInterval(intervalId);
|
|
171
|
-
}, [queryClient, staleTime, enabled, interval]);
|
|
175
|
+
}, [queryClient, staleTime, enabled, interval, stableQueryKey]);
|
|
172
176
|
}
|
|
173
177
|
export function usePredictivePrefetch() {
|
|
174
178
|
const queryClient = useQueryClient();
|
package/dist/hooks/useQuery.d.ts
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import type { DefaultError, QueryKey, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
2
2
|
import { skipToken } from "@tanstack/react-query";
|
|
3
|
-
export
|
|
3
|
+
export interface EnhancedQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> {
|
|
4
|
+
/** Log errors to console in development */
|
|
5
|
+
logErrors?: boolean;
|
|
6
|
+
/** Callback when query takes longer than threshold */
|
|
7
|
+
onSlowQuery?: (duration: number, queryKey: TQueryKey) => void;
|
|
8
|
+
/** Threshold in ms to trigger onSlowQuery (default: 3000) */
|
|
9
|
+
slowQueryThreshold?: number;
|
|
10
|
+
/** Enable performance tracking */
|
|
11
|
+
trackPerformance?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type EnhancedQueryResult<TData = unknown, TError = DefaultError> = UseQueryResult<TData, TError> & {
|
|
14
|
+
/** Number of times the query has been refetched */
|
|
15
|
+
refetchCount: number;
|
|
16
|
+
/** Last query duration in ms */
|
|
17
|
+
lastQueryDuration: number | null;
|
|
18
|
+
};
|
|
19
|
+
export declare function useEnhancedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: EnhancedQueryOptions<TQueryFnData, TError, TData, TQueryKey>): EnhancedQueryResult<TData, TError>;
|
|
4
20
|
export { skipToken };
|
|
5
21
|
//# sourceMappingURL=useQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,SAAS,EAAY,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,SAAS,EAAY,MAAM,uBAAuB,CAAC;AAI5D,MAAM,WAAW,oBAAoB,CAAC,YAAY,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,SAAS,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;IAC/M,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9D,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,mBAAmB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IACxG,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,YAAY,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACzI,OAAO,EAAE,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GACpE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAoDpC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/hooks/useQuery.js
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
import { skipToken, useQuery } from "@tanstack/react-query";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { isDev } from "../core/env.js";
|
|
2
4
|
export function useEnhancedQuery(options) {
|
|
3
|
-
|
|
5
|
+
const { logErrors = isDev, onSlowQuery, slowQueryThreshold = 3000, trackPerformance = false, ...queryOptions } = options;
|
|
6
|
+
const startTimeRef = useRef(0);
|
|
7
|
+
const refetchCountRef = useRef(0);
|
|
8
|
+
const lastDurationRef = useRef(null);
|
|
9
|
+
const wasFetchingRef = useRef(false);
|
|
10
|
+
const result = useQuery(queryOptions);
|
|
11
|
+
// Performance tracking
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (trackPerformance || onSlowQuery) {
|
|
14
|
+
if (result.isFetching && !wasFetchingRef.current) {
|
|
15
|
+
startTimeRef.current = Date.now();
|
|
16
|
+
}
|
|
17
|
+
else if (!result.isFetching && wasFetchingRef.current && startTimeRef.current > 0) {
|
|
18
|
+
const duration = Date.now() - startTimeRef.current;
|
|
19
|
+
lastDurationRef.current = duration;
|
|
20
|
+
if (onSlowQuery && duration > slowQueryThreshold) {
|
|
21
|
+
onSlowQuery(duration, queryOptions.queryKey);
|
|
22
|
+
}
|
|
23
|
+
startTimeRef.current = 0;
|
|
24
|
+
}
|
|
25
|
+
wasFetchingRef.current = result.isFetching;
|
|
26
|
+
}
|
|
27
|
+
}, [result.isFetching, onSlowQuery, slowQueryThreshold, trackPerformance, queryOptions.queryKey]);
|
|
28
|
+
// Error logging
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (logErrors && result.isError && result.error) {
|
|
31
|
+
console.error(`[useEnhancedQuery Error] ${JSON.stringify(queryOptions.queryKey)}:`, result.error);
|
|
32
|
+
}
|
|
33
|
+
}, [result.isError, result.error, logErrors, queryOptions.queryKey]);
|
|
34
|
+
// Refetch counting
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (result.isRefetching) {
|
|
37
|
+
refetchCountRef.current++;
|
|
38
|
+
}
|
|
39
|
+
}, [result.isRefetching]);
|
|
40
|
+
return {
|
|
41
|
+
...result,
|
|
42
|
+
refetchCount: refetchCountRef.current,
|
|
43
|
+
lastQueryDuration: lastDurationRef.current
|
|
44
|
+
};
|
|
4
45
|
}
|
|
5
46
|
export { skipToken };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { QueryClient, QueryClientProvider, useQueryClient, skipToken, useIsMutating } from "@tanstack/react-query";
|
|
2
|
-
export type { UseQueryOptions, UseSuspenseQueryOptions, UseInfiniteQueryOptions, QueryKey, MutationKey, InfiniteData } from "@tanstack/react-query";
|
|
1
|
+
export { QueryClient, QueryClientProvider, useQueryClient, skipToken, useIsMutating, useIsFetching, useQuery, useInfiniteQuery, useMutation, useSuspenseQuery, useSuspenseInfiniteQuery } from "@tanstack/react-query";
|
|
2
|
+
export type { UseQueryOptions, UseSuspenseQueryOptions, UseInfiniteQueryOptions, QueryKey, MutationKey, InfiniteData, UseQueryResult, UseInfiniteQueryResult, UseMutationResult, DefaultError } from "@tanstack/react-query";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACb,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { QueryClient, QueryClientProvider, useQueryClient, skipToken, useIsMutating } from "@tanstack/react-query";
|
|
1
|
+
export { QueryClient, QueryClientProvider, useQueryClient, skipToken, useIsMutating, useIsFetching, useQuery, useInfiniteQuery, useMutation, useSuspenseQuery, useSuspenseInfiniteQuery } from "@tanstack/react-query";
|
package/package.json
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qiaopeng/tanstack-query-plus",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Enhanced TanStack Query toolkit: defaults, hooks, persistence, offline, utils",
|
|
5
|
+
"author": "qiaopeng",
|
|
5
6
|
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/qiaopengg/qiaopeng-tanstack-query-plus.git"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/qiaopengg/qiaopeng-tanstack-query-plus/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/qiaopengg/qiaopeng-tanstack-query-plus#readme",
|
|
6
15
|
"type": "module",
|
|
7
16
|
"main": "./dist/index.js",
|
|
8
17
|
"module": "./dist/index.js",
|