UNPKG

@affinidi/tools-openapi

Version:
25 lines (24 loc) 1.47 kB
import { BuiltApiOperationType, BuiltApiType } from './typeBuilder'; import { Simplify } from './util'; export declare type RawApiSpec<TApi extends BuiltApiType> = { servers: readonly [{ url: string; }]; paths: Record<string, Partial<Record<'get' | 'post' | 'put' | 'delete', { operationId: keyof TApi; }>>>; }; declare type OptionalRecord = Record<string, any> | undefined; declare type WithOptionalField<TName extends string, TData extends OptionalRecord> = TData extends undefined | never ? Partial<Record<TName, undefined>> : Record<TName, TData>; declare type BasicRequestOptions = { authorization?: string; storageRegion?: string; }; export declare type RequestOptions<TParams extends OptionalRecord, TQuery extends OptionalRecord, TPath extends OptionalRecord> = BasicRequestOptions & WithOptionalField<'params', TParams> & WithOptionalField<'queryParams', TQuery> & WithOptionalField<'pathParams', TPath>; export declare type RequestOptionsForOperation<TOperation extends BuiltApiOperationType> = Simplify<RequestOptions<TOperation['requestBody'], TOperation['queryParams'], TOperation['pathParams']>>; export declare type ResponseForOperation<TOperation extends BuiltApiOperationType> = { body: TOperation['responseBody']; status: number; }; export declare type RequestOptionsForOperationId<TApi extends BuiltApiType, TOperationId extends keyof TApi> = RequestOptionsForOperation<TApi[TOperationId]>; export {};