UNPKG

node-apis

Version:

🚀 Advanced TypeScript API generator with clean architecture, comprehensive testing, and automatic formatting. Generate production-ready Node.js APIs with complete integration test suites.

51 lines (49 loc) • 2.17 kB
"use strict"; /** * Custom validator templates */ Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCustomValidatorContent = exports.getCustomValidatorFileNames = void 0; const naming_utils_1 = require("../shared/utils/naming.utils"); /** * Gets custom validator file names for a module */ const getCustomValidatorFileNames = ({ customNames, moduleName, }) => { const naming = (0, naming_utils_1.getModuleNaming)(moduleName); return customNames.map(customName => `${customName}.${naming.file}.ts`); }; exports.getCustomValidatorFileNames = getCustomValidatorFileNames; /** * Generates TypeScript validator file content for custom operations */ const generateCustomValidatorContent = ({ customName, moduleName, }) => { const naming = (0, naming_utils_1.getModuleNaming)(moduleName); const capitalizedCustom = customName.charAt(0).toUpperCase() + customName.slice(1); return generateGenericCustomValidatorContent(customName, naming.class, capitalizedCustom, naming.file); }; exports.generateCustomValidatorContent = generateCustomValidatorContent; /** * Generates generic custom validator content */ const generateGenericCustomValidatorContent = (customName, _capitalizedModule, _capitalizedCustom, moduleName) => { return `import { z } from 'zod'; import type { typePayload } from '../types/${customName}.${moduleName}'; export const payloadSchema = z.object({ // Define validation rules for ${customName} ${moduleName} id: z.string().min(1).max(255).optional(), // Customize based on your ID format // Common validation patterns: // - Strings: z.string().min(1).max(500) // - Email: z.string().email().min(3).max(255) // - Numbers: z.number().min(0).max(999999999) // - Arrays: z.array(z.string()).min(0).max(100) }); export const validatePayload = (data: unknown): { success: true; data: typePayload } | { success: false; error: z.ZodError } => { const result = payloadSchema.safeParse(data); if (result.success) { return { success: true, data: result.data as typePayload }; } return { success: false, error: result.error }; }; `; }; //# sourceMappingURL=custom.validators.js.map