@renegade-fi/core
Version:
VanillaJS library for Renegade
47 lines (40 loc) • 1.43 kB
text/typescript
import type { QueryOptions } from '@tanstack/query-core'
import {
type GetOrderHistoryErrorType,
type GetOrderHistoryParameters,
type GetOrderHistoryReturnType,
getOrderHistory,
} from '../actions/getOrderHistory.js'
import type { Config } from '../createConfig.js'
import type { Evaluate } from '../types/utils.js'
import { type ScopeKeyParameter, filterQueryOptions } from './utils.js'
export type GetOrderHistoryOptions = Evaluate<
GetOrderHistoryParameters & ScopeKeyParameter
>
export function getOrderHistoryQueryOptions(
config: Config,
options: GetOrderHistoryOptions = {},
) {
return {
async queryFn({ queryKey }) {
const { scopeKey: _, ...parameters } = queryKey[1]
const history = await getOrderHistory(config, parameters)
return history ?? null
},
queryKey: getOrderHistoryQueryKey({
scopeKey: config.state.id,
...options,
}),
} as const satisfies QueryOptions<
GetOrderHistoryQueryFnData,
GetOrderHistoryErrorType,
GetOrderHistoryData,
GetOrderHistoryQueryKey
>
}
export type GetOrderHistoryQueryFnData = Evaluate<GetOrderHistoryReturnType>
export type GetOrderHistoryData = GetOrderHistoryQueryFnData
export function getOrderHistoryQueryKey(options: GetOrderHistoryOptions = {}) {
return ['order-history', filterQueryOptions(options)] as const
}
export type GetOrderHistoryQueryKey = ReturnType<typeof getOrderHistoryQueryKey>