UNPKG

@odel/module-sdk

Version:

SDK for building Odel modules - MCP protocol over HTTP for Cloudflare Workers

72 lines 2.33 kB
/** * Common Zod validators for Odel modules */ import { z } from 'zod'; /** * Collection of reusable Zod validators for common input types */ export declare const validators: { /** * Email address validation * @example z.object({ email: validators.email() }) */ email: () => z.ZodString; /** * Comma-separated email list - accepts array or comma-separated string * @example validators.emailList() // Accepts "a@example.com,b@example.com" or ["a@example.com", "b@example.com"] */ emailList: () => z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodPipeline<z.ZodEffects<z.ZodString, string[], string>, z.ZodArray<z.ZodString, "many">>]>; /** * URL validation (http or https) * @example validators.url() */ url: () => z.ZodString; /** * HTTPS-only URL validation * @example validators.httpsUrl() */ httpsUrl: () => z.ZodEffects<z.ZodString, string, string>; /** * API key validation with optional prefix requirement * @param prefix - Optional prefix (e.g., "sk-" for OpenAI keys) * @example validators.apiKey('sk-') */ apiKey: (prefix?: string) => z.ZodString | z.ZodEffects<z.ZodString, string, string>; /** * JSON string parser - transforms JSON string to parsed object * @example validators.json<MyType>() */ json: <T = any>() => z.ZodEffects<z.ZodString, T, string>; /** * Non-empty string validation * @example validators.nonEmptyString() */ nonEmptyString: () => z.ZodString; /** * Positive integer validation * @example validators.positiveInt() */ positiveInt: () => z.ZodNumber; /** * Port number validation (1-65535) * @example validators.port() */ port: () => z.ZodNumber; /** * ISO 8601 date string validation * @example validators.isoDate() */ isoDate: () => z.ZodString; /** * UUID validation * @example validators.uuid() */ uuid: () => z.ZodString; /** * Enum from array of strings * @param values - Array of allowed values * @example validators.enumFrom(['draft', 'published', 'archived']) */ enumFrom: <T extends string>(values: readonly [T, ...T[]]) => z.ZodEnum<[T, ...T[]]>; }; //# sourceMappingURL=validators.d.ts.map