@mongez/gnz
Version:
Generator Z, the next generation of scaffolding tools.
27 lines (26 loc) • 2.11 kB
JavaScript
;var fs=require('@mongez/fs'),reinforcements=require('@mongez/reinforcements'),chalk=require('chalk'),path=require('path'),process=require('process');require('os'),require('eslint'),require('prettier');var showSpinner=require('../../utils/show-spinner.js'),template=require('./template.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var chalk__default=/*#__PURE__*/_interopDefault(chalk);var path__default=/*#__PURE__*/_interopDefault(path);async function generate(optionsList) {
// each generator has the following files:
// types.ts
// generator.ts
// index.ts
// template.ts
optionsList.saveTo = optionsList.saveTo + "/" + optionsList.name;
fs.ensureDirectory(optionsList.saveTo);
optionsList.name = reinforcements.ltrim(reinforcements.ltrim(optionsList.name, "generate-"), "generate");
optionsList.camelCaseName ??= reinforcements.toCamelCase(optionsList.name) + "Generator";
optionsList.name = "generate-" + optionsList.name;
const spinner = showSpinner.showSpinner("Loading...");
console.log(`Generating ${chalk__default.default.yellow(`${optionsList.name}`)} generator...`);
spinner.update(`Generating ${chalk__default.default.yellow("types.ts")} file...`);
await template.generateTypesFile(optionsList);
spinner.update(`Generating ${chalk__default.default.yellow("generator.ts")} file...`);
await template.generateGeneratorTemplateFile(optionsList);
spinner.update(`Generating ${chalk__default.default.yellow("index.ts")} file...`);
await template.generateGeneratorFile(optionsList);
spinner.update(`Generating ${chalk__default.default.yellow("generate-content.ts")} file...`);
await template.generateIndexFile(optionsList);
spinner.stop();
console.log("Generator ", chalk__default.default.green(optionsList.name), "has been generated in", chalk__default.default.magenta(path__default.default
.relative(path__default.default.resolve(process.cwd()), optionsList.saveTo)
.replaceAll("\\", "/")));
}exports.generate=generate;//# sourceMappingURL=generator.js.map