@fairmint/canton-node-sdk
Version:
Canton Node SDK
55 lines • 2.64 kB
TypeScript
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