@zohodesk/client_build_tool
Version:
A CLI tool to build web applications and client libraries
67 lines (51 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deprecatedOptionsHandler = deprecatedOptionsHandler;
var _logger = require("../logger");
function nestedSelect(obj, key) {
let temp = obj;
const keys = key.split('.');
for (let i = 0; i < keys.length && temp; i++) {
const element = keys[i];
temp = temp[element];
}
return temp;
}
function nestedUpdate(obj, key, value) {
let temp = obj;
const keys = key.split('.');
let i = 0;
for (; i < keys.length - 1 && temp; i++) {
const element = keys[i];
temp = temp[element];
}
if (temp) {
temp[keys[i]] = value;
}
}
function deprecatedOptionsHandler(options) {
function checkAndUpdateAndPrintWaring(oldKey, newkey) {
const oldVal = nestedSelect(options, oldKey);
const newVal = nestedSelect(options, newkey); // console.log({ oldVal, newVal });
if (oldVal !== undefined && newVal === undefined) {
nestedUpdate(options, newkey, newVal);
(0, _logger.warnLogger)(`"${oldKey}" deprecated use "${newkey}" instead`);
}
} // return;
checkAndUpdateAndPrintWaring('app.context', 'context'); // TODO handle deprecations here
// we will finish this logic later when options are confirmed
if (nestedSelect(options, 'app.hasRTL') === true) {
nestedUpdate(options, 'app.plugins.hasRTL', true);
}
if (nestedSelect(options, 'docs.hasRTL') === true) {
nestedUpdate(options, 'docs.plugins.hasRTL', true);
}
if (nestedSelect(options, 'app.rtlExclude.length') > 0) {
nestedUpdate(options, 'app.exclude.rtl', nestedSelect(options, 'app.rtlExclude'));
}
if (nestedSelect(options, 'docs.rtlExclude.length') > 0) {
nestedUpdate(options, 'docs.exclude.rtl', nestedSelect(options, 'docs.rtlExclude'));
}
}