.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / @typescript-eslint / experimental-utils / dist / eslint-utils / applyDefault.js
1 "use strict";
2 Object.defineProperty(exports, "__esModule", { value: true });
3 exports.applyDefault = void 0;
4 const deepMerge_1 = require("./deepMerge");
5 /**
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
11  */
12 function applyDefault(defaultOptions, userOptions) {
13     // clone defaults
14     const options = JSON.parse(JSON.stringify(defaultOptions));
15     if (userOptions === null || userOptions === undefined) {
16         return options;
17     }
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);
23             }
24             else {
25                 options[i] = userOpt;
26             }
27         }
28     });
29     return options;
30 }
31 exports.applyDefault = applyDefault;
32 //# sourceMappingURL=applyDefault.js.map