UNPKG

@liferay/generator-js

Version:

Yeoman generators for Liferay DXP and Portal CE JavaScript projects.

121 lines (120 loc) 4.31 kB
"use strict"; /** * SPDX-FileCopyrightText: © 2017 Liferay, Inc. <https://liferay.com> * SPDX-License-Identifier: LGPL-3.0-or-later */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateLabels = exports.generateSignature = exports.generateSamples = exports.generateContext = exports.install = exports.prompting = exports.initializing = void 0; const __1 = require(".."); const sample_generator_1 = __importDefault(require("../../facet-configuration/sample-generator")); const sample_generator_2 = __importDefault(require("../../facet-localization/sample-generator")); const ProjectAnalyzer_1 = __importDefault(require("../ProjectAnalyzer")); const styles_css_1 = __importDefault(require("../modifier/assets/css/styles.css")); /** * * @param {Generator} generator */ function initializing(generator) { generator.composeWith(require.resolve('../../facet-project')); generator.composeWith(require.resolve('../../facet-localization')); generator.composeWith(require.resolve('../../facet-configuration')); generator.composeWith(require.resolve('../../facet-portlet')); generator.composeWith(require.resolve('../../facet-deploy')); generator.composeWith(require.resolve('../../facet-start')); } exports.initializing = initializing; /** * * @param {Generator} generator * @param {string} namespace */ async function prompting(generator) { generator.answers = generator.answers || {}; Object.assign(generator.answers, await __1.promptWithConfig(generator, [ { default: false, message: 'Do you want to generate sample code?', name: 'sampleWanted', type: 'confirm', }, ])); } exports.prompting = prompting; /** * * @param {Generator} generator */ function install(generator) { generator.installDependencies({ bower: false, skipInstall: generator.options['skip-install'], skipMessage: generator.options['skip-install-message'], }); } exports.install = install; /** * Generate the base template context used for generation. * @param {object} generator * @param {object} extra extra fields to add to the context * @return {object} */ function generateContext(generator, extra = {}) { const projectAnalyzer = new ProjectAnalyzer_1.default(generator); return { hasConfiguration: projectAnalyzer.hasConfiguration, signature: generateSignature(generator), ...extra, }; } exports.generateContext = generateContext; /** * * @param {Generator} generator * @param {object} labels */ function generateSamples(generator, labels) { const stylesCss = new styles_css_1.default(generator); const { sampleWanted } = generator.answers; if (sampleWanted) { // Add styles stylesCss.addRule('.tag', 'font-weight: bold; margin-right: 1em;'); stylesCss.addRule('.value', 'font-family: monospace;'); stylesCss.addRule('.pre', 'font-family: monospace; white-space: pre;'); // Add localization keys new sample_generator_2.default(generator).generate(labels.raw); // Add sample configuration new sample_generator_1.default(generator).generate(); } } exports.generateSamples = generateSamples; /** * Generate signature parameter of the entry point * @param {Generator} generator * @return {string} */ function generateSignature(generator) { const projectAnalyzer = new ProjectAnalyzer_1.default(generator); return ('portletNamespace, contextPath, portletElementId' + (projectAnalyzer.hasConfiguration ? ', configuration' : '')); } exports.generateSignature = generateSignature; /** * Generate base labels * @param {Generator} generator * @return {object} */ function generateLabels(generator) { const projectAnalyzer = new ProjectAnalyzer_1.default(generator); return __1.formatLabels({ configuration: projectAnalyzer.hasConfiguration ? 'Configuration' : undefined, contextPath: 'Context Path', portletElementId: 'Portlet Element Id', portletNamespace: 'Portlet Namespace', }); } exports.generateLabels = generateLabels;