UNPKG

@schemifyjs/schematics

Version:

Reusable schematics for scaffolding SchemifyJS projects.

28 lines (27 loc) 1.3 kB
import path from 'path'; import { fileURLToPath } from 'url'; import { generateNameVariants } from '../../shared/utils/generate-name-variants.util.js'; import { SchematicEngine } from '../../engine/schematic-engine.js'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); export async function scaffoldApplication(projectOptions) { var _a, _b; // Si projectOptions.metadata.path existe, usa path/name; si no, usa solo name const outputPath = path.resolve(projectOptions.metadata.path ? path.join(projectOptions.metadata.path, projectOptions.metadata.name) : projectOptions.metadata.name); const projectNames = generateNameVariants(projectOptions.metadata.name, 'project_name_real'); const microserviceNames = projectOptions.microservice ? generateNameVariants(projectOptions.microservice.name, 'project_name') : {}; const replacements = { ...projectNames, ...microserviceNames, ...((_a = projectOptions.versions) !== null && _a !== void 0 ? _a : {}) }; const schematicPath = path.resolve(__dirname, '../application/files', (_b = projectOptions.framework) !== null && _b !== void 0 ? _b : 'nestjs'); await SchematicEngine({ schematicPath, outputPath, replacements }); }