Skip to content

Commit

Permalink
feat(solid-query): queryOptions helper for solid-query (#5355)
Browse files Browse the repository at this point in the history
* feat: queryOptions helper for solid-query

* add tests

* fix imports
  • Loading branch information
OrJDev authored May 2, 2023
1 parent d2c856c commit d24f44c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 2 deletions.
22 changes: 21 additions & 1 deletion packages/solid-query/src/__tests__/createQuery.types.test.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { createQuery } from '../index'
import { createQuery, queryOptions } from '../index'

export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
T,
Expand Down Expand Up @@ -31,6 +31,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<Equal<{ wow: boolean }, typeof data>> = 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(() => ({
Expand Down
22 changes: 22 additions & 0 deletions packages/solid-query/src/createQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,28 @@ type DefinedInitialDataOptions<
}
>

export function queryOptions<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>

export function queryOptions<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>

export function queryOptions(options: unknown) {
return options
}

export function createQuery<
TQueryFnData = unknown,
TError = DefaultError,
Expand Down
2 changes: 1 addition & 1 deletion packages/solid-query/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export type {
QueryClientConfig,
InfiniteQueryObserverOptions,
} from './QueryClient'
export { createQuery } from './createQuery'
export { createQuery, queryOptions } from './createQuery'
export {
QueryClientContext,
QueryClientProvider,
Expand Down

0 comments on commit d24f44c

Please sign in to comment.