Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Svelte 5 adapter #6981

Merged
merged 69 commits into from
Jul 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
7b5e650
fix
zhihengGet Feb 27, 2024
603c97e
fix
zhihengGet Feb 27, 2024
ed9539c
fix
zhihengGet Feb 28, 2024
a7c62ca
allow enable to be function
zhihengGet Feb 28, 2024
206a324
wip
zhihengGet Mar 17, 2024
af611bc
fx
zhihengGet Mar 30, 2024
9cc0721
remove unstate
zhihengGet Apr 17, 2024
b983b34
Merge branch 'main' into zhihengGet/main
lachlancollins Jun 20, 2024
b46374c
Fix merge
lachlancollins Jun 20, 2024
f1797cf
Fix createQueries merge
lachlancollins Jun 20, 2024
cf389f1
Fix some CI errors
lachlancollins Jun 20, 2024
4f91fd4
Fix svelte-melt example
lachlancollins Jun 20, 2024
f1e0e69
Merge branch 'main' into zhihengGet/main
lachlancollins Jun 30, 2024
6548f1d
Fix merge
lachlancollins Jun 30, 2024
96b349d
Replace svelte-query
lachlancollins Jul 7, 2024
7e9e8bd
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 7, 2024
0c3299c
svelte
zhihengGet Jul 13, 2024
4478ec0
svelte
zhihengGet Jul 13, 2024
18a65c2
fix tests
zhihengGet Jul 14, 2024
9147e65
fix tests
zhihengGet Jul 14, 2024
3a6112c
fix ts
zhihengGet Jul 14, 2024
4a3c1e0
remove
zhihengGet Jul 14, 2024
5e9b3bf
remove
zhihengGet Jul 14, 2024
8200ebf
fix
zhihengGet Jul 14, 2024
87038d1
fix
zhihengGet Jul 14, 2024
1f0c8c0
fix
zhihengGet Jul 14, 2024
ee417eb
fix
zhihengGet Jul 14, 2024
50d2538
fix tests
zhihengGet Jul 14, 2024
80d77b5
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 14, 2024
10ba3bc
Fix lockfile
lachlancollins Jul 14, 2024
4800066
Merge branch 'main' of https://github.com/zhihengGet/query
zhihengGet Jul 14, 2024
016f9f0
Sync svelte versions
lachlancollins Jul 16, 2024
bb08ee8
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 16, 2024
f0ebbf8
Fix eslint, update basic/ssr examples
lachlancollins Jul 16, 2024
c0bc55c
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 16, 2024
c8713d6
Fix sherif, prettier
lachlancollins Jul 16, 2024
83eba3e
Add missing exports
lachlancollins Jul 16, 2024
1274401
dedupe useMutationState
lachlancollins Jul 16, 2024
12b0ed8
fix a test case
zhihengGet Jul 17, 2024
bc26e06
dude
zhihengGet Jul 17, 2024
47c7200
fix tests
zhihengGet Jul 17, 2024
e9c5990
Update $props, examples
lachlancollins Jul 17, 2024
3da88ba
Remove export let
lachlancollins Jul 17, 2024
cae27db
Simplify tracking test states
lachlancollins Jul 17, 2024
ee98bef
Merge 'main' into zhihengGet/main
lachlancollins Jul 17, 2024
c1b7778
Fix svelte-query-persist-client tests
lachlancollins Jul 17, 2024
f160633
Decrease difference from main
lachlancollins Jul 17, 2024
4c8c080
untrack
zhihengGet Jul 17, 2024
4cf0b24
Fix createQueries, remove console.log
lachlancollins Jul 17, 2024
34894de
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 18, 2024
76c4292
hi
zhihengGet Jul 19, 2024
9a969be
omit
zhihengGet Jul 19, 2024
61ee18b
fix types
zhihengGet Jul 19, 2024
f01f9f4
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 20, 2024
754daf8
Merge branch 'main' of https://github.com/zhihengGet/query into zhihe…
lachlancollins Jul 20, 2024
c63941e
Fix merge
lachlancollins Jul 20, 2024
b5f8d9e
Fix eslint
lachlancollins Jul 20, 2024
2f3aa1a
fix
zhihengGet Jul 21, 2024
5b6a69d
fix
zhihengGet Jul 21, 2024
195ee40
Merge branch 'main' into main
lachlancollins Jul 21, 2024
63fd463
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 22, 2024
b7e81a9
fix
zhihengGet Jul 25, 2024
9771a13
Improvements
lachlancollins Jul 26, 2024
39cbe53
Fix reactive props
lachlancollins Jul 26, 2024
bb0c910
Add back missing option
lachlancollins Jul 26, 2024
56e9881
Merge branch 'svelte-5-adapter' into main
lachlancollins Jul 26, 2024
4cce385
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 26, 2024
a48fadf
Remove missing export
lachlancollins Jul 26, 2024
07e64e7
Merge branch 'main' into zhihengGet/main
lachlancollins Jul 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export default [
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-empty-function': 'off',
'no-case-declarations': 'off',
'prefer-const': 'off',
},
},
]
4 changes: 2 additions & 2 deletions examples/svelte/auto-refetching/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.2",
"@sveltejs/kit": "^2.5.18",
"@sveltejs/vite-plugin-svelte": "^3.1.0",
"svelte": "^4.2.18",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.4",
"svelte": "5.0.0-next.192",
"svelte-check": "^3.8.4",
"typescript": "5.3.3",
"vite": "^5.3.3"
Expand Down
4 changes: 3 additions & 1 deletion examples/svelte/auto-refetching/src/routes/+layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import { QueryClientProvider, QueryClient } from '@tanstack/svelte-query'
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'

const { children } = $props()

const queryClient = new QueryClient({
defaultOptions: {
queries: {
Expand All @@ -15,7 +17,7 @@

<QueryClientProvider client={queryClient}>
<main>
<slot />
{@render children()}
</main>
<SvelteQueryDevtools />
</QueryClientProvider>
26 changes: 12 additions & 14 deletions examples/svelte/auto-refetching/src/routes/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

const endpoint = 'http://localhost:5173/api/data'

$: todos = createQuery<{ items: string[] }>({
const todos = createQuery<{ items: string[] }>({
queryKey: ['refetch'],
queryFn: async () => await fetch(endpoint).then((r) => r.json()),
// Refetch the data every second
Expand Down Expand Up @@ -49,46 +49,44 @@
margin-left:.5rem;
width:.75rem;
height:.75rem;
background: {$todos.isFetching ? 'green' : 'transparent'};
transition:: {!$todos.isFetching ? 'all .3s ease' : 'none'};
background: {todos.isFetching ? 'green' : 'transparent'};
transition:: {!todos.isFetching ? 'all .3s ease' : 'none'};

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this double :: a typo?

border-radius: 100%;
transform: 'scale(2)"
></span>
</div>
</label>
<h2>Todo List</h2>
<form
on:submit={(e) => {
onsubmit={(e) => {
e.preventDefault()
e.stopPropagation()
$addMutation.mutate(value, {
addMutation.mutate(value, {
onSuccess: () => (value = ''),
})
}}
>
<input placeholder="enter something" bind:value />
</form>

{#if $todos.isPending}
{#if todos.isPending}
Loading...
{/if}
{#if $todos.error}
{#if todos.error}
An error has occurred:
{$todos.error.message}
{todos.error.message}
{/if}
{#if $todos.isSuccess}
{#if todos.isSuccess}
<ul>
{#each $todos.data.items as item}
{#each todos.data.items as item}
<li>{item}</li>
{/each}
</ul>
<div>
<button on:click={() => $clearMutation.mutate(undefined)}>
Clear All
</button>
<button onclick={() => clearMutation.mutate(undefined)}> Clear All </button>
</div>
{/if}
{#if $todos.isFetching}
{#if todos.isFetching}
<div style="color:darkgreen; font-weight:700">
'Background Updating...' : ' '
</div>
Expand Down
4 changes: 2 additions & 2 deletions examples/svelte/basic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.2",
"@sveltejs/kit": "^2.5.18",
"@sveltejs/vite-plugin-svelte": "^3.1.0",
"svelte": "^4.2.18",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.4",
"svelte": "5.0.0-next.192",
"svelte-check": "^3.8.4",
"typescript": "5.3.3",
"vite": "^5.3.3"
Expand Down
16 changes: 8 additions & 8 deletions examples/svelte/basic/src/lib/Post.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import { getPostById } from './data'
import type { Post } from './types'

export let postId: number
const { postId }: { postId: number } = $props()

const post = createQuery<Post>({
queryKey: ['post', postId],
Expand All @@ -15,17 +15,17 @@
<div>
<a class="button" href="/"> Back </a>
</div>
{#if !postId || $post.isPending}
{#if !postId || post.isPending}
<span>Loading...</span>
{/if}
{#if $post.error}
<span>Error: {$post.error.message}</span>
{#if post.error}
<span>Error: {post.error.message}</span>
{/if}
{#if $post.isSuccess}
<h1>{$post.data.title}</h1>
{#if post.isSuccess}
<h1>{post.data.title}</h1>
<div>
<p>{$post.data.body}</p>
<p>{post.data.body}</p>
</div>
<div>{$post.isFetching ? 'Background Updating...' : ' '}</div>
<div>{post.isFetching ? 'Background Updating...' : ' '}</div>
{/if}
</div>
10 changes: 5 additions & 5 deletions examples/svelte/basic/src/lib/Posts.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@

<div>
<div>
{#if $posts.status === 'pending'}
{#if posts.status === 'pending'}
<span>Loading...</span>
{:else if $posts.status === 'error'}
<span>Error: {$posts.error.message}</span>
{:else if posts.status === 'error'}
<span>Error: {posts.error.message}</span>
{:else}
<ul>
{#each $posts.data as post}
{#each posts.data as post}
<article>
<a
href={`/${post.id}`}
Expand All @@ -38,7 +38,7 @@
</article>
{/each}
</ul>
{#if $posts.isFetching}
{#if posts.isFetching}
<div style="color:darkgreen; font-weight:700">
Background Updating...
</div>
Expand Down
4 changes: 3 additions & 1 deletion examples/svelte/basic/src/routes/+layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import { QueryClientProvider, QueryClient } from '@tanstack/svelte-query'
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'

const { children } = $props()

const queryClient = new QueryClient({
defaultOptions: {
queries: {
Expand All @@ -15,7 +17,7 @@

<QueryClientProvider client={queryClient}>
<main>
<slot />
{@render children()}
</main>
<SvelteQueryDevtools />
</QueryClientProvider>
3 changes: 1 addition & 2 deletions examples/svelte/basic/src/routes/[postId]/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<script lang="ts">
import Post from '$lib/Post.svelte'
import type { PageData } from './$types'

export let data: PageData
const { data } = $props()
</script>

<Post postId={data.postId} />
4 changes: 2 additions & 2 deletions examples/svelte/load-more-infinite-scroll/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.2",
"@sveltejs/kit": "^2.5.18",
"@sveltejs/vite-plugin-svelte": "^3.1.0",
"svelte": "^4.2.18",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.4",
"svelte": "5.0.0-next.192",
"svelte-check": "^3.8.4",
"typescript": "5.3.3",
"vite": "^5.3.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@
})
</script>

{#if $query.isPending}
{#if query.isPending}
Loading...
{/if}
{#if $query.error}
<span>Error: {$query.error.message}</span>
{#if query.error}
<span>Error: {query.error.message}</span>
{/if}
{#if $query.isSuccess}
{#if query.isSuccess}
<div>
{#each $query.data.pages as { results }}
{#each query.data.pages as { results }}
{#each results as planet}
<div class="card">
<div class="card-body">
Expand All @@ -44,12 +44,12 @@
</div>
<div>
<button
on:click={() => $query.fetchNextPage()}
disabled={!$query.hasNextPage || $query.isFetchingNextPage}
onclick={() => query.fetchNextPage()}
disabled={!query.hasNextPage || query.isFetchingNextPage}
>
{#if $query.isFetching}
{#if query.isFetching}
Loading more...
{:else if $query.hasNextPage}
{:else if query.hasNextPage}
Load More
{:else}Nothing more to load{/if}
</button>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import { QueryClientProvider, QueryClient } from '@tanstack/svelte-query'
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'

const { children } = $props()

const queryClient = new QueryClient({
defaultOptions: {
queries: {
Expand All @@ -15,7 +17,7 @@

<QueryClientProvider client={queryClient}>
<main>
<slot />
{@render children()}
</main>
<SvelteQueryDevtools />
</QueryClientProvider>
4 changes: 2 additions & 2 deletions examples/svelte/optimistic-updates-typescript/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.2",
"@sveltejs/kit": "^2.5.18",
"@sveltejs/vite-plugin-svelte": "^3.1.0",
"svelte": "^4.2.18",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.4",
"svelte": "5.0.0-next.192",
"svelte-check": "^3.8.4",
"typescript": "5.3.3",
"vite": "^5.3.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import { QueryClientProvider, QueryClient } from '@tanstack/svelte-query'
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'

const { children } = $props()

const queryClient = new QueryClient({
defaultOptions: {
queries: {
Expand All @@ -15,7 +17,7 @@

<QueryClientProvider client={queryClient}>
<main>
<slot />
{@render children()}
</main>
<SvelteQueryDevtools />
</QueryClientProvider>
Original file line number Diff line number Diff line change
Expand Up @@ -87,36 +87,36 @@
</p>

<form
on:submit={(e) => {
onsubmit={(e) => {
e.preventDefault()
e.stopPropagation()
$addTodoMutation.mutate(text)
addTodoMutation.mutate(text)
}}
>
<div>
<input type="text" bind:value={text} />
<button disabled={$addTodoMutation.isPending}>Create</button>
<button disabled={addTodoMutation.isPending}>Create</button>
</div>
</form>

{#if $todos.isPending}
{#if todos.isPending}
Loading...
{/if}
{#if $todos.error}
{#if todos.error}
An error has occurred:
{$todos.error.message}
{todos.error.message}
{/if}
{#if $todos.isSuccess}
{#if todos.isSuccess}
<div class="mb-4">
Updated At: {new Date($todos.data.ts).toLocaleTimeString()}
Updated At: {new Date(todos.data.ts).toLocaleTimeString()}
</div>
<ul>
{#each $todos.data.items as todo}
{#each todos.data.items as todo}
<li>{todo.text}</li>
{/each}
</ul>
{/if}
{#if $todos.isFetching}
{#if todos.isFetching}
<div style="color:darkgreen; font-weight:700">
'Background Updating...' : ' '
</div>
Expand Down
4 changes: 2 additions & 2 deletions examples/svelte/playground/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.2",
"@sveltejs/kit": "^2.5.18",
"@sveltejs/vite-plugin-svelte": "^3.1.0",
"svelte": "^4.2.18",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.4",
"svelte": "5.0.0-next.192",
"svelte-check": "^3.8.4",
"typescript": "5.3.3",
"vite": "^5.3.3"
Expand Down
4 changes: 3 additions & 1 deletion examples/svelte/playground/src/routes/+layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import { QueryClientProvider, QueryClient } from '@tanstack/svelte-query'
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'

const { children } = $props()

const queryClient = new QueryClient({
defaultOptions: {
queries: {
Expand All @@ -19,7 +21,7 @@

<QueryClientProvider client={queryClient}>
<div id="app">
<slot />
{@render children()}
</div>
<SvelteQueryDevtools />
</QueryClientProvider>
2 changes: 1 addition & 1 deletion examples/svelte/playground/src/routes/AddTodo.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<input bind:value={name} disabled={$addMutation.status === 'pending'} />

<button
on:click={() => $addMutation.mutate({ name, notes: name })}
onclick={() => $addMutation.mutate({ name, notes: name })}
disabled={$addMutation.status === 'pending' || !name}
>
Add Todo
Expand Down
Loading
Loading