mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-02 23:09:30 +08:00
34 lines
No EOL
1.2 KiB
Text
34 lines
No EOL
1.2 KiB
Text
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.applyDefault = void 0;
|
|
const deepMerge_1 = require("./deepMerge");
|
|
/**
|
|
* Pure function - doesn't mutate either parameter!
|
|
* Uses the default options and overrides with the options provided by the user
|
|
* @param defaultOptions the defaults
|
|
* @param userOptions the user opts
|
|
* @returns the options with defaults
|
|
*/
|
|
function applyDefault(defaultOptions, userOptions) {
|
|
// clone defaults
|
|
const options = JSON.parse(JSON.stringify(defaultOptions));
|
|
if (userOptions === null || userOptions === undefined) {
|
|
return options;
|
|
}
|
|
// For avoiding the type error
|
|
// `This expression is not callable. Type 'unknown' has no call signatures.ts(2349)`
|
|
options.forEach((opt, i) => {
|
|
if (userOptions[i] !== undefined) {
|
|
const userOpt = userOptions[i];
|
|
if ((0, deepMerge_1.isObjectNotArray)(userOpt) && (0, deepMerge_1.isObjectNotArray)(opt)) {
|
|
options[i] = (0, deepMerge_1.deepMerge)(opt, userOpt);
|
|
}
|
|
else {
|
|
options[i] = userOpt;
|
|
}
|
|
}
|
|
});
|
|
return options;
|
|
}
|
|
exports.applyDefault = applyDefault;
|
|
//# sourceMappingURL=applyDefault.js.map |