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 }