UNPKG

@liferay/generator-js

Version:

Yeoman generators for Liferay DXP and Portal CE JavaScript projects.

88 lines (87 loc) 3.54 kB
"use strict"; /** * SPDX-FileCopyrightText: © 2017 Liferay, Inc. <https://liferay.com> * SPDX-License-Identifier: LGPL-3.0-or-later */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const yeoman_generator_1 = __importDefault(require("yeoman-generator")); const utils_1 = require("../utils"); const ProjectAnalyzer_1 = __importDefault(require("../utils/ProjectAnalyzer")); const npmbuildrc_1 = __importDefault(require("../utils/modifier/npmbuildrc")); const package_json_1 = __importDefault(require("../utils/modifier/package.json")); const standardTarget = __importStar(require("../utils/target/standard")); const dependencies_json_1 = __importDefault(require("./dependencies.json")); /** * Implementation of generation of React portlets. */ class default_1 extends yeoman_generator_1.default { /** * Standard Yeoman initialization function */ initializing() { this.sourceRoot(path_1.default.join(__dirname, 'templates')); this.namespace = 'target-react-portlet'; } /** * Standard Yeoman prompt function */ async prompting() { await standardTarget.prompting(this); } /** * Standard Yeoman generation function */ writing() { const cp = new utils_1.Copier(this); const npmbuildrc = new npmbuildrc_1.default(this); const pkgJson = new package_json_1.default(this); const projectAnalyzer = new ProjectAnalyzer_1.default(this); const { sampleWanted } = this.answers; // Configure build pkgJson.mergeDependencies(dependencies_json_1.default); pkgJson.addBuildStep('babel --source-maps -d build src'); cp.copyFile('.babelrc'); // Configure webpack pkgJson.addDevDependency('babel-loader', '7.1.5'); npmbuildrc.addWebpackRule(/src\/.*\.js$/, 'babel-loader'); // Prepare text labels const labels = standardTarget.generateLabels(this); // Prepare context const context = standardTarget.generateContext(this, { labels: labels[projectAnalyzer.hasLocalization ? 'jsx' : 'raw'], }); // Copy javascript files pkgJson.setMain('index.js'); cp.copyFile('src/index.js', { context }); // Generate sample contents standardTarget.generateSamples(this, labels); if (sampleWanted) { cp.copyDir('src', { context }); } } } exports.default = default_1; module.exports = exports['default'];