@affinidi/tools-openapi
Version:
SDK core monorepo for affinity DID solution
25 lines (24 loc) • 1.47 kB
TypeScript
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 {};