liferay-theme-tasks
Version:
A set of tasks for building and deploying Liferay Portal themes.
89 lines (71 loc) • 1.71 kB
JavaScript
/**
* SPDX-FileCopyrightText: © 2017 Liferay, Inc. <https://liferay.com>
* SPDX-License-Identifier: MIT
*/
const _ = require('lodash');
const os = require('os');
function formatThemeletSelection(modules, selectedModules) {
const formattedSelection = {};
if (selectedModules) {
formattedSelection.removedThemelets = _.reduce(
modules,
(result, selected, name) => {
if (selectedModules.indexOf(name) > -1 && !selected) {
result.push(name);
}
return result;
},
[]
);
formattedSelection.keptThemelets = _.reduce(
modules,
(result, selected, name) => {
if (selected && selectedModules.indexOf(name) > -1) {
result.push(name);
}
return result;
},
[]
);
}
selectedModules = selectedModules || [];
formattedSelection.addedThemelets = _.reduce(
modules,
(result, selected, name) => {
if (selected && selectedModules.indexOf(name) < 0) {
result.push(name);
}
return result;
},
[]
);
return formattedSelection;
}
function getListType() {
let listType = 'list';
if (process.version > 'v0.12.7' && os.type() === 'Windows_NT') {
listType = 'rawlist';
}
return listType;
}
function getModuleChoices(modules, config) {
const selectedModules = config.selectedModules;
if (config.themelet) {
return _.map(modules, (module, name) => {
return {
checked: selectedModules && selectedModules.indexOf(name) > -1,
name,
};
});
}
return _.map(modules, (module, name) => {
return {
name:
selectedModules && selectedModules.indexOf(name) > -1
? name + ' (selected)'
: name,
value: name,
};
});
}
module.exports = {formatThemeletSelection, getListType, getModuleChoices};