import type { ResponseType, ResponseDetailsType, RequestInstance, ExtractResponseType, ExtractErrorType, ExtractAdapterType, HttpAdapterType, ExtractAdapterStatusType, ExtractAdapterExtraType, } from "@hyper-fetch/core"; import { xhrExtra } from "@hyper-fetch/core"; export const createCacheData = ( request: T, response?: { data?: ResponseType, ExtractErrorType, ExtractAdapterType>; details?: Partial; }, ) => { const dataValue: ResponseType< ExtractResponseType, ExtractErrorType, ExtractAdapterType > = response?.data || { data: { data: 1 } as ExtractResponseType, error: null, status: 200 as unknown as ExtractAdapterStatusType>, success: true, extra: xhrExtra as unknown as ExtractAdapterExtraType>, requestTimestamp: +new Date(), responseTimestamp: +new Date(), }; const detailsValue: ResponseDetailsType = { retries: 0, triggerTimestamp: +new Date(), addedTimestamp: +new Date(), requestTimestamp: +new Date(), responseTimestamp: +new Date(), isCanceled: false, isOffline: false, willRetry: false, ...response?.details, }; request.client.cache.storage.set(request.cacheKey, { ...(dataValue as any), ...detailsValue, staleTime: 1000, version: request.client.cache.version, cacheTime: Infinity, cached: true, }); return [dataValue, detailsValue] as const; };