Skip to content

API Documentation / @pinia/colada / defineQueryOptions

Function: defineQueryOptions()

Define type-safe query options. Can be static or dynamic. Define the arguments based on what's needed on the query and the key. Use an object if you need multiple properties.

Param

The query options or a function that returns the query options.

Example

ts
import { defineQueryOptions } from '@pinia/colada'

const documentDetailsQuery = defineQueryOptions((id: number ) => ({
  key: ['documents', id],
  query: () => fetchDocument(id),
}))

queryCache.getQueryData(documentDetailsQuery(4).key) // typed

@NO_SIDE_EFFECTS

Call Signature

ts
function defineQueryOptions<Params, TData, TError, TDataInitial>(setupOptions): (params) => DefineQueryOptions<TData, TError, TDataInitial>;

Define dynamic query options by passing a function that accepts an arbitrary parameter and returns the query options. Enables type-safe query keys. Must be passed to useQuery alongside a getter for the params.

Type Parameters

Params

Params

TData

TData

TError

TError

TDataInitial

TDataInitial = undefined | TData

Parameters

setupOptions

(params) => DefineQueryOptions<TData, TError, TDataInitial>

A function that returns the query options.

Returns

ts
(params): DefineQueryOptions<TData, TError, TDataInitial>;

Parameters

params

Params

Returns

DefineQueryOptions<TData, TError, TDataInitial>

Param

The query options or a function that returns the query options.

Example

ts
import { defineQueryOptions } from '@pinia/colada'

const documentDetailsQuery = defineQueryOptions((id: number ) => ({
  key: ['documents', id],
  query: () => fetchDocument(id),
}))

queryCache.getQueryData(documentDetailsQuery(4).key) // typed

@NO_SIDE_EFFECTS

Call Signature

ts
function defineQueryOptions<TData, TError, TDataInitial>(options): DefineQueryOptions<TData, TError, TDataInitial>;

Define static query options that are type safe with queryCache.getQueryData(). Can be passed directly to useQuery.

Type Parameters

TData

TData

TError

TError

TDataInitial

TDataInitial = undefined | TData

Parameters

options

DefineQueryOptions<TData, TError, TDataInitial>

The query options.

Returns

DefineQueryOptions<TData, TError, TDataInitial>

Param

The query options or a function that returns the query options.

Example

ts
import { defineQueryOptions } from '@pinia/colada'

const documentDetailsQuery = defineQueryOptions((id: number ) => ({
  key: ['documents', id],
  query: () => fetchDocument(id),
}))

queryCache.getQueryData(documentDetailsQuery(4).key) // typed

@NO_SIDE_EFFECTS

Released under the MIT License.