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