@jiaxinjiang/nest-http
Version:
Http request component for NestJs.
41 lines (40 loc) • 1.34 kB
TypeScript
import { AxiosRequestConfig, AxiosResponse } from 'axios';
import { FactoryProvider, Logger, LoggerService } from '@nestjs/common';
export declare enum ParameterStyle {
SNAKE_TO_CAMEL = "SnakeToCamel",
CAMEL_TO_SNAKE = "CamelToSnake"
}
export interface RequestConfig {
protocol?: 'http' | 'https' | 'http2';
timeout?: number;
timeoutErrorMessage?: string;
withCredentials?: boolean;
xsrfCookieName?: string;
xsrfHeaderName?: string;
maxContentLength?: number;
maxRedirects?: number;
socketPath?: string | null;
httpAgent?: any;
httpsAgent?: any;
parameterStyle?: 'SnakeToCamel' | 'CamelToSnake';
logger?: Logger | LoggerService;
requestInterceptors?: Array<{
onFulfilled?: (value: AxiosRequestConfig) => AxiosRequestConfig | Promise<AxiosRequestConfig>;
onRejected?: (error: any) => any;
}>;
responseInterceptors?: Array<{
onFulfilled?: (value: AxiosResponse) => AxiosResponse | Promise<AxiosResponse>;
onRejected?: (error: any) => any;
}>;
}
export interface RequestAsyncConfig {
name?: string;
useFactory: (...args: any[]) => Promise<RequestConfig> | RequestConfig;
inject?: FactoryProvider['inject'];
}
export interface ResponseSchema<T> {
code: number;
msg: string;
data: T | null;
success: boolean;
}