@renegade-fi/core
Version:
VanillaJS library for Renegade
45 lines (38 loc) • 1.32 kB
text/typescript
import type { QueryOptions } from '@tanstack/query-core'
import {
type GetNetworkOrdersErrorType,
type GetNetworkOrdersReturnType,
getNetworkOrders,
} from '../actions/getNetworkOrders.js'
import type { Config } from '../createConfig.js'
import type { Evaluate } from '../types/utils.js'
import { type ScopeKeyParameter, filterQueryOptions } from './utils.js'
export type GetNetworkOrdersOptions = Evaluate<ScopeKeyParameter>
export function getNetworkOrdersQueryOptions(
config: Config,
options: GetNetworkOrdersOptions = {},
) {
return {
async queryFn({ queryKey }) {
const { scopeKey: _ } = queryKey[1]
const history = await getNetworkOrders(config)
return history ?? null
},
queryKey: getNetworkOrdersQueryKey(options),
} as const satisfies QueryOptions<
GetNetworkOrdersQueryFnData,
GetNetworkOrdersErrorType,
GetNetworkOrdersData,
GetNetworkOrdersQueryKey
>
}
export type GetNetworkOrdersQueryFnData = Evaluate<GetNetworkOrdersReturnType>
export type GetNetworkOrdersData = GetNetworkOrdersQueryFnData
export function getNetworkOrdersQueryKey(
options: GetNetworkOrdersOptions = {},
) {
return ['network-orders', filterQueryOptions(options)] as const
}
export type GetNetworkOrdersQueryKey = ReturnType<
typeof getNetworkOrdersQueryKey
>