@odel/module-sdk
Version:
SDK for building Odel modules - MCP protocol over HTTP for Cloudflare Workers
72 lines • 2.33 kB
TypeScript
/**
* 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