floppy-disk 2.1.0-beta.3 → 2.1.1
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 +13 -3
- package/esm/preact/create-query.d.ts +1 -1
- package/esm/preact/create-query.js +6 -5
- package/esm/react/create-query.d.ts +1 -1
- package/esm/react/create-query.js +6 -5
- package/lib/preact/create-query.d.ts +1 -1
- package/lib/preact/create-query.js +6 -5
- package/lib/react/create-query.d.ts +1 -1
- package/lib/react/create-query.js +6 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,13 +18,13 @@ import {
|
|
|
18
18
|
useInfiniteQuery,
|
|
19
19
|
useMutation,
|
|
20
20
|
} from '@tanstack/react-query'; // 41 kB (gzipped: 11 kB)
|
|
21
|
-
import { createQuery, createMutation } from 'floppy-disk'; // 8.
|
|
21
|
+
import { createQuery, createMutation } from 'floppy-disk'; // 8.4 kB (gzipped: 2.8 kB) 🎉
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
- Using Zustand & React-Query: https://demo-zustand-react-query.vercel.app/
|
|
25
25
|
👉 Total: **309.21 kB**
|
|
26
26
|
- Using Floppy Disk: https://demo-floppy-disk.vercel.app/
|
|
27
|
-
👉 Total: **
|
|
27
|
+
👉 Total: **271.15 kB** 🎉
|
|
28
28
|
|
|
29
29
|
## Key Features
|
|
30
30
|
|
|
@@ -51,7 +51,17 @@ import { createQuery, createMutation } from 'floppy-disk'; // 8.2 kB (gzipped: 2
|
|
|
51
51
|
- Can be used with literally any asynchronous data fetching client, including GraphQL ✅
|
|
52
52
|
- Create mutation ✅
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
<br>
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
<p align="center">
|
|
59
|
+
View official documentation on <a href="https://floppy-disk.vercel.app/">floppy-disk.vercel.app</a>
|
|
60
|
+
</p>
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
<br>
|
|
55
65
|
|
|
56
66
|
## Table of Contents
|
|
57
67
|
|
|
@@ -156,7 +156,7 @@ export type CreateQueryOptions<TKey extends StoreKey = StoreKey, TResponse = any
|
|
|
156
156
|
/**
|
|
157
157
|
* Error retry delay in miliseconds.
|
|
158
158
|
*
|
|
159
|
-
* Defaults to `
|
|
159
|
+
* Defaults to `2000` (2 seconds).
|
|
160
160
|
*/
|
|
161
161
|
retryDelay?: number | ((error: TError, key: TKey) => number);
|
|
162
162
|
/**
|
|
@@ -41,7 +41,7 @@ const useQueryDefaultDeps = (state) => [
|
|
|
41
41
|
];
|
|
42
42
|
export const createQuery = (queryFn, options = {}) => {
|
|
43
43
|
const { onFirstSubscribe = noop, onSubscribe = noop, onLastUnsubscribe = noop, onBeforeChangeKey = noop, defaultDeps = useQueryDefaultDeps, select = identityFn, staleTime = 3000, // 3 seconds
|
|
44
|
-
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay =
|
|
44
|
+
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay = 2000, // 2 seconds
|
|
45
45
|
keepPreviousData, getNextPageParam = () => undefined, onSuccess = noop, onError = noop, onSettled = noop, ...createStoresOptions } = options;
|
|
46
46
|
const retryTimeoutId = new Map();
|
|
47
47
|
const retryNextPageTimeoutId = new Map();
|
|
@@ -136,6 +136,7 @@ export const createQuery = (queryFn, options = {}) => {
|
|
|
136
136
|
: {
|
|
137
137
|
isWaiting: false,
|
|
138
138
|
status: 'error',
|
|
139
|
+
isLoading: false,
|
|
139
140
|
isError: true,
|
|
140
141
|
data: null,
|
|
141
142
|
error,
|
|
@@ -305,17 +306,17 @@ export const createQuery = (queryFn, options = {}) => {
|
|
|
305
306
|
};
|
|
306
307
|
useQuery.invalidate = () => {
|
|
307
308
|
useQuery.getStores().forEach((store) => {
|
|
308
|
-
const { set, getSubscribers } = store;
|
|
309
|
+
const { get, set, getSubscribers } = store;
|
|
309
310
|
set({ responseUpdatedAt: null });
|
|
310
311
|
if (getSubscribers().size > 0)
|
|
311
|
-
|
|
312
|
+
get().forceFetch();
|
|
312
313
|
});
|
|
313
314
|
};
|
|
314
315
|
useQuery.invalidateSpecificKey = (key) => {
|
|
315
|
-
const { set, getSubscribers } = useQuery.getStore(key);
|
|
316
|
+
const { get, set, getSubscribers } = useQuery.getStore(key);
|
|
316
317
|
set({ responseUpdatedAt: null });
|
|
317
318
|
if (getSubscribers().size > 0)
|
|
318
|
-
|
|
319
|
+
get().forceFetch();
|
|
319
320
|
};
|
|
320
321
|
useQuery.optimisticUpdate = ({ key, response }) => {
|
|
321
322
|
const prevState = useQuery.get(key);
|
|
@@ -156,7 +156,7 @@ export type CreateQueryOptions<TKey extends StoreKey = StoreKey, TResponse = any
|
|
|
156
156
|
/**
|
|
157
157
|
* Error retry delay in miliseconds.
|
|
158
158
|
*
|
|
159
|
-
* Defaults to `
|
|
159
|
+
* Defaults to `2000` (2 seconds).
|
|
160
160
|
*/
|
|
161
161
|
retryDelay?: number | ((error: TError, key: TKey) => number);
|
|
162
162
|
/**
|
|
@@ -41,7 +41,7 @@ const useQueryDefaultDeps = (state) => [
|
|
|
41
41
|
];
|
|
42
42
|
export const createQuery = (queryFn, options = {}) => {
|
|
43
43
|
const { onFirstSubscribe = noop, onSubscribe = noop, onLastUnsubscribe = noop, onBeforeChangeKey = noop, defaultDeps = useQueryDefaultDeps, select = identityFn, staleTime = 3000, // 3 seconds
|
|
44
|
-
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay =
|
|
44
|
+
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay = 2000, // 2 seconds
|
|
45
45
|
keepPreviousData, getNextPageParam = () => undefined, onSuccess = noop, onError = noop, onSettled = noop, ...createStoresOptions } = options;
|
|
46
46
|
const retryTimeoutId = new Map();
|
|
47
47
|
const retryNextPageTimeoutId = new Map();
|
|
@@ -136,6 +136,7 @@ export const createQuery = (queryFn, options = {}) => {
|
|
|
136
136
|
: {
|
|
137
137
|
isWaiting: false,
|
|
138
138
|
status: 'error',
|
|
139
|
+
isLoading: false,
|
|
139
140
|
isError: true,
|
|
140
141
|
data: null,
|
|
141
142
|
error,
|
|
@@ -305,17 +306,17 @@ export const createQuery = (queryFn, options = {}) => {
|
|
|
305
306
|
};
|
|
306
307
|
useQuery.invalidate = () => {
|
|
307
308
|
useQuery.getStores().forEach((store) => {
|
|
308
|
-
const { set, getSubscribers } = store;
|
|
309
|
+
const { get, set, getSubscribers } = store;
|
|
309
310
|
set({ responseUpdatedAt: null });
|
|
310
311
|
if (getSubscribers().size > 0)
|
|
311
|
-
|
|
312
|
+
get().forceFetch();
|
|
312
313
|
});
|
|
313
314
|
};
|
|
314
315
|
useQuery.invalidateSpecificKey = (key) => {
|
|
315
|
-
const { set, getSubscribers } = useQuery.getStore(key);
|
|
316
|
+
const { get, set, getSubscribers } = useQuery.getStore(key);
|
|
316
317
|
set({ responseUpdatedAt: null });
|
|
317
318
|
if (getSubscribers().size > 0)
|
|
318
|
-
|
|
319
|
+
get().forceFetch();
|
|
319
320
|
};
|
|
320
321
|
useQuery.optimisticUpdate = ({ key, response }) => {
|
|
321
322
|
const prevState = useQuery.get(key);
|
|
@@ -156,7 +156,7 @@ export type CreateQueryOptions<TKey extends StoreKey = StoreKey, TResponse = any
|
|
|
156
156
|
/**
|
|
157
157
|
* Error retry delay in miliseconds.
|
|
158
158
|
*
|
|
159
|
-
* Defaults to `
|
|
159
|
+
* Defaults to `2000` (2 seconds).
|
|
160
160
|
*/
|
|
161
161
|
retryDelay?: number | ((error: TError, key: TKey) => number);
|
|
162
162
|
/**
|
|
@@ -44,7 +44,7 @@ const useQueryDefaultDeps = (state) => [
|
|
|
44
44
|
];
|
|
45
45
|
const createQuery = (queryFn, options = {}) => {
|
|
46
46
|
const { onFirstSubscribe = utils_1.noop, onSubscribe = utils_1.noop, onLastUnsubscribe = utils_1.noop, onBeforeChangeKey = utils_1.noop, defaultDeps = useQueryDefaultDeps, select = utils_1.identityFn, staleTime = 3000, // 3 seconds
|
|
47
|
-
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay =
|
|
47
|
+
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay = 2000, // 2 seconds
|
|
48
48
|
keepPreviousData, getNextPageParam = () => undefined, onSuccess = utils_1.noop, onError = utils_1.noop, onSettled = utils_1.noop, ...createStoresOptions } = options;
|
|
49
49
|
const retryTimeoutId = new Map();
|
|
50
50
|
const retryNextPageTimeoutId = new Map();
|
|
@@ -139,6 +139,7 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
139
139
|
: {
|
|
140
140
|
isWaiting: false,
|
|
141
141
|
status: 'error',
|
|
142
|
+
isLoading: false,
|
|
142
143
|
isError: true,
|
|
143
144
|
data: null,
|
|
144
145
|
error,
|
|
@@ -308,17 +309,17 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
308
309
|
};
|
|
309
310
|
useQuery.invalidate = () => {
|
|
310
311
|
useQuery.getStores().forEach((store) => {
|
|
311
|
-
const { set, getSubscribers } = store;
|
|
312
|
+
const { get, set, getSubscribers } = store;
|
|
312
313
|
set({ responseUpdatedAt: null });
|
|
313
314
|
if (getSubscribers().size > 0)
|
|
314
|
-
|
|
315
|
+
get().forceFetch();
|
|
315
316
|
});
|
|
316
317
|
};
|
|
317
318
|
useQuery.invalidateSpecificKey = (key) => {
|
|
318
|
-
const { set, getSubscribers } = useQuery.getStore(key);
|
|
319
|
+
const { get, set, getSubscribers } = useQuery.getStore(key);
|
|
319
320
|
set({ responseUpdatedAt: null });
|
|
320
321
|
if (getSubscribers().size > 0)
|
|
321
|
-
|
|
322
|
+
get().forceFetch();
|
|
322
323
|
};
|
|
323
324
|
useQuery.optimisticUpdate = ({ key, response }) => {
|
|
324
325
|
const prevState = useQuery.get(key);
|
|
@@ -156,7 +156,7 @@ export type CreateQueryOptions<TKey extends StoreKey = StoreKey, TResponse = any
|
|
|
156
156
|
/**
|
|
157
157
|
* Error retry delay in miliseconds.
|
|
158
158
|
*
|
|
159
|
-
* Defaults to `
|
|
159
|
+
* Defaults to `2000` (2 seconds).
|
|
160
160
|
*/
|
|
161
161
|
retryDelay?: number | ((error: TError, key: TKey) => number);
|
|
162
162
|
/**
|
|
@@ -44,7 +44,7 @@ const useQueryDefaultDeps = (state) => [
|
|
|
44
44
|
];
|
|
45
45
|
const createQuery = (queryFn, options = {}) => {
|
|
46
46
|
const { onFirstSubscribe = utils_1.noop, onSubscribe = utils_1.noop, onLastUnsubscribe = utils_1.noop, onBeforeChangeKey = utils_1.noop, defaultDeps = useQueryDefaultDeps, select = utils_1.identityFn, staleTime = 3000, // 3 seconds
|
|
47
|
-
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay =
|
|
47
|
+
fetchOnMount = true, fetchOnWindowFocus = true, enabled = true, retry = 1, retryDelay = 2000, // 2 seconds
|
|
48
48
|
keepPreviousData, getNextPageParam = () => undefined, onSuccess = utils_1.noop, onError = utils_1.noop, onSettled = utils_1.noop, ...createStoresOptions } = options;
|
|
49
49
|
const retryTimeoutId = new Map();
|
|
50
50
|
const retryNextPageTimeoutId = new Map();
|
|
@@ -139,6 +139,7 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
139
139
|
: {
|
|
140
140
|
isWaiting: false,
|
|
141
141
|
status: 'error',
|
|
142
|
+
isLoading: false,
|
|
142
143
|
isError: true,
|
|
143
144
|
data: null,
|
|
144
145
|
error,
|
|
@@ -308,17 +309,17 @@ const createQuery = (queryFn, options = {}) => {
|
|
|
308
309
|
};
|
|
309
310
|
useQuery.invalidate = () => {
|
|
310
311
|
useQuery.getStores().forEach((store) => {
|
|
311
|
-
const { set, getSubscribers } = store;
|
|
312
|
+
const { get, set, getSubscribers } = store;
|
|
312
313
|
set({ responseUpdatedAt: null });
|
|
313
314
|
if (getSubscribers().size > 0)
|
|
314
|
-
|
|
315
|
+
get().forceFetch();
|
|
315
316
|
});
|
|
316
317
|
};
|
|
317
318
|
useQuery.invalidateSpecificKey = (key) => {
|
|
318
|
-
const { set, getSubscribers } = useQuery.getStore(key);
|
|
319
|
+
const { get, set, getSubscribers } = useQuery.getStore(key);
|
|
319
320
|
set({ responseUpdatedAt: null });
|
|
320
321
|
if (getSubscribers().size > 0)
|
|
321
|
-
|
|
322
|
+
get().forceFetch();
|
|
322
323
|
};
|
|
323
324
|
useQuery.optimisticUpdate = ({ key, response }) => {
|
|
324
325
|
const prevState = useQuery.get(key);
|