UNPKG

api

Version:

Magical SDK generation from an OpenAPI definition 🪄

41 lines (40 loc) • 1.69 kB
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>; }