UNPKG

@microsoft/teams.common

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.common" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.common" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.common?activeTab=code"

54 lines (51 loc) 1.52 kB
import { AxiosInterceptorOptions, InternalAxiosRequestConfig, AxiosResponse } from 'axios'; import { ILogger } from '../logging/logger.mjs'; type Interceptor = { options?: AxiosInterceptorOptions; request?: RequestInterceptor; response?: ResponseInterceptor; error?: ErrorInterceptor; }; type ErrorContext<T = any> = { /** * The error */ readonly error: T; /** * The clients logger instance */ readonly log: ILogger; }; /** * A method called to intercept a request that failed */ type ErrorInterceptor<T = any> = (ctx: ErrorContext<T>) => any; type RequestContext<D = any> = { /** * The outgoing request config */ readonly config: InternalAxiosRequestConfig<D>; /** * The clients logger instance */ readonly log: ILogger; }; /** * A method called to intercept a successful request */ type RequestInterceptor<D = any> = (ctx: RequestContext<D>) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>; type ResponseContext<T = any, D = any> = { /** * The response */ readonly res: AxiosResponse<T, D>; /** * The clients logger instance */ readonly log: ILogger; }; /** * A method called to intercept a successful response */ type ResponseInterceptor<T = any, D = any> = (ctx: ResponseContext<T, D>) => AxiosResponse | Promise<AxiosResponse>; export type { ErrorContext, ErrorInterceptor, Interceptor, RequestContext, RequestInterceptor, ResponseContext, ResponseInterceptor };