UNPKG

@affinidi/tools-openapi

Version:
26 lines (25 loc) 1.64 kB
import { GenericApiSpec } from '../types/openapi'; import { ParseSpec } from '../types/openapiParser'; import { ResponseForOperation, RequestOptionsForOperation } from '../types/request'; import { BuildApiTypeWithoutConstraint, BuiltApiOperationType, BuiltApiType } from '../types/typeBuilder'; export declare type ThisData = { accessApiKey: string; sdkVersion?: string; serviceUrl: string; tenantToken?: string; }; declare type MethodTypeByOperation<TOperation extends BuiltApiOperationType> = (this: ThisData, requestOptions: RequestOptionsForOperation<TOperation>) => Promise<ResponseForOperation<TOperation>>; declare type ClientTypeByApi<TApi extends BuiltApiType> = { [key in keyof TApi]: MethodTypeByOperation<TApi[key]>; }; export declare type ClientTypeByRawSpec<TRawSpec extends GenericApiSpec> = ClientTypeByApi<BuildApiTypeWithoutConstraint<ParseSpec<TRawSpec>>>; export declare type ClientOptions = Omit<ThisData, 'serviceUrl'>; export declare type ClientFactoryByRawSpec = { <TRawSpec extends GenericApiSpec>(rawSpec: TRawSpec): ClientTypeByRawSpec<TRawSpec>; }; declare type GetRequestOptions<TOperation extends MethodTypeByOperation<any>> = Parameters<TOperation>[0]; export declare type GetParams<TOperation extends MethodTypeByOperation<any>> = GetRequestOptions<TOperation>['params']; export declare const createClientMethods: ClientFactoryByRawSpec; export declare const createThisData: (serviceUrl: string, otherOptions: ClientOptions) => ThisData; export declare const createClient: <TMethods>(methods: TMethods, serviceUrl: string, otherOptions: ClientOptions) => TMethods & ThisData; export {};