UNPKG

@renegade-fi/core

Version:
49 lines (42 loc) 1.46 kB
import type { QueryOptions } from '@tanstack/query-core' import { type GetOrderMetadataErrorType, type GetOrderMetadataParameters, type GetOrderMetadataReturnType, getOrderMetadata, } from '../actions/getOrderMetadata.js' import type { Config } from '../createConfig.js' import type { Evaluate } from '../types/utils.js' import { type ScopeKeyParameter, filterQueryOptions } from './utils.js' export type GetOrderMetadataOptions = Evaluate< GetOrderMetadataParameters & ScopeKeyParameter > export function getOrderMetadataQueryOptions( config: Config, options: GetOrderMetadataOptions, ) { return { async queryFn({ queryKey }) { const { scopeKey: _, ...parameters } = queryKey[1] const orderMetadata = await getOrderMetadata(config, parameters) return orderMetadata ?? null }, queryKey: getOrderMetadataQueryKey({ scopeKey: config.state.id, ...options, }), } as const satisfies QueryOptions< GetOrderMetadataQueryFnData, GetOrderMetadataErrorType, GetOrderMetadataData, GetOrderMetadataQueryKey > } export type GetOrderMetadataQueryFnData = Evaluate<GetOrderMetadataReturnType> export type GetOrderMetadataData = GetOrderMetadataQueryFnData export function getOrderMetadataQueryKey(options: GetOrderMetadataOptions) { return ['order-metadata', filterQueryOptions(options)] as const } export type GetOrderMetadataQueryKey = ReturnType< typeof getOrderMetadataQueryKey >