2021-02-13 18:22:07 +00:00

50 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const gulp = require("gulp");
const gulpUtil = require("gulp-util");
const mustache = require("mustache");
const path = require("path");
const log_1 = require("./../consts/log");
const files_1 = require("./../../src/consts/files");
const paths_1 = require("./../../src/consts/paths");
const fs_1 = require("./../../src/helpers/fs");
const commons = fs_1.getDefaultValues();
const themeTemplateFileContent = fs.readFileSync(path.join(paths_1.default.SRC, '/themes/theme-template-color-theme.json'), files_1.CHARSET);
const themeVariants = [];
const fileNames = fs.readdirSync(path.join(paths_1.default.SRC, './themes/settings/specific'));
// build theme variants for later use in templating
fileNames.forEach(fileName => {
const filePath = path.join(paths_1.default.SRC, './themes/settings/specific', `./${fileName}`);
const contents = fs.readFileSync(filePath, files_1.CHARSET);
try {
themeVariants.push(JSON.parse(contents));
}
catch (error) {
gulpUtil.log(log_1.MESSAGE_THEME_VARIANT_PARSE_ERROR, error);
}
});
/**
* Themes task
* Builds Themes
*/
exports.default = gulp.task('build:themes', cb => {
gulpUtil.log(gulpUtil.colors.gray(log_1.HR));
fs_1.ensureDir(path.join(paths_1.default.THEMES));
try {
themeVariants.forEach(variant => {
const filePath = path.join(paths_1.default.THEMES, `./${variant.name}.json`);
const templateData = { commons, variant };
const templateJSON = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
const templateJSONStringified = JSON.stringify(templateJSON, null, 2);
fs.writeFileSync(filePath, templateJSONStringified, { encoding: files_1.CHARSET });
gulpUtil.log(log_1.MESSAGE_GENERATED, gulpUtil.colors.green(filePath));
});
}
catch (exception) {
gulpUtil.log(exception);
cb(exception);
}
gulpUtil.log(gulpUtil.colors.gray(log_1.HR));
});
//# sourceMappingURL=themes.js.map