api
Version:
Magical SDK generation from an OpenAPI definition 🪄
41 lines (40 loc) • 1.69 kB
TypeScript
import type Oas from 'oas';
import type { Operation } from 'oas';
import type { HttpMethods } from 'oas/dist/rmoas.types';
import 'isomorphic-fetch';
import getJSONSchemaDefaults from './getJSONSchemaDefaults';
import parseResponse from './parseResponse';
import prepareAuth from './prepareAuth';
import prepareParams from './prepareParams';
import prepareServer from './prepareServer';
export interface ConfigOptions {
/**
* Override the default `fetch` request timeout of 30 seconds. This number should be represented
* in milliseconds.
*/
timeout?: number;
}
export interface FetchResponse<status, data> {
data: data;
headers: Headers;
res: Response;
status: status;
}
type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc['length']]>;
export type HTTPMethodRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
export { getJSONSchemaDefaults, parseResponse, prepareAuth, prepareParams, prepareServer };
export default class APICore {
spec: Oas;
private auth;
private server;
private config;
private userAgent;
constructor(spec?: Oas, userAgent?: string);
setSpec(spec: Oas): void;
setConfig(config: ConfigOptions): this;
setUserAgent(userAgent: string): this;
setAuth(...values: string[] | number[]): this;
setServer(url: string, variables?: Record<string, string | number>): this;
fetch(path: string, method: HttpMethods, body?: unknown, metadata?: Record<string, unknown>): Promise<any>;
fetchOperation(operation: Operation, body?: unknown, metadata?: Record<string, unknown>): Promise<any>;
}