Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 7 additions & 5 deletions docs/framework/lit/guides/infinite-queries.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -45,11 +45,13 @@ class ProjectsList extends LitElement {
?disabled=${!query.hasNextPage || query.isFetching}
@click=${() => this.projects.fetchNextPage()}
>
${query.isFetchingNextPage
? 'Loading more...'
: query.hasNextPage
? 'Load More'
: 'Nothing more to load'}
${
query.isFetchingNextPage
? 'Loading more...'
: query.hasNextPage
? 'Load More'
: 'Nothing more to load'
}
</button>
`
}
Expand Down
8 changes: 5 additions & 3 deletions docs/framework/lit/guides/mutations.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -110,9 +110,11 @@ The accessor includes `reset`:

```ts
html`
${mutation.isError
? html`<button @click=${() => this.addTodo.reset()}>Clear error</button>`
: null}
${
mutation.isError
? html`<button @click=${() => this.addTodo.reset()}>Clear error</button>`
: null
}
`
```

Expand Down
3 changes: 1 addition & 2 deletions docs/framework/lit/guides/ssr.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -78,8 +78,7 @@ queryClient.mount()
hydrate(queryClient, dehydratedState)

const appElement = document.querySelector('ssr-app') as
| (HTMLElement & { queryClient?: QueryClient })
| null
(HTMLElement & { queryClient?: QueryClient }) | null

if (!appElement) {
throw new Error('Expected the SSR app element to exist before hydration.')
Expand Down
18 changes: 12 additions & 6 deletions examples/lit/basic/src/basic-query.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,12 +53,18 @@ class BasicQueryExample extends LitElement {
Refetch
</button>

${query.isPending
? html`<p data-testid="basic-loading">Loading...</p>`
: null}
${query.isError
? html`<p data-testid="basic-error">Error: ${String(query.error)}</p>`
: null}
${
query.isPending
? html`<p data-testid="basic-loading">Loading...</p>`
: null
}
${
query.isError
? html`<p data-testid="basic-error">
Error: ${String(query.error)}
</p>`
: null
}

<ul data-testid="basic-todo-list">
${(query.data?.items ?? []).map(
Expand Down
20 changes: 12 additions & 8 deletions examples/lit/basic/src/main.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -235,14 +235,18 @@ class TanstackLitQueryDemo extends LitElement {
</button>
</section>

${query.isError
? html`<div data-testid="query-error">${String(query.error)}</div>`
: null}
${mutation.isError
? html`<div data-testid="mutation-error">
${String(mutation.error)}
</div>`
: null}
${
query.isError
? html`<div data-testid="query-error">${String(query.error)}</div>`
: null
}
${
mutation.isError
? html`<div data-testid="mutation-error">
${String(mutation.error)}
</div>`
: null
}

<ul data-testid="todo-list">
${todos.map(
Expand Down
52 changes: 31 additions & 21 deletions examples/lit/pagination/src/main.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -416,12 +416,16 @@ class PaginationDemo extends LitElement {
</div>
</section>

${query.isError
? html`<p data-testid="query-error">${String(query.error)}</p>`
: null}
${this.resetError
? html`<p data-testid="reset-error">${this.resetError}</p>`
: null}
${
query.isError
? html`<p data-testid="query-error">${String(query.error)}</p>`
: null
}
${
this.resetError
? html`<p data-testid="reset-error">${this.resetError}</p>`
: null
}

<section>
<label for="delayInput">Delay (ms)</label>
Expand DownExpand Up@@ -470,22 +474,26 @@ class PaginationDemo extends LitElement {
<div data-testid="mutation-control-status">
mutation-control: ${this.mutationControlStatus}
</div>
${this.mutationControlError
? html`<div data-testid="mutation-control-error">
${this.mutationControlError}
</div>`
: null}
${
this.mutationControlError
? html`<div data-testid="mutation-control-error">
${this.mutationControlError}
</div>`
: null
}
</section>

<section>
<div data-testid="create-mutation-status">
create-mutation: ${createProject.status}
</div>
${createProject.isError
? html`<div data-testid="create-mutation-error">
${String(createProject.error)}
</div>`
: null}
${
createProject.isError
? html`<div data-testid="create-mutation-error">
${String(createProject.error)}
</div>`
: null
}

<label for="projectNameInput">Project name</label>
<input
Expand DownExpand Up@@ -516,11 +524,13 @@ class PaginationDemo extends LitElement {
<div data-testid="favorite-mutation-status">
favorite-mutation: ${favoriteProject.status}
</div>
${favoriteProject.isError
? html`<div data-testid="favorite-mutation-error">
${String(favoriteProject.error)}
</div>`
: null}
${
favoriteProject.isError
? html`<div data-testid="favorite-mutation-error">
${String(favoriteProject.error)}
</div>`
: null
}
</section>

<section>
Expand Down
62 changes: 31 additions & 31 deletions package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,47 +43,47 @@
]
},
"devDependencies": {
"@arethetypeswrong/cli": "^0.15.3",
"@arethetypeswrong/cli": "^0.18.5",
"@changesets/changelog-github": "^0.7.0",
"@changesets/cli": "^2.29.8",
"@cspell/eslint-plugin": "^9.2.1",
"@eslint-react/eslint-plugin": "^2.0.1",
"@size-limit/preset-small-lib": "^12.0.0",
"@changesets/cli": "^2.31.1",
"@cspell/eslint-plugin": "^9.8.0",
"@eslint-react/eslint-plugin": "^2.13.0",
"@size-limit/preset-small-lib": "^12.1.0",
"@tanstack/eslint-config": "0.3.2",
"@tanstack/typedoc-config": "0.3.1",
"@tanstack/vite-config": "0.4.3",
"@testing-library/jest-dom": "^6.8.0",
"@types/node": "^22.15.3",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@testing-library/jest-dom": "^6.10.0",
"@types/node": "^22.20.1",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.4",
"@vitest/coverage-istanbul": "4.0.6",
"@vitest/eslint-plugin": "^1.4.0",
"@vitest/eslint-plugin": "^1.6.27",
"esbuild-plugin-file-path-extensions": "^2.1.4",
"eslint": "^9.36.0",
"eslint": "^9.39.5",
"eslint-plugin-react-hooks": "^6.1.1",
"jsdom": "^27.0.0",
"knip": "^6.0.2",
"markdown-link-extractor": "^4.0.2",
"jsdom": "^27.4.0",
"knip": "6.1.1",
"markdown-link-extractor": "^4.0.4",
"nx": "22.1.3",
"premove": "^4.0.0",
"prettier": "^3.7.4",
"prettier-plugin-svelte": "^3.4.0",
"publint": "^0.3.13",
"react": "^19.2.1",
"react-dom": "^19.2.1",
"sherif": "^1.6.1",
"size-limit": "^12.0.0",
"tinyglobby": "^0.2.15",
"tsup": "^8.4.0",
"prettier": "^3.9.6",
"prettier-plugin-svelte": "^3.5.2",
"publint": "^0.3.23",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"sherif": "^1.13.0",
"size-limit": "^12.1.0",
"tinyglobby": "^0.2.17",
"tsup": "^8.5.1",
"typescript": "5.9.3",
"typescript54": "npm:typescript@5.4",
"typescript55": "npm:typescript@5.5",
"typescript56": "npm:typescript@5.6",
"typescript57": "npm:typescript@5.7",
"typescript58": "npm:typescript@5.8",
"typescript59": "npm:typescript@5.9",
"typescript54": "npm:typescript@~5.4.5",
"typescript55": "npm:typescript@~5.5.4",
"typescript56": "npm:typescript@~5.6.3",
"typescript57": "npm:typescript@~5.7.3",
"typescript58": "npm:typescript@~5.8.3",
"typescript59": "npm:typescript@~5.9.3",
"typescript60": "npm:typescript@6.0.1-rc",
"vite": "^6.4.1",
"vitest": "^4.0.18"
"vite": "^6.4.3",
"vitest": "^4.1.10"
}
}
2 changes: 1 addition & 1 deletion packages/angular-query-experimental/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -94,7 +94,7 @@
"@angular/platform-browser": "^20.0.0",
"@tanstack/query-test-utils": "workspace:*",
"@testing-library/angular": "^18.0.0",
"npm-run-all2": "^5.0.0",
"npm-run-all2": "^9.0.3",
"rxjs": "^7.8.2",
"vite-plugin-dts": "4.2.3",
"vite-plugin-externalize-deps": "^0.9.0",
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,9 +36,9 @@ export const expectSignals = <T extends Record<string, any>>(
}

type ToSignalInputUpdatableMap<T> = {
[K in keyof T as T[K] extends InputSignal<any>
? K
: never]: T[K] extends InputSignal<infer Value> ? Value : never
[
K in keyof T as T[K] extends InputSignal<any> ? K : never
]: T[K] extends InputSignal<infer Value> ? Value : never
}

function componentHasSignalInputProperty<TProperty extends string>(
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,8 +12,7 @@ export const PENDING_TASKS = new InjectionToken<PendingTasksCompat>(
factory: (): PendingTasksCompat => {
// Access via Reflect so bundlers stay quiet when the token is absent (Angular < 19).
const token = Reflect.get(ng, 'PendingTasks') as unknown as
| Parameters<typeof inject>[0]
| undefined
Parameters<typeof inject>[0] | undefined

const svc: PendingTasksCompat | null = token
? (inject(token, { optional: true }) as PendingTasksCompat | null)
Expand Down
3 changes: 1 addition & 2 deletions packages/angular-query-experimental/src/query-options.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,8 +47,7 @@ export type DefinedInitialDataOptions<
'queryFn'
> & {
initialData:
| NonUndefinedGuard<TQueryFnData>
| (() => NonUndefinedGuard<TQueryFnData>)
NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>)
queryFn?: QueryFunction<TQueryFnData, TQueryKey>
}

Expand Down
2 changes: 1 addition & 1 deletion packages/angular-query-persist-client/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@
"@testing-library/angular": "^18.0.0",
"@testing-library/dom": "^10.4.0",
"eslint-plugin-jsdoc": "^50.5.0",
"npm-run-all2": "^5.0.0"
"npm-run-all2": "^9.0.3"
},
"peerDependencies": {
"@angular/common": ">=16.0.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-query/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,7 +65,7 @@
"@typescript-eslint/rule-tester": "^8.48.0",
"combinate": "^1.1.11",
"eslint": "^9.36.0",
"npm-run-all2": "^5.0.0"
"npm-run-all2": "^9.0.3"
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
Expand Down
3 changes: 1 addition & 2 deletions packages/lit-query/src/QueryClientProvider.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -119,8 +119,7 @@ export class QueryClientProvider extends LitElement {
}

const previousClient = changedProperties.get('client') as
| QueryClient
| undefined
QueryClient | undefined
if (previousClient && previousClient !== nextClient && this.isConnected) {
this.unmountClient(previousClient)
}
Expand Down
5 changes: 1 addition & 4 deletions packages/lit-query/src/controllers/BaseController.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -7,10 +7,7 @@ import {
} from '../context.js'

type QueryClientResolutionState =
| 'pre-connect'
| 'awaiting-context'
| 'bound'
| 'missing'
'pre-connect' | 'awaiting-context' | 'bound' | 'missing'

export abstract class BaseController<TResult> implements ReactiveController {
protected result: TResult
Expand Down
3 changes: 1 addition & 2 deletions packages/lit-query/src/createMutationController.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -120,8 +120,7 @@ class MutationController<
CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>
>
private observer:
| MutationObserver<TData, TError, TVariables, TOnMutateResult>
| undefined
MutationObserver<TData, TError, TVariables, TOnMutateResult> | undefined
private unsubscribe: (() => void) | undefined
private queryClient: QueryClient | undefined

Expand Down
3 changes: 1 addition & 2 deletions packages/lit-query/src/queryOptions.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,8 +23,7 @@ export type DefinedInitialDataOptions<
'queryFn'
> & {
initialData:
| NonUndefinedGuard<TQueryFnData>
| (() => NonUndefinedGuard<TQueryFnData>)
NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>)
queryFn?: QueryFunction<TQueryFnData, TQueryKey>
}

Expand Down
2 changes: 1 addition & 1 deletion packages/preact-query-devtools/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -85,7 +85,7 @@
"@tanstack/preact-query": "workspace:*",
"@testing-library/preact": "^3.2.4",
"eslint-config-preact": "^2.0.0",
"npm-run-all2": "^5.0.0",
"npm-run-all2": "^9.0.3",
"preact": "^10.28.0",
"typescript": "5.9.3",
"typescript-eslint": "^8.54.0"
Expand Down
2 changes: 1 addition & 1 deletion packages/preact-query-persist-client/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,7 +65,7 @@
"@tanstack/query-test-utils": "workspace:*",
"@testing-library/preact": "^3.2.4",
"eslint-config-preact": "^2.0.0",
"npm-run-all2": "^5.0.0",
"npm-run-all2": "^9.0.3",
"preact": "^10.28.0",
"typescript": "5.9.3",
"typescript-eslint": "^8.54.0"
Expand Down
2 changes: 1 addition & 1 deletion packages/preact-query/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,7 +72,7 @@
"@testing-library/preact": "^3.2.4",
"cpy-cli": "^5.0.0",
"eslint-config-preact": "^2.0.0",
"npm-run-all2": "^5.0.0",
"npm-run-all2": "^9.0.3",
"preact": "^10.28.0",
"preact-render-to-string": "^6.6.4",
"typescript": "5.9.3",
Expand Down
3 changes: 1 addition & 2 deletions packages/preact-query/src/queryOptions.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -45,8 +45,7 @@ export type DefinedInitialDataOptions<
TQueryKey extends QueryKey = QueryKey,
> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
initialData:
| NonUndefinedGuard<TQueryFnData>
| (() => NonUndefinedGuard<TQueryFnData>)
NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>)
queryFn?: QueryFunction<TQueryFnData, TQueryKey>
}

Expand Down
Loading
Loading