UNPKG

@mongez/gnz

Version:

Generator Z, the next generation of scaffolding tools.

27 lines (26 loc) 2.11 kB
'use strict';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