UNPKG

@cuba-platform/front-generator

Version:
61 lines 2.77 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const YeomanEnvironment = require("yeoman-environment"); const path = require("path"); const GENERATORS_DIR_NAME = 'generators'; const GENERATOR_FILE_NAME = 'index.js'; const INFO_FILE_NAME = 'info.json'; function collectClients() { const clientsDirPath = path.join(__dirname, GENERATORS_DIR_NAME); return fs_1.readdirSync(clientsDirPath).map((clientDirName) => { const info = require(path.join(clientsDirPath, clientDirName, INFO_FILE_NAME)); return { bundled: true, name: clientDirName, bower: info.bower, clientBaseTech: info.clientBaseTech, generators: collectGenerators(path.join(clientsDirPath, clientDirName)) }; }); } exports.collectClients = collectClients; function generate(generatorName, subGeneratorName, options) { return __awaiter(this, void 0, void 0, function* () { const env = new YeomanEnvironment(); const { generator } = yield Promise.resolve().then(() => require(path.join(__dirname, GENERATORS_DIR_NAME, generatorName, subGeneratorName))); env.registerStub(generator, generator.name); env.run(generator.name, options); }); } exports.generate = generate; function collectGenerators(generatorsDir) { const dirs = fs_1.readdirSync(generatorsDir); return dirs.reduce((generators, name) => { const generatorPath = path.join(generatorsDir, name); if (fs_1.existsSync(generatorPath) && fs_1.existsSync(path.join(generatorPath, GENERATOR_FILE_NAME)) && fs_1.statSync(generatorPath).isDirectory()) { const generatorExports = require(generatorPath); if (generatorExports.generator == null) { return generators; } const options = generatorExports.options; const params = generatorExports.params; generators.push({ name, options, params }); return generators; } else { return generators; } }, []); } //# sourceMappingURL=init.js.map