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.
@@ -15,11 +15,11 @@ const INITIAL_QUERY_STATE = {
15
15
  isRefetchError: false,
16
16
  isPreviousData: false,
17
17
  isOptimisticData: false,
18
- data: null,
19
- response: null,
20
- responseUpdatedAt: null,
21
- error: null,
22
- errorUpdatedAt: null,
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 = [undefined];
61
- let pageParam = undefined;
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
- }, null),
114
+ }, undefined),
115
115
  response,
116
116
  responseUpdatedAt: Date.now(),
117
- error: null,
118
- errorUpdatedAt: null,
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
- }, null)
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: null,
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() > Number(responseUpdatedAt) + staleTime;
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() : null,
344
- data: select(response, { key: key, data: null }),
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: null });
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: null });
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: null }),
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 {};
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "floppy-disk",
3
- "version": "2.5.0-beta.1",
3
+ "version": "2.5.0-beta.3",
4
4
  "description": "FloppyDisk - lightweight, simple, and powerful state management library",
5
5
  "keywords": [
6
6
  "state",