UNPKG

@fairmint/canton-node-sdk

Version:
55 lines 2.64 kB
import { z } from 'zod'; import { RequestConfig } from '../types'; import { BaseClient, SimpleBaseClient } from '../BaseClient'; export interface ApiOperationConfig<Params, Response> { paramsSchema: z.ZodSchema<Params>; method: 'GET' | 'POST' | 'DELETE' | 'PATCH'; buildUrl: (params: Params, apiUrl: string, client: BaseClient) => string; buildRequestData?: (params: Params, client: BaseClient) => unknown | Promise<unknown>; requestConfig?: RequestConfig; transformResponse?: (response: Response) => Response; } export interface SimpleApiOperationConfig<Params, Response> { paramsSchema: z.ZodSchema<Params>; method: 'GET' | 'POST' | 'DELETE' | 'PATCH'; buildUrl: (params: Params, apiUrl: string, client: SimpleBaseClient) => string; buildRequestData?: (params: Params, client: SimpleBaseClient) => unknown | Promise<unknown>; transformResponse?: (response: Response) => Response; } export declare function createApiOperation<Params, Response>(config: ApiOperationConfig<Params, Response>): { new (client: BaseClient): { execute(params: Params): Promise<Response>; client: BaseClient; validateParams<T>(params: T, schema: z.ZodSchema<T>): T; makeGetRequest<T>(url: string, config?: RequestConfig): Promise<T>; makePostRequest<T>(url: string, data: unknown, config?: RequestConfig): Promise<T>; makeDeleteRequest<T>(url: string, config?: RequestConfig): Promise<T>; makePatchRequest<T>(url: string, data: unknown, config?: RequestConfig): Promise<T>; getManagedParties(): string[]; getPartyId(): string | undefined; getApiUrl(): string; buildPartyList(additionalParties?: string[]): string[]; }; }; export declare function createSimpleApiOperation<Params, Response>(config: SimpleApiOperationConfig<Params, Response>): { new (client: SimpleBaseClient): { execute(params: Params): Promise<Response>; client: SimpleBaseClient; validateParams<T>(params: T, schema: z.ZodSchema<T>): T; makeGetRequest<T>(url: string, config?: { contentType?: string; }): Promise<T>; makePostRequest<T>(url: string, data: unknown, config?: { contentType?: string; }): Promise<T>; makeDeleteRequest<T>(url: string, config?: { contentType?: string; }): Promise<T>; makePatchRequest<T>(url: string, data: unknown, config?: { contentType?: string; }): Promise<T>; getPartyId(): string; getApiUrl(): string; }; }; //# sourceMappingURL=ApiOperationFactory.d.ts.map