UNPKG

ymlgen-cli

Version:

A generator for YML/YAML files

85 lines 4.4 kB
#!/usr/bin/env node "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const chalk_1 = __importDefault(require("chalk")); const clear_1 = __importDefault(require("clear")); const figlet_1 = __importDefault(require("figlet")); const commander_1 = require("commander"); const glob_1 = __importDefault(require("glob")); const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const ymlgen_1 = require("ymlgen"); const packageInfo = require("../package.json"); (0, clear_1.default)(); console.log(chalk_1.default.red(figlet_1.default.textSync(packageInfo.name, { horizontalLayout: "full" }))); const main = () => __awaiter(void 0, void 0, void 0, function* () { yield commander_1.program .version(packageInfo.version) .description("An example CLI for ordering pizza's") .argument("<pattern>", "A glob pattern for yaml data files") .option("-c, --config-dir", "Config directory") .action((pattern, { c: configDir = path_1.default.resolve(process.cwd(), ".ymlgen") }) => __awaiter(void 0, void 0, void 0, function* () { return new Promise((resolve, reject) => { (0, glob_1.default)(pattern, (error, files) => __awaiter(void 0, void 0, void 0, function* () { if (error) { console.error(error); return; } const resolver = (0, ymlgen_1.createGeneratorResolver)(path_1.default.resolve(configDir, "generators")); let hasError = false; yield Promise.all(files.map((file) => __awaiter(void 0, void 0, void 0, function* () { try { const ext = path_1.default.extname(file); const content = fs_1.default.readFileSync(file, "utf-8"); if (!(0, ymlgen_1.isDataFile)(content)) { return; } if (!require.main) { console.log(chalk_1.default.cyan("No package.json found")); return; } const projectRoot = path_1.default.dirname(require.main.path); yield (0, ymlgen_1.processFile)({ generatorWorkspaceDir: path_1.default.resolve(projectRoot, "./ymlgen"), dataFileWorkspaceDir: projectRoot, dataFile: file, fileName: path_1.default.basename(file, ext), content, getGenerator: resolver, writeFile: (0, ymlgen_1.createFileWriter)(path_1.default.dirname(file), (generatedFile) => console.log(chalk_1.default.green(`The output file is generated successfully: ${generatedFile}`))), includeFileReader: () => ({}), }); } catch (ex) { console.log(file, chalk_1.default.red(ex)); hasError = true; } }))); if (hasError) { process.exit(1); } })) .on("error", reject) .on("end", resolve); }); })) .parseAsync(process.argv); // show help if no arg if (!commander_1.program.args.length) { commander_1.program.outputHelp(); } }); main(); //# sourceMappingURL=cli.js.map