From d63da393f51e119986518a7f1445ea24f67d5725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Curley?= Date: Thu, 8 Oct 2026 18:23:56 +0100 Subject: [PATCH] chore: replace prettier with oxfmt Swap the root formatter from Prettier to oxfmt, keeping the existing style (no semicolons, single quotes, trailing commas, 80 columns). The config and ignore patterns were migrated with `oxfmt --migrate=prettier`. - Pin `oxfmt` and declare `svelte` at the root, since oxfmt needs `svelte/compiler` to format `.svelte` files and only lists it as an optional peer - Port `scripts/generate-labeler-config.ts` to oxfmt's `format()` API (output is identical to Prettier's) - Reformat 30 files where oxfmt still uses the pre-3.9 Prettier layout for union types that break onto their own line, plus one CSS-in-JS value Co-Authored-By: Claude Opus 5.5 --- .oxfmtrc.json | 22 ++ .prettierignore | 11 - docs/framework/lit/guides/ssr.md | 3 +- examples/lit/ssr/src/app.ts | 6 +- package.json | 6 +- .../src/pending-tasks-compat.ts | 3 +- .../src/query-options.ts | 3 +- packages/lit-query/src/QueryClientProvider.ts | 3 +- .../__tests__/createQueryController.test-d.ts | 3 +- .../src/controllers/BaseController.ts | 5 +- .../lit-query/src/createMutationController.ts | 3 +- packages/lit-query/src/queryOptions.ts | 3 +- .../src/__tests__/useQuery.test-d.tsx | 3 +- packages/preact-query/src/queryOptions.ts | 3 +- packages/preact-query/src/suspense.ts | 3 +- .../__tests__/infiniteQueryBehavior.test.tsx | 15 +- .../query-core/src/__tests__/utils.test-d.tsx | 3 +- packages/query-core/src/query.ts | 3 +- packages/query-core/src/queryCache.ts | 3 +- packages/query-core/src/queryObserver.ts | 12 +- packages/query-core/src/types.ts | 20 +- packages/query-devtools/src/utils.tsx | 3 +- .../src/__tests__/useQuery.test-d.tsx | 3 +- packages/react-query/src/queryOptions.ts | 3 +- packages/react-query/src/suspense.ts | 3 +- packages/solid-query/src/QueryClient.ts | 8 +- packages/solid-query/src/useBaseQuery.ts | 4 +- packages/svelte-query/src/queryOptions.ts | 3 +- packages/vue-query/src/queryOptions.ts | 18 +- packages/vue-query/src/useBaseQuery.ts | 4 +- packages/vue-query/src/useIsFetching.ts | 3 +- packages/vue-query/src/useMutationState.ts | 3 +- packages/vue-query/src/useQuery.ts | 3 +- pnpm-lock.yaml | 247 ++++++++++++++++-- prettier.config.js | 12 - scripts/generate-labeler-config.ts | 37 +-- 36 files changed, 375 insertions(+), 115 deletions(-) create mode 100644 .oxfmtrc.json delete mode 100644 .prettierignore delete mode 100644 prettier.config.js diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 00000000000..d4c653a5b2b --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,22 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "semi": false, + "singleQuote": true, + "trailingComma": "all", + "printWidth": 80, + "sortPackageJson": false, + "svelte": {}, + "ignorePatterns": [ + "**/.next", + "**/.nx/cache", + "**/.svelte-kit", + "**/build", + "**/coverage", + "**/dist", + "**/query-codemods/**/__testfixtures__", + ".changeset/*.md", + "pnpm-lock.yaml", + "**/tsconfig.vitest-temp.json", + "docs/framework/*/reference" + ] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 8235ce8339d..00000000000 --- a/.prettierignore +++ /dev/null @@ -1,11 +0,0 @@ -**/.next -**/.nx/cache -**/.svelte-kit -**/build -**/coverage -**/dist -**/query-codemods/**/__testfixtures__ -.changeset/*.md -pnpm-lock.yaml -**/tsconfig.vitest-temp.json -docs/framework/*/reference diff --git a/docs/framework/lit/guides/ssr.md b/docs/framework/lit/guides/ssr.md index 8836699277d..3a42941848d 100644 --- a/docs/framework/lit/guides/ssr.md +++ b/docs/framework/lit/guides/ssr.md @@ -78,7 +78,8 @@ 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.') diff --git a/examples/lit/ssr/src/app.ts b/examples/lit/ssr/src/app.ts index 903bbcb2c9c..3b5b920af87 100644 --- a/examples/lit/ssr/src/app.ts +++ b/examples/lit/ssr/src/app.ts @@ -40,11 +40,7 @@ export class SsrApp extends LitElement { color: #1f2937; display: block; font-family: - ui-sans-serif, - system-ui, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', + ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width: 32rem; padding: 1.5rem; diff --git a/package.json b/package.json index e60b19c6c20..6b0376fbc58 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "build:all": "nx run-many --target=build --exclude=examples/** --exclude=integrations/**", "watch": "pnpm run build:all && nx watch --all -- pnpm run build:all", "dev": "pnpm run watch", - "format": "prettier --experimental-cli --ignore-unknown '**/*' --write", + "format": "oxfmt", "generate-docs": "tsc -b packages/query-devtools/tsconfig.json && node scripts/generate-docs.ts", "changeset": "changeset", "changeset:version": "changeset version && pnpm install --no-frozen-lockfile && pnpm format", @@ -66,12 +66,12 @@ "markdown-link-extractor": "^4.0.4", "npm-run-all2": "^9.0.3", "nx": "23.2.1", + "oxfmt": "0.72.0", "premove": "^4.0.0", - "prettier": "^3.9.9", - "prettier-plugin-svelte": "^4.1.1", "publint": "^0.3.24", "sherif": "^1.13.0", "size-limit": "^14.0.0", + "svelte": "catalog:", "tinyglobby": "^0.2.15", "tsdown": "^0.23.0", "typescript": "catalog:", diff --git a/packages/angular-query-experimental/src/pending-tasks-compat.ts b/packages/angular-query-experimental/src/pending-tasks-compat.ts index 253800d4c3c..c4eca3992aa 100644 --- a/packages/angular-query-experimental/src/pending-tasks-compat.ts +++ b/packages/angular-query-experimental/src/pending-tasks-compat.ts @@ -16,7 +16,8 @@ export const PENDING_TASKS = new InjectionToken( 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[0] | undefined + | Parameters[0] + | undefined const svc: PendingTasksCompat | null = token ? (inject(token, { optional: true }) as PendingTasksCompat | null) diff --git a/packages/angular-query-experimental/src/query-options.ts b/packages/angular-query-experimental/src/query-options.ts index bf86ea6eec2..38d6627943d 100644 --- a/packages/angular-query-experimental/src/query-options.ts +++ b/packages/angular-query-experimental/src/query-options.ts @@ -91,7 +91,8 @@ export type DefinedInitialDataOptions< * cache. */ initialData: - NonUndefinedGuard | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) /** * Optional here, but omitting it is only safe when no fetch will be attempted — for example with * `enabled: false`, or when a default query function has been defined. Otherwise, an enabled query with no diff --git a/packages/lit-query/src/QueryClientProvider.ts b/packages/lit-query/src/QueryClientProvider.ts index 77ec7611b11..a005a300918 100644 --- a/packages/lit-query/src/QueryClientProvider.ts +++ b/packages/lit-query/src/QueryClientProvider.ts @@ -133,7 +133,8 @@ export class QueryClientProvider extends LitElement { } const previousClient = changedProperties.get('client') as - QueryClient | undefined + | QueryClient + | undefined if (previousClient && previousClient !== nextClient && this.isConnected) { this.unmountClient(previousClient) } diff --git a/packages/lit-query/src/__tests__/createQueryController.test-d.ts b/packages/lit-query/src/__tests__/createQueryController.test-d.ts index 94ad7755fc5..34e3f0618a7 100644 --- a/packages/lit-query/src/__tests__/createQueryController.test-d.ts +++ b/packages/lit-query/src/__tests__/createQueryController.test-d.ts @@ -298,7 +298,8 @@ describe('createQueryController', () => { it('should preserve discriminated-union narrowing', () => { type Result = - { type: 'first'; first: string } | { type: 'second'; second: string } + | { type: 'first'; first: string } + | { type: 'second'; second: string } const query = createQueryController( new Host(), diff --git a/packages/lit-query/src/controllers/BaseController.ts b/packages/lit-query/src/controllers/BaseController.ts index 8f666c0fe14..93278147574 100644 --- a/packages/lit-query/src/controllers/BaseController.ts +++ b/packages/lit-query/src/controllers/BaseController.ts @@ -7,7 +7,10 @@ import type { QueryClient } from '@tanstack/query-core' import type { ReactiveController, ReactiveControllerHost } from 'lit' type QueryClientResolutionState = - 'pre-connect' | 'awaiting-context' | 'bound' | 'missing' + | 'pre-connect' + | 'awaiting-context' + | 'bound' + | 'missing' /** * Base class of the query controllers. It resolves the `QueryClient`, either diff --git a/packages/lit-query/src/createMutationController.ts b/packages/lit-query/src/createMutationController.ts index 73ea05ff592..bfe8f45a5c5 100644 --- a/packages/lit-query/src/createMutationController.ts +++ b/packages/lit-query/src/createMutationController.ts @@ -109,7 +109,8 @@ class MutationController< CreateMutationOptions > private observer: - MutationObserver | undefined + | MutationObserver + | undefined private unsubscribe: (() => void) | undefined private queryClient: QueryClient | undefined diff --git a/packages/lit-query/src/queryOptions.ts b/packages/lit-query/src/queryOptions.ts index 0849d8d2608..d1cca2c03d3 100644 --- a/packages/lit-query/src/queryOptions.ts +++ b/packages/lit-query/src/queryOptions.ts @@ -23,7 +23,8 @@ export type DefinedInitialDataOptions< 'queryFn' > & { initialData: - NonUndefinedGuard | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) queryFn?: QueryFunction } diff --git a/packages/preact-query/src/__tests__/useQuery.test-d.tsx b/packages/preact-query/src/__tests__/useQuery.test-d.tsx index c56766eec12..875a244b69c 100644 --- a/packages/preact-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/useQuery.test-d.tsx @@ -281,7 +281,8 @@ describe('useQuery', () => { it('should preserve discriminated-union narrowing', () => { type Result = - { type: 'first'; first: string } | { type: 'second'; second: string } + | { type: 'first'; first: string } + | { type: 'second'; second: string } const query = useQuery({ queryKey: queryKey(), diff --git a/packages/preact-query/src/queryOptions.ts b/packages/preact-query/src/queryOptions.ts index 7eac4a516e6..3d616841393 100644 --- a/packages/preact-query/src/queryOptions.ts +++ b/packages/preact-query/src/queryOptions.ts @@ -89,7 +89,8 @@ export type DefinedInitialDataOptions< * cache. */ initialData: - NonUndefinedGuard | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) /** * Optional here, but omitting it is only safe when no fetch will be attempted — for example with * `enabled: false`, or when a default query function has been defined. Otherwise, an enabled query with no diff --git a/packages/preact-query/src/suspense.ts b/packages/preact-query/src/suspense.ts index 047f21d41f0..540579955f9 100644 --- a/packages/preact-query/src/suspense.ts +++ b/packages/preact-query/src/suspense.ts @@ -68,7 +68,8 @@ export const ensureSuspenseTimers = ( */ export const shouldSuspend = ( defaultedOptions: - DefaultedQueryObserverOptions | undefined, + | DefaultedQueryObserverOptions + | undefined, result: QueryObserverResult, ) => defaultedOptions?.suspense && result.isPending diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index fff3fd18dcf..bde78a5e61e 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -31,7 +31,8 @@ describe('InfiniteQueryBehavior', () => { }) let observerResult: - InfiniteQueryObserverResult | undefined + | InfiniteQueryObserverResult + | undefined const unsubscribe = observer.subscribe((result) => { observerResult = result @@ -65,7 +66,8 @@ describe('InfiniteQueryBehavior', () => { }) let observerResult: - InfiniteQueryObserverResult | undefined + | InfiniteQueryObserverResult + | undefined const unsubscribe = observer.subscribe((result) => { observerResult = result @@ -208,7 +210,8 @@ describe('InfiniteQueryBehavior', () => { }) let observerResult: - InfiniteQueryObserverResult | undefined + | InfiniteQueryObserverResult + | undefined const unsubscribe = observer.subscribe((result) => { observerResult = result @@ -258,7 +261,8 @@ describe('InfiniteQueryBehavior', () => { }) let observerResult: - InfiniteQueryObserverResult | undefined + | InfiniteQueryObserverResult + | undefined const unsubscribe = observer.subscribe((result) => { observerResult = result @@ -446,7 +450,8 @@ describe('InfiniteQueryBehavior', () => { }) let observerResult: - InfiniteQueryObserverResult | undefined + | InfiniteQueryObserverResult + | undefined const unsubscribe = observer.subscribe((result) => { observerResult = result diff --git a/packages/query-core/src/__tests__/utils.test-d.tsx b/packages/query-core/src/__tests__/utils.test-d.tsx index a633009d63e..9dc7d597cd7 100644 --- a/packages/query-core/src/__tests__/utils.test-d.tsx +++ b/packages/query-core/src/__tests__/utils.test-d.tsx @@ -741,7 +741,8 @@ describe('skipToken', () => { describe('ensureQueryFn', () => { it('should accept a SkipToken in queryFn but never return one', () => { const queryFn = skipToken as - QueryFunction | SkipToken + | QueryFunction + | SkipToken expectTypeOf< Parameters>[0]['queryFn'] diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index a277e86a27d..14bf7f679fa 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -838,7 +838,8 @@ export class Query< // Try to fetch the data const retryer = (this.#retryer = createRetryer({ initialPromise: fetchOptions?.initialPromise as - Promise | undefined, + | Promise + | undefined, fn: context.fetchFn as () => Promise, onCancel: (error) => { if (error instanceof CancelledError && error.revert) { diff --git a/packages/query-core/src/queryCache.ts b/packages/query-core/src/queryCache.ts index 23f10d47c16..cbbff6c2af7 100644 --- a/packages/query-core/src/queryCache.ts +++ b/packages/query-core/src/queryCache.ts @@ -283,7 +283,8 @@ export class QueryCache extends Subscribable { queryHash: string, ): Query | undefined { return this.#queries.get(queryHash) as - Query | undefined + | Query + | undefined } /** diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index 1a7824afe4d..14c6195bbe1 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -426,7 +426,8 @@ export class QueryObserver< let unsubscribe = () => {} let resolveEarly: - ((result: QueryObserverResult) => void) | undefined + | ((result: QueryObserverResult) => void) + | undefined const cachePromise = new Promise>( (resolve) => { @@ -598,7 +599,8 @@ export class QueryObserver< const prevQuery = this.#currentQuery const prevOptions = this.options const prevResult = this.#currentResult as - QueryObserverResult | undefined + | QueryObserverResult + | undefined const prevResultState = this.#currentResultState const prevResultOptions = this.#currentResultOptions const queryChange = query !== prevQuery @@ -762,7 +764,8 @@ export class QueryObserver< */ updateResult(): void { const prevResult = this.#currentResult as - QueryObserverResult | undefined + | QueryObserverResult + | undefined const nextResult = this.createResult(this.#currentQuery, this.options) @@ -840,7 +843,8 @@ export class QueryObserver< } const prevQuery = this.#currentQuery as - Query | undefined + | Query + | undefined this.#currentQuery = query this.#currentQueryInitialState = query.state diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 77a27179d37..fac9b158bb2 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -30,10 +30,11 @@ export type DistributiveOmit< export type OmitKeyof< TObject, TKey extends (TStrictly extends 'safely' - ? | keyof TObject - | (string & Record) - | (number & Record) - | (symbol & Record) + ? + | keyof TObject + | (string & Record) + | (number & Record) + | (symbol & Record) : keyof TObject), TStrictly extends 'strictly' | 'safely' = 'strictly', > = Omit @@ -206,7 +207,8 @@ export type QueryBooleanOption< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = - boolean | ((query: Query) => boolean) + | boolean + | ((query: Query) => boolean) /** @inline */ export type QueryPersister< @@ -445,7 +447,8 @@ export interface QueryOptions< * @defaultValue true */ structuralSharing?: - boolean | ((oldData: unknown | undefined, newData: unknown) => unknown) + | boolean + | ((oldData: unknown | undefined, newData: unknown) => unknown) /** @internal */ _defaulted?: boolean /** @internal */ @@ -1380,7 +1383,10 @@ export interface QueryObserverPlaceholderResult< /** * A query result that always has `data`: the success and refetch error states. */ -export type DefinedQueryObserverResult = +export type DefinedQueryObserverResult< + TData = unknown, + TError = DefaultError, +> = | QueryObserverRefetchErrorResult | QueryObserverSuccessResult diff --git a/packages/query-devtools/src/utils.tsx b/packages/query-devtools/src/utils.tsx index 5ab760d92d4..23b8df048b9 100644 --- a/packages/query-devtools/src/utils.tsx +++ b/packages/query-devtools/src/utils.tsx @@ -350,7 +350,8 @@ export const deleteNestedDataByPath = ( * @param target - The shadow root to add the style tag to, instead of `document.head`. */ export const setupStyleSheet = (nonce?: string, target?: ShadowRoot) => { - if (!nonce) return // Goober reads window.__nonce__ every time it creates or accesses its style + if (!nonce) + return // Goober reads window.__nonce__ every time it creates or accesses its style // element (el.nonce = window.__nonce__). Without this, goober overwrites the // nonce we set on the pre-created element with undefined, clearing it. ;(window as any).__nonce__ = nonce diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index 544d7c97163..ef26c62dde4 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -270,7 +270,8 @@ describe('useQuery', () => { it('should preserve discriminated-union narrowing', () => { type Result = - { type: 'first'; first: string } | { type: 'second'; second: string } + | { type: 'first'; first: string } + | { type: 'second'; second: string } const query = useQuery({ queryKey: queryKey(), diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts index 678a4fd56a5..47a77e7c31a 100644 --- a/packages/react-query/src/queryOptions.ts +++ b/packages/react-query/src/queryOptions.ts @@ -88,7 +88,8 @@ export type DefinedInitialDataOptions< * cache. */ initialData: - NonUndefinedGuard | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) /** * Optional here, but omitting it is only safe when no fetch will be attempted — for example with * `enabled: false`, or when a default query function has been defined. Otherwise, an enabled query with no diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index 6d0534bef8b..608e2b8ee6c 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -67,7 +67,8 @@ export const ensureSuspenseTimers = ( */ export const shouldSuspend = ( defaultedOptions: - DefaultedQueryObserverOptions | undefined, + | DefaultedQueryObserverOptions + | undefined, result: QueryObserverResult, ) => defaultedOptions?.suspense && result.isPending diff --git a/packages/solid-query/src/QueryClient.ts b/packages/solid-query/src/QueryClient.ts index 30f9bb0f31d..6f199f449c5 100644 --- a/packages/solid-query/src/QueryClient.ts +++ b/packages/solid-query/src/QueryClient.ts @@ -44,7 +44,9 @@ export interface QueryObserverOptions< * Defaults reconciliation to false. */ reconcile?: - string | false | ((oldData: TData | undefined, newData: TData) => TData) + | string + | false + | ((oldData: TData | undefined, newData: TData) => TData) } /** @@ -78,7 +80,9 @@ export interface InfiniteQueryObserverOptions< * Defaults reconciliation to false. */ reconcile?: - string | false | ((oldData: TData | undefined, newData: TData) => TData) + | string + | false + | ((oldData: TData | undefined, newData: TData) => TData) } /** diff --git a/packages/solid-query/src/useBaseQuery.ts b/packages/solid-query/src/useBaseQuery.ts index a87bad1abcc..21d18612e42 100644 --- a/packages/solid-query/src/useBaseQuery.ts +++ b/packages/solid-query/src/useBaseQuery.ts @@ -37,7 +37,9 @@ function reconcileFn( store: QueryObserverResult, result: QueryObserverResult, reconcileOption: - string | false | ((oldData: TData | undefined, newData: TData) => TData), + | string + | false + | ((oldData: TData | undefined, newData: TData) => TData), queryHash?: string, ): QueryObserverResult { if (reconcileOption === false) return result diff --git a/packages/svelte-query/src/queryOptions.ts b/packages/svelte-query/src/queryOptions.ts index ae46fc469a9..4a67683bf2a 100644 --- a/packages/svelte-query/src/queryOptions.ts +++ b/packages/svelte-query/src/queryOptions.ts @@ -34,7 +34,8 @@ export type DefinedInitialDataOptions< TQueryKey extends QueryKey = QueryKey, > = CreateQueryOptions & { initialData: - NonUndefinedGuard | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) } /** diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index f1b31f127cf..bda81fb2cac 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -42,13 +42,14 @@ export type QueryOptions< TQueryKey > ]: Property extends 'enabled' - ? | MaybeRefOrGetter - | (() => QueryBooleanOption< - TQueryFnData, - TError, - TQueryData, - DeepUnwrapRef - >) + ? + | MaybeRefOrGetter + | (() => QueryBooleanOption< + TQueryFnData, + TError, + TQueryData, + DeepUnwrapRef + >) : Property extends 'queryKey' ? MaybeRefOrGetter : QueryObserverOptions< @@ -157,7 +158,8 @@ type WithDefinedInitialData = { * cache. Unlike `queryKey`/`enabled`, this is not reactive — it isn't re-evaluated on `ref` changes. */ initialData: - NonUndefinedGuard | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) } /** diff --git a/packages/vue-query/src/useBaseQuery.ts b/packages/vue-query/src/useBaseQuery.ts index c4c1c659393..c8051c8d1c3 100644 --- a/packages/vue-query/src/useBaseQuery.ts +++ b/packages/vue-query/src/useBaseQuery.ts @@ -34,7 +34,9 @@ export type UseBaseQueryReturnType< TResult = QueryObserverResult, > = { [K in keyof TResult]: K extends - 'fetchNextPage' | 'fetchPreviousPage' | 'refetch' + | 'fetchNextPage' + | 'fetchPreviousPage' + | 'refetch' ? TResult[K] : Ref[K]> } & { diff --git a/packages/vue-query/src/useIsFetching.ts b/packages/vue-query/src/useIsFetching.ts index 408ff26d0a2..99a190767fc 100644 --- a/packages/vue-query/src/useIsFetching.ts +++ b/packages/vue-query/src/useIsFetching.ts @@ -11,7 +11,8 @@ import type { QueryClient } from './queryClient' * getter. */ export type UseIsFetchingFilters = - MaybeRefDeep | (() => MaybeRefDeep) + | MaybeRefDeep + | (() => MaybeRefDeep) /** * The `useIsFetching` composable returns a `ref` to the `number` of the queries that your application is diff --git a/packages/vue-query/src/useMutationState.ts b/packages/vue-query/src/useMutationState.ts index d731c8d0936..4d29f2628d9 100644 --- a/packages/vue-query/src/useMutationState.ts +++ b/packages/vue-query/src/useMutationState.ts @@ -25,7 +25,8 @@ type VueMutationFilters = MaybeRefDeep * getter. */ export type UseIsMutatingFilters = - VueMutationFilters | (() => VueMutationFilters) + | VueMutationFilters + | (() => VueMutationFilters) /** * The `useIsMutating` composable returns a `ref` to the `number` of mutations that your application currently diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index 9275624ff9e..0e47e636804 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -305,6 +305,7 @@ export function useQuery< >, queryClient?: QueryClient, ): - UseQueryReturnType | UseQueryDefinedReturnType { + | UseQueryReturnType + | UseQueryDefinedReturnType { return useBaseQuery(QueryObserver, options, queryClient) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c47bad96af..496e5774ff0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -332,15 +332,12 @@ importers: nx: specifier: 23.2.1 version: 23.2.1 + oxfmt: + specifier: 0.72.0 + version: 0.72.0(svelte@5.57.1(@typescript-eslint/types@8.58.1)) premove: specifier: ^4.0.0 version: 4.0.0 - prettier: - specifier: ^3.9.9 - version: 3.9.9 - prettier-plugin-svelte: - specifier: ^4.1.1 - version: 4.1.1(prettier@3.9.9)(svelte@5.57.1(@typescript-eslint/types@8.58.1)) publint: specifier: ^0.3.24 version: 0.3.24 @@ -350,6 +347,9 @@ importers: size-limit: specifier: ^14.0.0 version: 14.0.0 + svelte: + specifier: 'catalog:' + version: 5.57.1(@typescript-eslint/types@8.58.1) tinyglobby: specifier: ^0.2.15 version: 0.2.17 @@ -7107,6 +7107,128 @@ packages: cpu: [x64] os: [win32] + '@oxfmt/binding-android-arm-eabi@0.72.0': + resolution: {integrity: sha512-u4U1uaDOVBuorGNC/07NLm48nECHOiJJka002YGML16Md2DRvf38RGBt01lH60EOGvNlFVmbLoksQedNBoZHKw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.72.0': + resolution: {integrity: sha512-GCnM+Ae2mWOKC+92y3FOb6eZJeVnBAVz82e3lITUUg+kxukYKzBNAvJ/hhHIfa2A0md55SYYhdWPddSSy3KPVA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.72.0': + resolution: {integrity: sha512-LjQ8tlevdtwraFlWC6AnQ1Forzde0clRmnsP3QmK+ydSElDt/J+5Jc+m+//Ly1G97aP7WCNUw110QMIUw2K7xA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.72.0': + resolution: {integrity: sha512-+ZbcxhB1C34RQR5IldSyY6Z/yalJIxHXhP36PGE4sEq0f/lgL5jCLmOKoDeVm8dqd9gFGDsd1bNWHSGCAwdSkw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.72.0': + resolution: {integrity: sha512-yGPhA8sePEBFV9iGcprhyOk3Bz3fZshswMH3DpYIPZFLT1DG5LjiZ0j6AJQpSueaL6bUK0av1K+5+fe+ldy5EQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.72.0': + resolution: {integrity: sha512-/g5axuqFMcAtoQrFLR5EJEMDjR5Ea4GuzpdDmMpPWAgrF1DmL4kD1NPNVlpXEOxpFJnD6lPvLKYj1lzdlrfifA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.72.0': + resolution: {integrity: sha512-InVitdHbS09PM+w+WinIiyX37rC9R3L7lUP9mKy9uKTEDSUFaLjWsLoreRIxKivnv7Ndqc6Trvi+K+b6ZzhiJg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.72.0': + resolution: {integrity: sha512-WKjlyRAxpPjXoqeuwFBim5LscgvY+RNEiZ971C9JlRQZONhJTsXDki/oHFYQE+fzzRpzXh3owZvOdT3kNL2g+g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-arm64-musl@0.72.0': + resolution: {integrity: sha512-poafnbsPpJhR+5Mbwpf8CscugTyiRAzjTOxRVn8ra3X2jnURs2xL5Du2xl5g2iW85lICMglpmLf8jDjZEbNgzQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-ppc64-gnu@0.72.0': + resolution: {integrity: sha512-zNUi0gKRsO7S3IfPzsTbnm88OedPuX32hmZFWZRWHvWJlAoZRwVbeO6Nb3hng4vDgL7qUKp4TGqzPz1mhsycYg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-gnu@0.72.0': + resolution: {integrity: sha512-qTY7z/iyF/rWI2HWwWMevXqZW5PZUOofUy2afK7v6rseXnpld3yjgyIk6pCux3DqWQ0lB+f5atvLJNBwzLvFsw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-musl@0.72.0': + resolution: {integrity: sha512-w18qfo8vEMD6EKEHtzTvjc6jH8yCyXIT1Bn7PFWJd0PpZyzH/VQDx4xvjCh0LGz6GRzqiezbisTdG9AoXtpkZQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-s390x-gnu@0.72.0': + resolution: {integrity: sha512-grW8HwEir+vK7fCcq1ZgL3NHQCfZ1PidiERE9Hbf+24xGys+DoDaoqTht4ccfn0PcBwbViLkwkda/KNpJu2KRQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-gnu@0.72.0': + resolution: {integrity: sha512-wQJRQfWBRIn88Pkr449EUViwRayrYUScg7ty+Ihiem21mQ9BUA6S9e/4RAgyNk9lMag0KBouyKskjq61rOC0WQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-musl@0.72.0': + resolution: {integrity: sha512-T1B0uQzafxuGPjjaPrZJ497nxoi1BiI65JfsYc56nNpmev3msfb/iaTmH2kQuNFqa8PKxpMlf3GhWrWBvBPORQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-openharmony-arm64@0.72.0': + resolution: {integrity: sha512-OKxxgTurl7+hypVplO8QRAbbQlwEs0j1Y6FZv+ZN2qNbdxQk2muMlzuJNBGTCWwxQ0rkkOD1uK/DW1fvzoUSJA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.72.0': + resolution: {integrity: sha512-L78TKzURqvjuZOCo88ixMbPXf/RP7u31Y0cmjJ/KEmrHmfYhmhEvsDaTYPiyTRne64jUgCbADfY0YeoQk4/Xyw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.72.0': + resolution: {integrity: sha512-gQtFW+Ii8BWgtJTAD17TY/WsdNS5gUfAPov8iI1jeq4r9lRRYImmxPL08UU00/RLaCfBJwh2UgINnDY0iOiZ+A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.72.0': + resolution: {integrity: sha512-uhooIN+DCzWX5uH7mQkSVCsODqsGluGJ4n3ch4+mITtWKpESMDjUJUSDBAVFuYQDwqY2McPDKdKJbM0oZVW/Qw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@package-json/types@0.0.12': resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} @@ -14209,6 +14331,19 @@ packages: oxc-resolver@11.24.2: resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==} + oxfmt@0.72.0: + resolution: {integrity: sha512-16OQeL0uhPZbfmT9S9WWM0Nv9+BmVi8Ra1uTYaSKj/qSCs6FB30KOhz9JoNYw6thT+K5bVxsk/tSEOu497i34g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + svelte: + optional: true + vite-plus: + optional: true + p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -14609,13 +14744,6 @@ packages: engines: {node: '>=6'} hasBin: true - prettier-plugin-svelte@4.1.1: - resolution: {integrity: sha512-wXvbXMjSvb4C9ENWTHXyd+ihakKCsJ6rJhLP6/8HFNj4GkZr48jqL9PoKsl2sk7SyCZRTnJ7O2TTowUpOxP/KA==} - engines: {node: '>=20'} - peerDependencies: - prettier: ^3.0.0 - svelte: ^5.0.0 - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -16133,6 +16261,10 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} + tinypool@2.2.0: + resolution: {integrity: sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@3.1.0: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} @@ -21546,6 +21678,63 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.24.2': optional: true + '@oxfmt/binding-android-arm-eabi@0.72.0': + optional: true + + '@oxfmt/binding-android-arm64@0.72.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.72.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.72.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.72.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.72.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.72.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.72.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.72.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.72.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.72.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.72.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.72.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.72.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.72.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.72.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.72.0': + optional: true + + '@oxfmt/binding-win32-ia32-msvc@0.72.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.72.0': + optional: true + '@package-json/types@0.0.12': {} '@parcel/watcher-android-arm64@2.5.6': @@ -30519,6 +30708,31 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2 '@oxc-resolver/binding-win32-x64-msvc': 11.24.2 + oxfmt@0.72.0(svelte@5.57.1(@typescript-eslint/types@8.58.1)): + dependencies: + tinypool: 2.2.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.72.0 + '@oxfmt/binding-android-arm64': 0.72.0 + '@oxfmt/binding-darwin-arm64': 0.72.0 + '@oxfmt/binding-darwin-x64': 0.72.0 + '@oxfmt/binding-freebsd-x64': 0.72.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.72.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.72.0 + '@oxfmt/binding-linux-arm64-gnu': 0.72.0 + '@oxfmt/binding-linux-arm64-musl': 0.72.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.72.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.72.0 + '@oxfmt/binding-linux-riscv64-musl': 0.72.0 + '@oxfmt/binding-linux-s390x-gnu': 0.72.0 + '@oxfmt/binding-linux-x64-gnu': 0.72.0 + '@oxfmt/binding-linux-x64-musl': 0.72.0 + '@oxfmt/binding-openharmony-arm64': 0.72.0 + '@oxfmt/binding-win32-arm64-msvc': 0.72.0 + '@oxfmt/binding-win32-ia32-msvc': 0.72.0 + '@oxfmt/binding-win32-x64-msvc': 0.72.0 + svelte: 5.57.1(@typescript-eslint/types@8.58.1) + p-finally@1.0.0: {} p-limit@2.3.0: @@ -30882,11 +31096,6 @@ snapshots: premove@4.0.0: {} - prettier-plugin-svelte@4.1.1(prettier@3.9.9)(svelte@5.57.1(@typescript-eslint/types@8.58.1)): - dependencies: - prettier: 3.9.9 - svelte: 5.57.1(@typescript-eslint/types@8.58.1) - prettier@2.8.8: optional: true @@ -32783,6 +32992,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 + tinypool@2.2.0: {} + tinyrainbow@3.1.0: {} tldts-core@6.1.86: {} diff --git a/prettier.config.js b/prettier.config.js deleted file mode 100644 index dbb08b11103..00000000000 --- a/prettier.config.js +++ /dev/null @@ -1,12 +0,0 @@ -// @ts-check - -/** @type {import('prettier').Config} */ -const config = { - semi: false, - singleQuote: true, - trailingComma: 'all', - plugins: ['prettier-plugin-svelte'], - overrides: [{ files: '*.svelte', options: { parser: 'svelte' } }], -} - -export default config diff --git a/scripts/generate-labeler-config.ts b/scripts/generate-labeler-config.ts index 77f4842d1bd..664064a5c5a 100644 --- a/scripts/generate-labeler-config.ts +++ b/scripts/generate-labeler-config.ts @@ -1,6 +1,6 @@ import * as fs from 'node:fs' import * as path from 'node:path' -import * as prettier from 'prettier' +import { format } from 'oxfmt' /** Pairs of package labels and their corresponding paths */ type LabelerPair = [string, string] @@ -52,24 +52,29 @@ async function generateLabelerYaml(pairs: Array): Promise { }) .join('\n') - // Get the location of the Prettier config file - const prettierConfigPath = await prettier.resolveConfigFile() - if (!prettierConfigPath) { + // Read the oxfmt config. `format()` does not discover config files itself. + const oxfmtConfigPath = path.resolve('.oxfmtrc.json') + if (!fs.existsSync(oxfmtConfigPath)) { throw new Error( - 'No Prettier config file found. Please ensure you have a Prettier config file in your project.', + 'No oxfmt config file found. Please ensure `.oxfmtrc.json` exists in the project root.', + ) + } + console.info('using oxfmt config file at:', oxfmtConfigPath) + + const oxfmtConfig = JSON.parse(fs.readFileSync(oxfmtConfigPath, 'utf-8')) + console.info('using resolved oxfmt config:', oxfmtConfig) + + // Format the YAML string using oxfmt + const { code: formattedStr, errors } = await format( + 'labeler-config.yml', + formattedPairs, + oxfmtConfig, + ) + if (errors.length > 0) { + throw new Error( + `Failed to format labeler config: ${errors.map((e) => e.message).join(', ')}`, ) } - console.info('using prettier config file at:', prettierConfigPath) - - // Resolve the Prettier config - const prettierConfig = await prettier.resolveConfig(prettierConfigPath) - console.info('using resolved prettier config:', prettierConfig) - - // Format the YAML string using Prettier - const formattedStr = await prettier.format(formattedPairs, { - parser: 'yaml', - ...prettierConfig, - }) return formattedStr }