generator-begcode
Version:
Spring Boot + Angular/React/Vue in one handy generator
71 lines (70 loc) • 2.73 kB
JavaScript
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'));
},
});
}
}