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

docs(svelte-query): Rework SvelteKit setup #4811

Merged
merged 9 commits into from Jan 13, 2023
Merged

docs(svelte-query): Rework SvelteKit setup #4811

merged 9 commits into from Jan 13, 2023

Conversation

lachlancollins
Copy link
Member

This PR uses some of the lessons learned from #4798 to propose a standardised way to use svelte-query in SvelteKit.

Changes:

  • Updated docs with recommended way to initialise svelte-query in SvelteKit
  • Provided links to these instructions from the overview
  • Added this setup to all existing SvelteKit examples
  • Reworked the hydration example to match the docs (renamed example to ssr)
  • Migrated most examples (except simple) to SvelteKit

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jan 13, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit fe13c07:

Sandbox Source
@tanstack/query-example-react-basic-typescript Configuration
@tanstack/query-example-solid-basic-typescript Configuration
@tanstack/query-example-svelte-basic Configuration
@tanstack/query-example-vue-basic Configuration

@codecov-commenter
Copy link

Codecov Report

Base: 96.36% // Head: 91.32% // Decreases project coverage by -5.03% ⚠️

Coverage data is based on head (8af8ead) compared to base (eab6e2c).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4811      +/-   ##
==========================================
- Coverage   96.36%   91.32%   -5.04%     
==========================================
  Files          45      110      +65     
  Lines        2281     4116    +1835     
  Branches      640     1057     +417     
==========================================
+ Hits         2198     3759    +1561     
- Misses         80      336     +256     
- Partials        3       21      +18     
Impacted Files Coverage Δ
src/react/logger.ts
src/react/QueryErrorResetBoundary.tsx
src/core/utils.ts
src/core/infiniteQueryObserver.ts
src/core/logger.ts
src/core/mutationCache.ts
src/core/mutation.ts
src/devtools/useLocalStorage.ts
src/core/queryClient.ts
src/react/useQuery.ts
... and 145 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@TkDodo
Copy link
Collaborator

TkDodo commented Jan 13, 2023

hmm I just checked the old examples and they don't really work on the TanStack page. I'm getting:

yarn install v1.22.19
info No lockfile found.
[1/4] Resolving packages...
warning svelte-check > svelte-preprocess > magic-string > sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
warning svelte-check > svelte-preprocess > sorcery > sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
⡀ supports-preserve-symlinks-flag@^1.[2/4] Fetching packages...
[-----------------------------------------------------------------------]error @sveltejs/kit@1.0.12: The engine "node" is incompatible with this module. Expected version "^16.14 || >=18". Got "14.19.3"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn run v1.22.19
$ vite dev
/bin/sh: 1: vite: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run v1.22.19
$ vite dev
/bin/sh: 1: vite: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run v1.22.19
$ vite dev
/bin/sh: 1: vite: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run v1.22.19
$ vite dev
/bin/sh: 1: vite: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@lachlancollins
Copy link
Member Author

@TkDodo oh I didn't even notice they were broken before. SvelteKit only supports Node 16 and up - any chance the sandbox environment can be updated?

@TkDodo
Copy link
Collaborator

TkDodo commented Jan 13, 2023

are they using a lower version of node? I wouldn't know where to customize this. For the preview sandboxes, we use node16:

"node": "16"

@lachlancollins
Copy link
Member Author

[-----------------------------------------------------------------------]error @sveltejs/kit@1.0.12: The engine "node" is incompatible with this module. Expected version "^16.14 || >=18". Got "14.19.3"
error Found incompatible module.

Seems like something is setting it to Node 14 based on this line. I'll try to track down where that might be tomorrow, and I might ask in the discord. Since the setting is probably external to this repository, are you able to merge this as-is, or would you rather I downgrade the basic example to Svelte/Vite for now?

@TkDodo TkDodo merged commit 2cd92ef into TanStack:main Jan 13, 2023
@lachlancollins lachlancollins deleted the rework-examples branch January 13, 2023 12:48
TkDodo added a commit that referenced this pull request Jan 25, 2023
* feat(svelte-query): Svelte Query Adapter for TanStack Query (#4768)

* feat: svelte-query adapter

* add examples

* add @testing-library/svelte and svelte-jester

* add transform for testing svelte components

* re-export @tanstack/core core

* add a few initial test

* delete tests in examples

* use ^ in dependencies

* delete and gitignore .vscode

* rename basic-typescript to basic

* add basic example to ci.json

* remove transform from global preset

* update version

* don't gitignore lib directory in svelte examples

* fix build files location in package.json

* chore: prettier formatting

* add missing state

* chore: fix eslint errors

* add context

* unsubscribe

* add missing export

* use svelte context

* update version

* update examples to use context

* release: v4.14.5

* remove onMount

* add onMount to setQueryClient

* remove unneeded exports

* Add basic svelte docs overview

* Add SvelteKit 1.0 example

Uses the data from the simple example

* Edit nodeResolve settings

* More rollup and babel tweaks

Seems to be working

* Try svelte plugin options

* Separate out svelte config

* Switch to svelte-package

* Reset rollup config

* Output to ./build

* Use vitest in svelte-query

* Fix test imports

* Avoid transpiling TS during typecheck

* Fix vitest command

* More vitest migration work

* Minor fixes to tests

* Rename file to types.d.ts

* Replace setQueryContext with QueryClientProvider

* Replace tabs with spaces for repo consistency

* Update examples to sveltekit 1.0

* Implement Hydrate component

* Add playground example

Rewrite of the react example

* Start adding star-wars example

* Add films and film pages

* Finish star-wars example

* Rename store functions with create prefix

* Add correct favicons

* Reorder some files in svelte-query

* Undo rollup.config.ts changes

* Add new createQuery and createMutation tests

* More descriptive test name

* Misc fixes from feedback

- Max TS 4.7.4
- Move root package.json dependencies
- Use object syntax
- Use test:jest script (for now)
- Remove sveltekit autogenerated files

* Fix pnpm-lock

* Specify svelte-package source, update TS to 4.7.4

* Remove unnecessary packages in examples

* Sync pnpm-lock

* Reset pnpm-lock to upstream

* Run pnpm install

* Remove svelte-query from root tsconfg

Needs to be run from its own svelte-check package... sorry

* Run prettier, remove unused import

* Run prettier on svelte files

Requires prettier-plugin-svelte to run

* Prettier for changed files

* Fix cipublish from svelte-query

* rimraf to remove build/lib/package.json

* Run svelte-kit sync before vitest

* Add files field to package.json

* Add types field to package.json

* Bump svelte-query version to 4.20.0

In case this fixes the CI issue

* Add path alias to vitest

* Update vitest to 0.26

Changes module resolution?

* More CI improvements

* Remove --parallel from pnpm scripts

* Remove unused dependency

* Add eslint settings

Thanks @rivo420

* Add coverage report

Co-authored-by: DeAndre Johnson <dre@phreshr.com>
Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

RELEASE_ALL

* chore: Remove incompatible vitest flag from test:ci (#4777)

* Remove coverage flag

Add back again in a simpler script setup

* Allow coverage to run on test:ci

* release: v4.21.0

* feat: export default hydration methods for easier extension in `dehydrateOptions` (#4751)

* export default hydration metods to allow for easier extending

* pretty

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* release: v4.22.0

* docs(svelte-query): Add installation and examples (#4781)

* chore: Restructure package scripts (#4779)

* Use rimraf for clean script

Supported on windows

* Restructure jest tests, types test, and building types

* Relative eslint and jest paths are not needed

Now works on windows too, and tested to make sure it doesn't break linux

* Run codemod tests from main jest.config.ts

--collectCoverage false breaks when passed in to the union of these

* Remove unused test:lib scripts

* Add prettier-plugin-svelte

* Call test:types in github workflow

* Add missing build:types to query-async-storage-persister

* Simplify build script

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* docs(svelte-query): Add SSR and SvelteKit guide (#4786)

* Add SSR docs

* Remove semicolons to match project style

* docs: fix sveltekit SSR link (#4792)

* fix(svelte-query): Remove dependency on SvelteKit (#4788)

* Use rimraf for clean script

Supported on windows

* Restructure jest tests, types test, and building types

* Relative eslint and jest paths are not needed

Now works on windows too, and tested to make sure it doesn't break linux

* Run codemod tests from main jest.config.ts

--collectCoverage false breaks when passed in to the union of these

* Remove unused test:lib scripts

* Add prettier-plugin-svelte

* Call test:types in github workflow

* Add missing build:types to query-async-storage-persister

* Build without sveltekit

* Update vite-plugin-svelte to 2.0

* Add dev/watch script to svelte-query

* Replace sveltePreprocess with vitePreprocess

* Fix example component and indentation

* Remove dev/watch

Breaks setup because it adds package.json that isn't removed by rimraf

* Move /src/lib to /src, ignore __tests__ in build

* Fix tsconfig included files

* Replace tabs with spaces

* Whoops messed up merge

* Add more tsconfig.json settings

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* release: v4.22.1

* refactor(svelte-query): Clean-up type definitions (#4800)

* Simplify types

* Run prettier

* Add reactivity docs, rename example

* This function does not need to be reactive

* release: v4.22.2

* docs(svelte-query): Expand SSR docs (#4809)

* docs(svelte-query): Expand SSR docs

* Expand wording

* Run prettier

* docs: Update devtools.md with note that mutations are not tracked (#4810)

This can save others some time browsing around trying to get it to work

* docs: clarify interaction of query filter predicates with other criteria (#4532)

* docs: clarify interaction of query filter predicates with other criteria

* Update docs/guides/filters.md

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* Update docs/guides/filters.md

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* docs(svelte-query): Rework SvelteKit setup (#4811)

* Add some default options

* Rewrite hydration example

* Run prettier

* Rename example to SSR

* Add recommended SvelteKit setup

* Rework infinite scroll in sveltekit

* Add SvelteKit note to overview

* Switch basic example to sveltekit

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* chore: Add sandbox.config.json (#4812)

* docs: fix typo (quey -> query) (#4813)

* docs(svelte-query): Add recommended defaults to prefetchQuery setup (#4815)

* Add recommended defaults to prefetch example

* Move SSR docs up in sidebar

* docs: update tkdodos blog (#4820)

* docs: clarify the documentation on running examples (#4818)

* docs: clarify the documentation on running examples

* docs: use the proper watch command in docs for running examples

* chore: fix duplicated example package name (#4823)

* test: stabilize various tests (#4825)

* test: stabilize various tests

* chore: bump istanbul version

* docs(useMutation): clarify `mutationFn` option default (#4837)

* docs(useMutation): clarify `mutationFn` option default

* Make optionality consistent with `useQuery` documentation

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* fix(svelte-query): Fix createMutation for functions that take no arguments (#4847)

* Update createMutation test function name

* Default TVariables = void

* Fix createMutation test

* Fix prettier

* release: v4.22.3

* fix(core): do not call mutate callbacks if mutation started after unmount (#4848)

* test: add mutation callback after unmount test

* test: make test more resilient

* fix(core): do not call mutate callbacks if mutation started after unmount

* test: adapt tests to what we have in v5

- one test has been removed (because setState was removed entirely)
- the second test has been re-written to not use internals anymore, and it works in v4 as well

* fix(core): do not call mutate callbacks if mutation started after unmount

by making sure the callbacks are only invoked if we have an active listener

* chore: prettier again

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* release: v4.22.4

* docs(useMutation): correct docs for mutate function callbacks (#4601)

* docs(useMutation): correct docs for mutate function callbacks

* docs: fix merge conflicts

Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>

* docs: add QueryClient import (#4856)

* docs: add readme.md to react adapter

* Fix createQuery

* Finish svelte-query changes

* Run prettier

* Fix initial merge

* Fix examples

* Fix prettier again

Co-authored-by: Tanner Linsley <tannerlinsley@users.noreply.github.com>
Co-authored-by: Manthan Mallikarjun <nahtnam@gmail.com>
Co-authored-by: Dominik Dorfmeister <office@dorfmeister.cc>
Co-authored-by: ottomated <31470743+ottomated@users.noreply.github.com>
Co-authored-by: Joseph Markus <joseph.markus@outlook.com>
Co-authored-by: Ben Longo <11063448+benlongo@users.noreply.github.com>
Co-authored-by: Masaki Koyanagi <mascii@gmail.com>
Co-authored-by: Michal Tecza <zorza2@gmail.com>
Co-authored-by: Louis Young <me@louisyoung.co.uk>
Co-authored-by: Jan <39303600+janlat@users.noreply.github.com>
Co-authored-by: Qz <38932402+QzCurious@users.noreply.github.com>
Co-authored-by: Joël Kuijper <31251240+Joehoel@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants