Files
dify/web/features/system-features/server.ts
T

36 lines
1.1 KiB
TypeScript

import type { GetSystemFeaturesResponse } from '@dify/contracts/api/console/system-features/types.gen'
import type { QueryClient } from '@tanstack/react-query'
import {
defaultShouldDehydrateQuery,
dehydrate,
hashKey,
queryOptions,
} from '@tanstack/react-query'
import {
getServerConsoleClientContext,
serverConsoleClient,
serverConsoleQuery,
} from '@/service/server'
const SYSTEM_FEATURES_REQUEST_TIMEOUT = 5_000
export const serverSystemFeaturesQueryOptions = () => {
return queryOptions<GetSystemFeaturesResponse>({
queryKey: serverConsoleQuery.systemFeatures.get.queryKey(),
queryFn: async ({ signal }) =>
serverConsoleClient.systemFeatures.get(undefined, {
context: await getServerConsoleClientContext(),
signal: AbortSignal.any([signal, AbortSignal.timeout(SYSTEM_FEATURES_REQUEST_TIMEOUT)]),
}),
})
}
export const dehydrateSystemFeatures = (queryClient: QueryClient) => {
const queryHash = hashKey(serverSystemFeaturesQueryOptions().queryKey)
return dehydrate(queryClient, {
shouldDehydrateQuery: (query) =>
query.queryHash === queryHash && defaultShouldDehydrateQuery(query),
})
}