2 Object.defineProperty(exports, "__esModule", { value: true });
3 exports.applyDefault = void 0;
4 const deepMerge_1 = require("./deepMerge");
6 * Pure function - doesn't mutate either parameter!
7 * Uses the default options and overrides with the options provided by the user
8 * @param defaultOptions the defaults
9 * @param userOptions the user opts
10 * @returns the options with defaults
12 function applyDefault(defaultOptions, userOptions) {
14 const options = JSON.parse(JSON.stringify(defaultOptions));
15 if (userOptions === null || userOptions === undefined) {
18 options.forEach((opt, i) => {
19 if (userOptions[i] !== undefined) {
20 const userOpt = userOptions[i];
21 if (deepMerge_1.isObjectNotArray(userOpt) && deepMerge_1.isObjectNotArray(opt)) {
22 options[i] = deepMerge_1.deepMerge(opt, userOpt);
31 exports.applyDefault = applyDefault;
32 //# sourceMappingURL=applyDefault.js.map