liferay-theme-tasks
Version:
A set of tasks for building and deploying Liferay Portal themes.
72 lines (58 loc) • 1.48 kB
JavaScript
/**
* SPDX-FileCopyrightText: © 2017 Liferay, Inc. <https://liferay.com>
* SPDX-License-Identifier: MIT
*/
;
const _ = require('lodash');
const path = require('path');
const project = require('../../lib/project');
const util = require('../../lib/util');
const {getBaseThemeGlob, getLiferayThemeJSON} = require('./theme_inspector');
function getBaseThemeDependencies(
baseThemePath = project.dir,
dependencies = []
) {
const {baseTheme} = getLiferayThemeJSON(baseThemePath);
const baseThemeGlob = getBaseThemeGlob(baseThemePath);
dependencies = _.uniq(
dependencies.concat([
path.join(
util.resolveDependency('liferay-frontend-theme-unstyled'),
baseThemeGlob
),
])
);
if (_.isObject(baseTheme)) {
baseThemePath = path.join(
baseThemePath,
'node_modules',
baseTheme.name
);
dependencies = getBaseThemeDependencies(baseThemePath, dependencies);
dependencies.push(path.resolve(baseThemePath, 'src', '**', '*'));
return dependencies;
}
else if (baseTheme === 'styled' || baseTheme === 'admin') {
dependencies.splice(
1,
0,
path.join(
util.resolveDependency('liferay-frontend-theme-styled'),
baseThemeGlob
)
);
if (baseTheme === 'admin') {
dependencies.splice(
2,
0,
path.join(
util.resolveDependency('liferay-frontend-theme-admin-web'),
baseThemeGlob
)
);
}
return dependencies;
}
return dependencies;
}
module.exports = getBaseThemeDependencies;