denwa-react-shared
Version:
28 lines (27 loc) • 1.2 kB
TypeScript
import { AxiosRequestConfig } from 'axios';
import { MethodType } from '../const/methods.js';
import { RoutePath, RouteQuery, RoutesForMethod, SchemaType } from './schemeTypes.js';
import { QuerySerializationParams } from './serializer.js';
import { MakeNeverEmpty } from './utils.js';
/**
* @description Type for valid status codes used in OpenAPI requests
*/
export type ValidStatusType = 'all' | 'axios' | 'fetch';
/**
* @description Interface for options passed to OpenAPI requests using Axios
*/
export interface IOpenApiAxiosOptions<Status extends ValidStatusType> {
validStatus: Status;
querySerializationParams?: QuerySerializationParams;
}
/**
* @description Defines options that include path and query parameters, Axios configuration, and valid status codes
*/
export type OptionsType<Schema extends SchemaType, Method extends MethodType, Route extends RoutesForMethod<Schema, Method>, Status extends ValidStatusType | undefined = undefined> = MakeNeverEmpty<{
params: RoutePath<Schema, Method, Route>;
query: RouteQuery<Schema, Method, Route>;
}> & {
axios?: AxiosRequestConfig;
validStatus?: Status;
querySerializationParams?: QuerySerializationParams;
};