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.

97 lines (91 loc) • 3.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateServicesTrpcRouterContent = exports.generateCustomTrpcRouterContent = exports.generateTrpcRouterContent = void 0; /** * tRPC router template for generating module routers */ const naming_utils_1 = require("../shared/utils/naming.utils"); const generateTrpcRouterContent = ({ moduleName, operations = ['create', 'get', 'list', 'update', 'delete'], }) => { const naming = (0, naming_utils_1.getModuleNaming)(moduleName); // Generate imports for each operation const procedureImports = operations .map(operation => { // const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1); const procedureName = operation === 'list' ? `list${naming.class}sProcedure` : `${operation}${naming.class}Procedure`; return `import { ${procedureName} } from './procedures/${operation}.${naming.file}';`; }) .join('\n'); // Generate router object properties const routerProperties = operations .map(operation => { // const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1); const procedureName = operation === 'list' ? `list${naming.class}sProcedure` : `${operation}${naming.class}Procedure`; return ` ${operation}: ${procedureName},`; }) .join('\n'); return `import { router } from '@/lib/trpc'; ${procedureImports} export const ${naming.variable}Router = router({ ${routerProperties} }); export type ${naming.class}Router = typeof ${naming.variable}Router; `; }; exports.generateTrpcRouterContent = generateTrpcRouterContent; const generateCustomTrpcRouterContent = ({ moduleName, operations, }) => { const naming = (0, naming_utils_1.getModuleNaming)(moduleName); // Generate imports for each custom operation const procedureImports = operations .map(operation => { // const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1); const procedureName = `${operation}${naming.class}Procedure`; return `import { ${procedureName} } from './procedures/${operation}.${naming.file}';`; }) .join('\n'); // Generate router object properties const routerProperties = operations .map(operation => { const procedureName = `${operation}${naming.class}Procedure`; return ` ${operation}: ${procedureName},`; }) .join('\n'); return `import { router } from '../../trpc'; ${procedureImports} export const ${naming.variable}Router = router({ ${routerProperties} }); export type ${naming.class}Router = typeof ${naming.variable}Router; `; }; exports.generateCustomTrpcRouterContent = generateCustomTrpcRouterContent; const generateServicesTrpcRouterContent = ({ moduleName, operations, }) => { const naming = (0, naming_utils_1.getModuleNaming)(moduleName); // Generate imports for each service operation const procedureImports = operations .map(operation => { // const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1); const procedureName = `${operation}${naming.class}Procedure`; return `import { ${procedureName} } from './procedures/${operation}.${naming.file}';`; }) .join('\n'); // Generate router object properties const routerProperties = operations .map(operation => { const procedureName = `${operation}${naming.class}Procedure`; return ` ${operation}: ${procedureName},`; }) .join('\n'); return `import { router } from '../../trpc'; ${procedureImports} export const ${naming.variable}Router = router({ ${routerProperties} }); export type ${naming.class}Router = typeof ${naming.variable}Router; `; }; exports.generateServicesTrpcRouterContent = generateServicesTrpcRouterContent; //# sourceMappingURL=trpc.router.js.map