@tanstack/svelte-query-persist-client 5.0.0-beta.26

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.
Files changed (74) hide show
  1. package/LICENSE +21 -0
  2. package/dist/PersistQueryClientProvider.svelte +38 -0
  3. package/dist/PersistQueryClientProvider.svelte.d.ts +23 -0
  4. package/dist/PersistQueryClientProvider.svelte.d.ts.map +1 -0
  5. package/dist/__tests__/AwaitOnSuccess/AwaitOnSuccess.svelte +26 -0
  6. package/dist/__tests__/AwaitOnSuccess/AwaitOnSuccess.svelte.d.ts +19 -0
  7. package/dist/__tests__/AwaitOnSuccess/AwaitOnSuccess.svelte.d.ts.map +1 -0
  8. package/dist/__tests__/AwaitOnSuccess/Provider.svelte +12 -0
  9. package/dist/__tests__/AwaitOnSuccess/Provider.svelte.d.ts +24 -0
  10. package/dist/__tests__/AwaitOnSuccess/Provider.svelte.d.ts.map +1 -0
  11. package/dist/__tests__/FreshData/FreshData.svelte +31 -0
  12. package/dist/__tests__/FreshData/FreshData.svelte.d.ts +21 -0
  13. package/dist/__tests__/FreshData/FreshData.svelte.d.ts.map +1 -0
  14. package/dist/__tests__/FreshData/Provider.svelte +12 -0
  15. package/dist/__tests__/FreshData/Provider.svelte.d.ts +25 -0
  16. package/dist/__tests__/FreshData/Provider.svelte.d.ts.map +1 -0
  17. package/dist/__tests__/InitialData/InitialData.svelte +32 -0
  18. package/dist/__tests__/InitialData/InitialData.svelte.d.ts +20 -0
  19. package/dist/__tests__/InitialData/InitialData.svelte.d.ts.map +1 -0
  20. package/dist/__tests__/InitialData/Provider.svelte +11 -0
  21. package/dist/__tests__/InitialData/Provider.svelte.d.ts +24 -0
  22. package/dist/__tests__/InitialData/Provider.svelte.d.ts.map +1 -0
  23. package/dist/__tests__/OnSuccess/OnSuccess.svelte +23 -0
  24. package/dist/__tests__/OnSuccess/OnSuccess.svelte.d.ts +17 -0
  25. package/dist/__tests__/OnSuccess/OnSuccess.svelte.d.ts.map +1 -0
  26. package/dist/__tests__/OnSuccess/Provider.svelte +11 -0
  27. package/dist/__tests__/OnSuccess/Provider.svelte.d.ts +22 -0
  28. package/dist/__tests__/OnSuccess/Provider.svelte.d.ts.map +1 -0
  29. package/dist/__tests__/PersistQueryClientProvider.test.d.ts +2 -0
  30. package/dist/__tests__/PersistQueryClientProvider.test.d.ts.map +1 -0
  31. package/dist/__tests__/PersistQueryClientProvider.test.js +294 -0
  32. package/dist/__tests__/RemoveCache/Provider.svelte +10 -0
  33. package/dist/__tests__/RemoveCache/Provider.svelte.d.ts +21 -0
  34. package/dist/__tests__/RemoveCache/Provider.svelte.d.ts.map +1 -0
  35. package/dist/__tests__/RemoveCache/RemoveCache.svelte +23 -0
  36. package/dist/__tests__/RemoveCache/RemoveCache.svelte.d.ts +17 -0
  37. package/dist/__tests__/RemoveCache/RemoveCache.svelte.d.ts.map +1 -0
  38. package/dist/__tests__/RestoreCache/Provider.svelte +11 -0
  39. package/dist/__tests__/RestoreCache/Provider.svelte.d.ts +24 -0
  40. package/dist/__tests__/RestoreCache/Provider.svelte.d.ts.map +1 -0
  41. package/dist/__tests__/RestoreCache/RestoreCache.svelte +28 -0
  42. package/dist/__tests__/RestoreCache/RestoreCache.svelte.d.ts +20 -0
  43. package/dist/__tests__/RestoreCache/RestoreCache.svelte.d.ts.map +1 -0
  44. package/dist/__tests__/UseQueries/Provider.svelte +11 -0
  45. package/dist/__tests__/UseQueries/Provider.svelte.d.ts +24 -0
  46. package/dist/__tests__/UseQueries/Provider.svelte.d.ts.map +1 -0
  47. package/dist/__tests__/UseQueries/UseQueries.svelte +32 -0
  48. package/dist/__tests__/UseQueries/UseQueries.svelte.d.ts +20 -0
  49. package/dist/__tests__/UseQueries/UseQueries.svelte.d.ts.map +1 -0
  50. package/dist/__tests__/utils.d.ts +13 -0
  51. package/dist/__tests__/utils.d.ts.map +1 -0
  52. package/dist/__tests__/utils.js +22 -0
  53. package/dist/index.d.ts +3 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +3 -0
  56. package/package.json +55 -0
  57. package/src/PersistQueryClientProvider.svelte +43 -0
  58. package/src/__tests__/AwaitOnSuccess/AwaitOnSuccess.svelte +31 -0
  59. package/src/__tests__/AwaitOnSuccess/Provider.svelte +17 -0
  60. package/src/__tests__/FreshData/FreshData.svelte +38 -0
  61. package/src/__tests__/FreshData/Provider.svelte +18 -0
  62. package/src/__tests__/InitialData/InitialData.svelte +39 -0
  63. package/src/__tests__/InitialData/Provider.svelte +17 -0
  64. package/src/__tests__/OnSuccess/OnSuccess.svelte +27 -0
  65. package/src/__tests__/OnSuccess/Provider.svelte +15 -0
  66. package/src/__tests__/PersistQueryClientProvider.test.ts +377 -0
  67. package/src/__tests__/RemoveCache/Provider.svelte +14 -0
  68. package/src/__tests__/RemoveCache/RemoveCache.svelte +27 -0
  69. package/src/__tests__/RestoreCache/Provider.svelte +17 -0
  70. package/src/__tests__/RestoreCache/RestoreCache.svelte +34 -0
  71. package/src/__tests__/UseQueries/Provider.svelte +17 -0
  72. package/src/__tests__/UseQueries/UseQueries.svelte +38 -0
  73. package/src/__tests__/utils.ts +34 -0
  74. package/src/index.ts +3 -0
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import PersistQueryClientProvider from '../../PersistQueryClientProvider.svelte'
3
+ import RemoveCache from './RemoveCache.svelte'
4
+ import type { QueryClient } from '@tanstack/svelte-query'
5
+ import type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'
6
+
7
+ export let queryClient: QueryClient
8
+ export let persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>
9
+ export let key: Array<string>
10
+ </script>
11
+
12
+ <PersistQueryClientProvider client={queryClient} {persistOptions}>
13
+ <RemoveCache {key} />
14
+ </PersistQueryClientProvider>
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import { createQuery } from '@tanstack/svelte-query'
3
+ import { get } from 'svelte/store'
4
+ import { sleep } from '../utils'
5
+
6
+ export let key: Array<string>
7
+
8
+ const state = createQuery({
9
+ queryKey: key,
10
+ queryFn: async () => {
11
+ await sleep(10)
12
+ return 'fetched'
13
+ },
14
+ })
15
+
16
+ let data = get(state).data
17
+ let fetchStatus = get(state).fetchStatus
18
+ state.subscribe((s) => {
19
+ data = s.data
20
+ fetchStatus = s.fetchStatus
21
+ })
22
+ </script>
23
+
24
+ <div>
25
+ <h1>{data}</h1>
26
+ <h2>fetchStatus: {fetchStatus}</h2>
27
+ </div>
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import PersistQueryClientProvider from '../../PersistQueryClientProvider.svelte'
3
+ import RestoreCache from './RestoreCache.svelte'
4
+ import type { QueryClient } from '@tanstack/svelte-query'
5
+ import type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'
6
+ import type { Writable } from 'svelte/store'
7
+ import type { StatusResult } from '../utils'
8
+
9
+ export let queryClient: QueryClient
10
+ export let persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>
11
+ export let key: Array<string>
12
+ export let states: Writable<Array<StatusResult<string>>>
13
+ </script>
14
+
15
+ <PersistQueryClientProvider client={queryClient} {persistOptions}>
16
+ <RestoreCache {key} {states} />
17
+ </PersistQueryClientProvider>
@@ -0,0 +1,34 @@
1
+ <script lang="ts">
2
+ import { createQuery } from '@tanstack/svelte-query'
3
+ import { get } from 'svelte/store'
4
+ import { sleep } from '../utils'
5
+ import type { Writable } from 'svelte/store'
6
+ import type { StatusResult } from '../utils'
7
+
8
+ export let key: Array<string>
9
+ export let states: Writable<Array<StatusResult<string>>>
10
+
11
+ const state = createQuery({
12
+ queryKey: key,
13
+ queryFn: async () => {
14
+ await sleep(10)
15
+ return 'fetched'
16
+ },
17
+ })
18
+
19
+ let data = get(state).data
20
+ let fetchStatus = get(state).fetchStatus
21
+ state.subscribe((s) => {
22
+ states.update((prev) => [
23
+ ...prev,
24
+ { status: s.status, data: s.data, fetchStatus: s.fetchStatus },
25
+ ])
26
+ data = s.data
27
+ fetchStatus = s.fetchStatus
28
+ })
29
+ </script>
30
+
31
+ <div>
32
+ <h1>{data}</h1>
33
+ <h2>fetchStatus: {fetchStatus}</h2>
34
+ </div>
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import PersistQueryClientProvider from '../../PersistQueryClientProvider.svelte'
3
+ import UseQueries from './UseQueries.svelte'
4
+ import type { QueryClient } from '@tanstack/svelte-query'
5
+ import type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'
6
+ import type { Writable } from 'svelte/store'
7
+ import type { StatusResult } from '../utils'
8
+
9
+ export let queryClient: QueryClient
10
+ export let persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>
11
+ export let key: Array<string>
12
+ export let states: Writable<Array<StatusResult<string>>>
13
+ </script>
14
+
15
+ <PersistQueryClientProvider client={queryClient} {persistOptions}>
16
+ <UseQueries {key} {states} />
17
+ </PersistQueryClientProvider>
@@ -0,0 +1,38 @@
1
+ <script lang="ts">
2
+ import { createQueries } from '@tanstack/svelte-query'
3
+ import { get } from 'svelte/store'
4
+ import { sleep } from '../utils'
5
+ import type { Writable } from 'svelte/store'
6
+ import type { StatusResult } from '../utils'
7
+
8
+ export let key: Array<string>
9
+ export let states: Writable<Array<StatusResult<string>>>
10
+
11
+ const state = createQueries({
12
+ queries: [
13
+ {
14
+ queryKey: key,
15
+ queryFn: async (): Promise<string> => {
16
+ await sleep(10)
17
+ return 'fetched'
18
+ },
19
+ },
20
+ ],
21
+ })
22
+
23
+ let data = get(state)[0].data
24
+ let fetchStatus = get(state)[0].fetchStatus
25
+ state.subscribe(([s]) => {
26
+ states.update((prev) => [
27
+ ...prev,
28
+ { status: s.status, data: s.data, fetchStatus: s.fetchStatus },
29
+ ])
30
+ data = s.data
31
+ fetchStatus = s.fetchStatus
32
+ })
33
+ </script>
34
+
35
+ <div>
36
+ <h1>{data}</h1>
37
+ <h2>fetchStatus: {fetchStatus}</h2>
38
+ </div>
@@ -0,0 +1,34 @@
1
+ import { QueryClient } from '@tanstack/svelte-query'
2
+ import { act } from '@testing-library/svelte'
3
+
4
+ import type { QueryClientConfig } from '@tanstack/svelte-query'
5
+
6
+ export function createQueryClient(config?: QueryClientConfig): QueryClient {
7
+ return new QueryClient(config)
8
+ }
9
+
10
+ let queryKeyCount = 0
11
+ export function queryKey(): Array<string> {
12
+ queryKeyCount++
13
+ return [`query_${queryKeyCount}`]
14
+ }
15
+
16
+ export function sleep(timeout: number): Promise<void> {
17
+ return new Promise((resolve, _reject) => {
18
+ setTimeout(resolve, timeout)
19
+ })
20
+ }
21
+
22
+ export function setActTimeout(fn: () => void, ms?: number) {
23
+ return setTimeout(() => {
24
+ act(() => {
25
+ fn()
26
+ })
27
+ }, ms)
28
+ }
29
+
30
+ export type StatusResult<T = unknown> = {
31
+ status: string
32
+ fetchStatus: string
33
+ data: T | undefined
34
+ }
package/src/index.ts ADDED
@@ -0,0 +1,3 @@
1
+ // Re-export core
2
+ export * from '@tanstack/query-persist-client-core'
3
+ export { default as PersistQueryClientProvider } from './PersistQueryClientProvider.svelte'