UNPKG

@cuba-platform/front-generator

Version:
84 lines 3.98 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 cli_options_1 = require("../../../common/cli-options"); exports.options = cli_options_1.commonGenerationOptionsConfig; const path = require("path"); const generation_1 = require("../../../common/generation"); const questions_1 = require("./questions"); const through2 = require("through2"); function createPolymer2AppGenerator(templateDir = path.join(__dirname, 'template')) { class Polymer2AppGenerator extends generation_1.BaseGenerator { constructor(args, options) { super(args, options); this.registerTransformStream(createRenameTransform(this)); this.sourceRoot(templateDir); } // noinspection JSUnusedGlobalSymbols prompting() { return __awaiter(this, void 0, void 0, function* () { if (this.options.model) { this.conflicter.force = true; this.log('Skipping prompts since model provided'); return; } this.answers = { project: yield this.prompt(questions_1.questions) }; }); } prepareModel() { if (this.options.model) { const projectModel = generation_1.readProjectModel(this.options.model); this.model = createModel(projectModel.project); } else if (this.answers) { this.model = createModel(this.answers.project); } } // noinspection JSUnusedGlobalSymbols writing() { this.log(`Generating to ${this.destinationPath()}`); if (!this.model) { throw new Error('Model is not provided'); } this.fs.copy(this.templatePath() + '/images/**', this.destinationPath('images')); this.fs.copyTpl(this.templatePath() + '/src/**', this.destinationPath('src'), this.model); this.fs.copyTpl(this.templatePath() + '/*.*', this.destinationPath(), this.model); this.fs.copyTpl(this.templatePath('.package-lock.json'), this.destinationPath('package-lock.json'), this.model); this.fs.copy(this.templatePath('_gitignore'), this.destinationPath('.gitignore')); } end() { this.log(`CUBA Polymer client has been successfully generated into ${this.destinationRoot()}`); } } function createModel(project) { return { generatorPackageVersion: process.env.npm_package_version || '0.2.0', title: project.name, project: project, basePath: project.modulePrefix + '-front', baseColor: '#2196F3', genClassName: function (suffix) { return project.namespace[0].toUpperCase() + project.namespace.slice(1) + suffix; } }; } function createRenameTransform(generator) { return through2.obj(function (file, enc, callback) { file.basename = file.basename.replace('${project_namespace}', generator.model.project.namespace); this.push(file); callback(); }); } return Polymer2AppGenerator; } exports.createPolymer2AppGenerator = createPolymer2AppGenerator; exports.generator = createPolymer2AppGenerator(); exports.params = []; //# sourceMappingURL=index.js.map