floppy-disk 2.5.0-beta.1 → 2.5.0-beta.3
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/README.md +4 -4
- package/esm/preact/create-mutation.d.ts +4 -4
- package/esm/preact/create-mutation.js +6 -6
- package/esm/preact/create-query.d.ts +50 -38
- package/esm/preact/create-query.js +21 -23
- package/esm/preact/create-stores.d.ts +1 -2
- package/esm/react/create-mutation.d.ts +4 -4
- package/esm/react/create-mutation.js +6 -6
- package/esm/react/create-query.d.ts +50 -38
- package/esm/react/create-query.js +21 -23
- package/esm/react/create-stores.d.ts +1 -2
- package/esm/utils/index.d.ts +1 -0
- package/lib/preact/create-mutation.d.ts +4 -4
- package/lib/preact/create-mutation.js +6 -6
- package/lib/preact/create-query.d.ts +50 -38
- package/lib/preact/create-query.js +21 -23
- package/lib/preact/create-stores.d.ts +1 -2
- package/lib/react/create-mutation.d.ts +4 -4
- package/lib/react/create-mutation.js +6 -6
- package/lib/react/create-query.d.ts +50 -38
- package/lib/react/create-query.js +21 -23
- package/lib/react/create-stores.d.ts +1 -2
- package/lib/utils/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -15,11 +15,11 @@ const INITIAL_QUERY_STATE = {
|
|
|
15
15
|
isRefetchError: false,
|
|
16
16
|
isPreviousData: false,
|
|
17
17
|
isOptimisticData: false,
|
|
18
|
-
data:
|
|
19
|
-
response:
|
|
20
|
-
responseUpdatedAt:
|
|
21
|
-
error:
|
|
22
|
-
errorUpdatedAt:
|
|
18
|
+
data: undefined,
|
|
19
|
+
response: undefined,
|
|
20
|
+
responseUpdatedAt: undefined,
|
|
21
|
+
error: undefined,
|
|
22
|
+
errorUpdatedAt: undefined,
|
|
23
23
|
retryCount: 0,
|
|
24
24
|
isGoingToRetry: false,
|
|
25
25
|
pageParam: undefined,
|
|
@@ -56,11 +56,11 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
56
56
|
return { shouldRetry: retryCount < maxRetryCount, delay };
|
|
57
57
|
};
|
|
58
58
|
const forceFetch = () => new Promise((resolve) => {
|
|
59
|
+
const state = get();
|
|
59
60
|
const responseAllPages = [];
|
|
60
|
-
const newPageParams = [
|
|
61
|
-
let pageParam =
|
|
61
|
+
const newPageParams = [state.pageParams[0]];
|
|
62
|
+
let pageParam = state.pageParams[0];
|
|
62
63
|
clearTimeout(refetchIntervalTimeoutId.get(keyHash));
|
|
63
|
-
const state = get();
|
|
64
64
|
const { isWaiting, isLoading, pageParams } = state;
|
|
65
65
|
if (isWaiting || !(0, utils_1.getValueOrComputedValue)(enabled, key))
|
|
66
66
|
return resolve(state);
|
|
@@ -111,11 +111,11 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
111
111
|
isOptimisticData: false,
|
|
112
112
|
data: responseAllPages.reduce((prev, responseCurrentPage) => {
|
|
113
113
|
return select(responseCurrentPage, { key, data: prev });
|
|
114
|
-
},
|
|
114
|
+
}, undefined),
|
|
115
115
|
response,
|
|
116
116
|
responseUpdatedAt: Date.now(),
|
|
117
|
-
error:
|
|
118
|
-
errorUpdatedAt:
|
|
117
|
+
error: undefined,
|
|
118
|
+
errorUpdatedAt: undefined,
|
|
119
119
|
retryCount: 0,
|
|
120
120
|
pageParam: newPageParam,
|
|
121
121
|
pageParams: newPageParams,
|
|
@@ -130,7 +130,6 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
130
130
|
}
|
|
131
131
|
set(nextState);
|
|
132
132
|
onSuccess(response, stateBeforeCallQuery);
|
|
133
|
-
resolve(get());
|
|
134
133
|
})
|
|
135
134
|
.catch((error) => {
|
|
136
135
|
const prevState = get();
|
|
@@ -144,7 +143,7 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
144
143
|
data: responseAllPages.length
|
|
145
144
|
? responseAllPages.reduce((prev, response) => {
|
|
146
145
|
return select(response, { key, data: prev });
|
|
147
|
-
},
|
|
146
|
+
}, undefined)
|
|
148
147
|
: prevState.data,
|
|
149
148
|
error,
|
|
150
149
|
errorUpdatedAt,
|
|
@@ -157,7 +156,7 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
157
156
|
status: 'error',
|
|
158
157
|
isLoading: false,
|
|
159
158
|
isError: true,
|
|
160
|
-
data:
|
|
159
|
+
data: undefined,
|
|
161
160
|
error,
|
|
162
161
|
errorUpdatedAt,
|
|
163
162
|
isGoingToRetry: shouldRetry,
|
|
@@ -171,17 +170,17 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
171
170
|
}, delay));
|
|
172
171
|
}
|
|
173
172
|
onError(error, stateBeforeCallQuery);
|
|
174
|
-
resolve(get());
|
|
175
173
|
})
|
|
176
174
|
.finally(() => {
|
|
177
175
|
onSettled(stateBeforeCallQuery);
|
|
176
|
+
resolve(get());
|
|
178
177
|
});
|
|
179
178
|
};
|
|
180
179
|
callQuery();
|
|
181
180
|
});
|
|
182
181
|
const fetch = () => {
|
|
183
182
|
const { responseUpdatedAt } = get();
|
|
184
|
-
const isStale = Date.now() >
|
|
183
|
+
const isStale = Date.now() > (responseUpdatedAt || 0) + staleTime;
|
|
185
184
|
if (!isStale)
|
|
186
185
|
return;
|
|
187
186
|
forceFetch();
|
|
@@ -220,7 +219,6 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
220
219
|
hasNextPage: (0, utils_1.hasValue)(newPageParam),
|
|
221
220
|
});
|
|
222
221
|
onSuccess(response, stateBeforeCallQuery);
|
|
223
|
-
resolve(get());
|
|
224
222
|
})
|
|
225
223
|
.catch((error) => {
|
|
226
224
|
const prevState = get();
|
|
@@ -239,10 +237,10 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
239
237
|
}, delay));
|
|
240
238
|
}
|
|
241
239
|
onError(error, stateBeforeCallQuery);
|
|
242
|
-
resolve(get());
|
|
243
240
|
})
|
|
244
241
|
.finally(() => {
|
|
245
242
|
onSettled(stateBeforeCallQuery);
|
|
243
|
+
resolve(get());
|
|
246
244
|
});
|
|
247
245
|
});
|
|
248
246
|
return {
|
|
@@ -340,8 +338,8 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
340
338
|
isSuccess: true,
|
|
341
339
|
isError: false,
|
|
342
340
|
response,
|
|
343
|
-
responseUpdatedAt: skipRevalidation ? Date.now() :
|
|
344
|
-
data: select(response, { key: key, data:
|
|
341
|
+
responseUpdatedAt: skipRevalidation ? Date.now() : undefined,
|
|
342
|
+
data: select(response, { key: key, data: undefined }),
|
|
345
343
|
pageParam: newPageParam,
|
|
346
344
|
pageParams: [undefined, newPageParam],
|
|
347
345
|
hasNextPage: (0, utils_1.hasValue)(newPageParam),
|
|
@@ -360,14 +358,14 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
360
358
|
useQuery.invalidate = () => {
|
|
361
359
|
useQuery.getStores().forEach((store) => {
|
|
362
360
|
const { get, set, getSubscribers } = store;
|
|
363
|
-
set({ responseUpdatedAt:
|
|
361
|
+
set({ responseUpdatedAt: undefined });
|
|
364
362
|
if (getSubscribers().size > 0)
|
|
365
363
|
get().forceFetch();
|
|
366
364
|
});
|
|
367
365
|
};
|
|
368
366
|
useQuery.invalidateSpecificKey = (key) => {
|
|
369
367
|
const { get, set, getSubscribers } = useQuery.getStore(key);
|
|
370
|
-
set({ responseUpdatedAt:
|
|
368
|
+
set({ responseUpdatedAt: undefined });
|
|
371
369
|
if (getSubscribers().size > 0)
|
|
372
370
|
get().forceFetch();
|
|
373
371
|
};
|
|
@@ -379,7 +377,7 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
379
377
|
useQuery.set(key, {
|
|
380
378
|
isOptimisticData: true,
|
|
381
379
|
response: optimisticResponse,
|
|
382
|
-
data: select(optimisticResponse, { key: key, data:
|
|
380
|
+
data: select(optimisticResponse, { key: key, data: undefined }),
|
|
383
381
|
});
|
|
384
382
|
preventReplaceResponse.set(prevState.keyHash, true);
|
|
385
383
|
const revert = () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Maybe } from '../utils';
|
|
1
2
|
import { InitStoreOptions, InitStoreReturn, SelectDeps, SetStoreData, StoreData, Subscribers } from '../vanilla';
|
|
2
3
|
import { WatchProps } from './create-store';
|
|
3
|
-
type Maybe<T> = T | null | undefined;
|
|
4
4
|
export type StoreKey = Record<string, any> | undefined;
|
|
5
5
|
export type StoresInitializer<TKey extends StoreKey = StoreKey, T extends StoreData = StoreData> = (api: {
|
|
6
6
|
get: () => T;
|
|
@@ -50,4 +50,3 @@ export type CreateStoresOptions<TKey extends StoreKey = StoreKey, T extends Stor
|
|
|
50
50
|
* @see https://floppy-disk.vercel.app/docs/api#createstores
|
|
51
51
|
*/
|
|
52
52
|
export declare const createStores: <TKey extends StoreKey = StoreKey, T extends StoreData = StoreData>(initializer: StoresInitializer<TKey, T>, options?: CreateStoresOptions<TKey, T>) => UseStores<TKey, T>;
|
|
53
|
-
export {};
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export declare const identityFn: <T>(value: T) => T;
|
|
|
3
3
|
export declare const hasValue: (value: any) => boolean;
|
|
4
4
|
export declare const hashStoreKey: (obj?: any) => string;
|
|
5
5
|
export declare const getValueOrComputedValue: <T, P extends any[]>(valueOrComputeValueFn: T | ((...params: P) => T), ...params: P) => T;
|
|
6
|
+
export type Maybe<T> = T | null | undefined;
|