@ace-fetch/core
Version:
Fetch Provider.
30 lines (29 loc) • 1.36 kB
TypeScript
import { type StringifyOptions } from 'query-string';
import type { FetchClient, Prefix, MethodUrl, MethodUrlFn, RegistApi, RequestConfig } from '../types';
/**
* form data serializer
* @param data request data
* @param options stringify options
*/
export declare function formDataSerializer(data: any, options?: StringifyOptions): string;
/**
* typed url with no local config
* @param strings TemplateStringsArray
* @param keys string key or function, function first argument is request params
* @returns the method url format function
*/
export declare function typedUrl<R = any, P extends Record<string, any> = any, D = any>(strings: TemplateStringsArray, ...keys: Array<string | Function>): MethodUrlFn<R, P, D>;
/**
* typed url with local config
* @param config local config object
* @returns template literals function
*/
export declare function typedUrl<R = any, P extends Record<string, any> = any, D = any>(config: Partial<RequestConfig<D>>): (strings: TemplateStringsArray, ...keys: Array<string | Function>) => MethodUrlFn<R, P, D>;
/**
* register api
* @param client fetch client
* @param definition typed request definition
* @param prefix base url
* @returns named fetch requests
*/
export declare function registApi<C extends Record<string, MethodUrl>>(client: FetchClient, definition: C, prefix?: Prefix): RegistApi<C>;