UNPKG

jswagger-client

Version:

This is jswagger's client package.

143 lines 4.52 kB
/// <reference types="node" /> import { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios'; import { OpenAPI2 } from 'jswagger-common'; import * as http from 'http'; import * as https from 'https'; import * as url from 'url'; export interface IRewriterParams { operationId: string; arg?: ApiRequestOptionsOO<any, any>; } export declare type HostRewriter = (params: IRewriterParams) => { protocol?: string; host?: string; } | undefined; export declare type UrlRewriter = (params: IRewriterParams, originalUrl: url.URL) => url.URL | undefined; export declare type ArgRewriter = (params: IRewriterParams) => ApiRequestOptionsOO<any, any> | undefined; /** * @return * value >= 0 : retry after *value* ms * false or value < 0 : stop */ export declare type RetryHandler = (params: IRewriterParams, retryCount: number, err: any) => Promise<number | false>; /** * @return * string : content-type * null : use default resolver */ export declare type ContentTypeResolver = (params: IRewriterParams, data: any) => Promise<string | null>; export interface ISwaggerClientConfig { spec: OpenAPI2; protocol?: string; host?: string; baseUrl?: string; httpAgent?: http.Agent; httpsAgent?: https.Agent; securityContext?: IApiSecurityContext; argRewriter?: ArgRewriter; hostRewriter?: HostRewriter; urlRewriter?: UrlRewriter; retryHandler?: RetryHandler; contentTypeResolver?: ContentTypeResolver; } export interface ISwaggerApiOptions { securityContext?: IApiSecurityContext; } export interface QueryNameValue { name: string; value: string; } export interface ApiRequestOptions extends AxiosRequestConfig { /** * Override protocol */ protocol?: string; /** * Override host * * e.g. 1.2.3.4:321 */ host?: string; securityContext?: IApiSecurityContext; queries?: QueryNameValue[]; } export interface ApiRequestOptionsRX<T, P> extends ApiRequestOptions { data: T; } export interface ApiRequestOptionsRO<T, P> extends ApiRequestOptions { data: T; params?: P; } export interface ApiRequestOptionsRR<T, P> extends ApiRequestOptions { data: T; params: P; } export interface ApiRequestOptionsOX<T, P> extends ApiRequestOptions { data?: T; } export interface ApiRequestOptionsOO<T, P> extends ApiRequestOptions { data?: T; params?: P; } export interface ApiRequestOptionsOR<T, P> extends ApiRequestOptions { data?: T; params: P; } export interface ApiRequestOptionsXX<T, P> extends ApiRequestOptions { } export interface ApiRequestOptionsXO<T, P> extends ApiRequestOptions { params?: P; } export interface ApiRequestOptionsXR<T, P> extends ApiRequestOptions { params: P; } export interface ApiResponse<T, H> extends AxiosResponse<T> { data: T; headers: H; } export declare type AnyKeyValueType = { [key: string]: any; }; export interface IApiSecurityContext { headerReplacer?: (input: AnyKeyValueType) => AnyKeyValueType; queryReplacer?: (input: QueryNameValue[]) => QueryNameValue[]; } declare const S_API_ERROR: unique symbol; export declare class ApiError extends Error { readonly [S_API_ERROR]: boolean; readonly code: string; readonly data: any; readonly headers: AnyKeyValueType; readonly axiosError: AxiosError; readonly axiosConfig: AxiosRequestConfig; readonly axiosRequest?: any; readonly axiosResponse?: AxiosResponse; constructor(params: { message: string; code: string; status: number; data: any; headers: AnyKeyValueType; axiosError: AxiosError; axiosConfig: AxiosRequestConfig; axiosRequest?: any; axiosResponse?: AxiosResponse; }); static isInstance(o: any): boolean; } declare type IsSwaggerDefinitionFunctionType = (o: any) => boolean; declare type GetSwaggerDefinitionName = (o: any) => string; declare type SwaggerDefinitionToJson = (o: any) => any; export interface ISpecMetadata { isSwaggerDefinition: IsSwaggerDefinitionFunctionType; getSwaggerDefinitionName: GetSwaggerDefinitionName; swaggerDefinitionToJson: SwaggerDefinitionToJson; classes: readonly any[]; definitions: Record<string, any>; } export interface IApiMetadata { tag: string; specMetadata: ISpecMetadata; } export {}; //# sourceMappingURL=types.d.ts.map