@clipwhisperer/common
Version:
ClipWhisperer Common - Shared library providing core utilities, database schemas, authentication, bucket management, and common functionality across all ClipWhisperer microservices
38 lines (37 loc) • 1.54 kB
TypeScript
import { defaultEndpointsFactory, Method } from "express-zod-api";
import { z, ZodType } from "zod";
import { Logger } from "pino";
import { VaultClient } from "./vault.js";
type OptionsProvider = () => Promise<{
vault: VaultClient;
}>;
export declare const setOptionsProvider: (provider: OptionsProvider) => void;
export type CreateEndpointOptions<I extends ZodType, O extends ZodType> = {
method: Method;
input: I;
output: O;
handler: (input: z.infer<I>, options: {
vault: VaultClient;
}, logger: Logger) => Promise<z.infer<O>>;
};
export declare const createEndpoint: <I extends ZodType, O extends ZodType>(opts: CreateEndpointOptions<I, O>) => {
"__#6@#private": any;
deprecated(): /*elided*/ any;
execute({ request, response, logger, config, }: {
request: import("express").Request;
response: import("express").Response;
logger: {
error: (message: string, meta?: any) => any;
warn: (message: string, meta?: any) => any;
info: (message: string, meta?: any) => any;
debug: (message: string, meta?: any) => any;
} & import("express-zod-api").LoggerOverrides;
config: import("express-zod-api").CommonConfig;
}): Promise<undefined>;
nest(routing: import("express-zod-api").Routing): import("express-zod-api").Routing;
};
export type ZodRoute = {
[key in Method]?: ReturnType<typeof defaultEndpointsFactory.build>;
};
export declare const createRoute: (routes: ZodRoute) => ZodRoute;
export {};