From 6ac7c705aa0f1f2f99a23c079309d00cd70a7d2d Mon Sep 17 00:00:00 2001 From: OrJDev Date: Mon, 1 May 2023 19:29:52 +0300 Subject: [PATCH 1/3] feat: queryOptions helper for solid-query --- packages/solid-query/src/createQuery.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/solid-query/src/createQuery.ts b/packages/solid-query/src/createQuery.ts index 6fe0643ecb..97cd690d26 100644 --- a/packages/solid-query/src/createQuery.ts +++ b/packages/solid-query/src/createQuery.ts @@ -34,6 +34,28 @@ type DefinedInitialDataOptions< } > +export function queryOptions< + TQueryFnData = unknown, + TError = unknown, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: UndefinedInitialDataOptions, +): UndefinedInitialDataOptions + +export function queryOptions< + TQueryFnData = unknown, + TError = unknown, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: DefinedInitialDataOptions, +): DefinedInitialDataOptions + +export function queryOptions(options: unknown) { + return options +} + export function createQuery< TQueryFnData = unknown, TError = DefaultError, From a8e815a7313a0c401a95de881089590a6b9005f3 Mon Sep 17 00:00:00 2001 From: OrJDev Date: Mon, 1 May 2023 19:33:52 +0300 Subject: [PATCH 2/3] add tests --- .../src/__tests__/createQuery.types.test.tsx | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/solid-query/src/__tests__/createQuery.types.test.tsx b/packages/solid-query/src/__tests__/createQuery.types.test.tsx index a21a610eca..61b0e8f281 100644 --- a/packages/solid-query/src/__tests__/createQuery.types.test.tsx +++ b/packages/solid-query/src/__tests__/createQuery.types.test.tsx @@ -1,3 +1,4 @@ +import { queryOptions } from '../createQuery' import { createQuery } from '../index' export type Equal = (() => T extends X ? 1 : 2) extends < @@ -31,6 +32,26 @@ describe('initialData', () => { }) }) + it('TData should be defined when passed through queryOptions', () => { + doNotExecute(() => { + const options = queryOptions(() => ({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: true, + }, + })) + const { data } = createQuery(options) + + const result: Expect> = true + return result + }) + }) + it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { doNotExecute(() => { const { data } = createQuery(() => ({ From de6ecb5df99700b3f5228ddc8f8c9b6fc8c4adda Mon Sep 17 00:00:00 2001 From: OrJDev Date: Mon, 1 May 2023 19:35:01 +0300 Subject: [PATCH 3/3] fix imports --- packages/solid-query/src/__tests__/createQuery.types.test.tsx | 3 +-- packages/solid-query/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/solid-query/src/__tests__/createQuery.types.test.tsx b/packages/solid-query/src/__tests__/createQuery.types.test.tsx index 61b0e8f281..3907f8351e 100644 --- a/packages/solid-query/src/__tests__/createQuery.types.test.tsx +++ b/packages/solid-query/src/__tests__/createQuery.types.test.tsx @@ -1,5 +1,4 @@ -import { queryOptions } from '../createQuery' -import { createQuery } from '../index' +import { createQuery, queryOptions } from '../index' export type Equal = (() => T extends X ? 1 : 2) extends < T, diff --git a/packages/solid-query/src/index.ts b/packages/solid-query/src/index.ts index 6c89680b95..c38b638810 100644 --- a/packages/solid-query/src/index.ts +++ b/packages/solid-query/src/index.ts @@ -15,7 +15,7 @@ export type { QueryClientConfig, InfiniteQueryObserverOptions, } from './QueryClient' -export { createQuery } from './createQuery' +export { createQuery, queryOptions } from './createQuery' export { QueryClientContext, QueryClientProvider,