@schemifyjs/schematics
Version:
Reusable schematics for scaffolding SchemifyJS projects.
28 lines (27 loc) • 1.3 kB
JavaScript
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
});
}