UNPKG

@aspida/swr

Version:
37 lines 2.02 kB
import { SWRConfiguration, SWRResponse } from 'swr'; type ValueKey = string | any[] | null; type AspidaSWROption<T> = T & { /** * @deprecated * Will be dropped next major release. * Use key and fetcher options instead. * key: enabled ? undefined : null, * fetcher: enabled ? undefined : null */ enabled?: boolean; key?: ValueKey | (() => ValueKey); fetcher?: ((f: (opt: AspidaSWROption<T>) => any) => (opt: AspidaSWROption<T>) => any) | null | undefined; }; type Options<T extends (option: any) => Promise<any>> = Parameters<Parameters<T> extends [Parameters<T>[0]] ? (option: AspidaSWROption<Parameters<T>[0] & SWRConfiguration<ResponseData<T>>>) => void : (option?: AspidaSWROption<Parameters<T>[0] & SWRConfiguration<ResponseData<T>>>) => void>; type ResponseData<T extends (option: any) => Promise<any>> = ReturnType<T> extends Promise<infer S> ? S : never; declare function getAspidaSWRDefaultKey<T extends Record<string, any> & { $get: (option: any) => Promise<any>; $path: (option?: any) => string; }>(api: T, ...option: Options<T['$get']>): string[]; declare function getAspidaSWRDefaultKey<T extends Record<string, any> & { $path: (option?: any) => string; }, U extends { [K in keyof T]: T[K] extends (option: any) => Promise<any> ? K : never; }[keyof T]>(api: T, method: U, ...option: Options<T[U]>): string[]; export { getAspidaSWRDefaultKey as getSWRDefaultKey }; declare function useAspidaSWR<T extends Record<string, any> & { $get: (option: any) => Promise<any>; $path: (option?: any) => string; }>(api: T, ...option: Options<T['$get']>): SWRResponse<ResponseData<T['$get']>, any>; declare function useAspidaSWR<T extends Record<string, any> & { $path: (option?: any) => string; }, U extends { [K in keyof T]: T[K] extends (option: any) => Promise<any> ? K : never; }[keyof T]>(api: T, method: U, ...option: Options<T[U]>): SWRResponse<ResponseData<T[U]>, any>; export default useAspidaSWR; //# sourceMappingURL=index.d.ts.map