UNPKG

generator-begcode

Version:

Spring Boot + Angular/React/Vue in one handy generator

71 lines (70 loc) 2.73 kB
import chalk from 'chalk'; import BaseGenerator from '../base/index.js'; import { applicationOptions } from '../../jdl/jhipster/index.js'; import JSONToJDLConverter from '../../jdl/converters/json-to-jdl-converter.js'; import ndmJSONToJDLConverter from '../../jdl/converters/ndm-to-jdl-convert.js'; import pdManJSONToJDLConverter from '../../jdl/converters/pdman-to-jdl-convert.js'; const { OptionNames } = applicationOptions; const { BASE_NAME } = OptionNames; export default class extends BaseGenerator { baseName; inputFile; jdlFile; jdlContent; constructor(args, options, features) { super(args, options, { skipParseOptions: false, ...features }); this.argument('jdlFile', { type: String, required: false }); this.argument('inputFile', { type: String, required: false }); if (this.options.help) { return; } this.inputFile = this.options.inputFile || ''; if (this.inputFile) { this.baseName = ''; } else { this.baseName = this.config.get(BASE_NAME); } this.jdlFile = this.options.jdlFile || `${this.baseName}.jdl`; } get [BaseGenerator.DEFAULT]() { return this.asDefaultTaskGroup({ convertToJDL() { try { let jdlObject = null; if (!this.inputFile) { jdlObject = JSONToJDLConverter.convertToJDL(this.destinationPath(), false); } else if (this.inputFile.endsWith('.ndm2')) { jdlObject = ndmJSONToJDLConverter.convertNdmToJDL('.', this.inputFile, this.jdlFile); } else if (this.inputFile.endsWith('.json')) { jdlObject = pdManJSONToJDLConverter.convertPdManToJDL('.', this.inputFile, this.jdlFile); } if (jdlObject) { this.jdlContent = jdlObject.toString(); } } catch (error) { throw new Error(`An error occurred while exporting to JDL: ${error.message}\n${error}`, { cause: error }); } }, }); } get [BaseGenerator.WRITING]() { return this.asDefaultTaskGroup({ writeJdl() { if (this.jdlContent) { this.writeDestination(this.jdlFile, this.jdlContent); } }, }); } get [BaseGenerator.END]() { return this.asEndTaskGroup({ end() { this.log.log(chalk.green.bold('\nThe JDL export is complete!\n')); }, }); } }