.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / @typescript-eslint / experimental-utils / dist / eslint-utils / applyDefault.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js
new file mode 100644 (file)
index 0000000..6ae1a79
--- /dev/null
@@ -0,0 +1,32 @@
+"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;
+    }
+    options.forEach((opt, i) => {
+        if (userOptions[i] !== undefined) {
+            const userOpt = userOptions[i];
+            if (deepMerge_1.isObjectNotArray(userOpt) && deepMerge_1.isObjectNotArray(opt)) {
+                options[i] = deepMerge_1.deepMerge(opt, userOpt);
+            }
+            else {
+                options[i] = userOpt;
+            }
+        }
+    });
+    return options;
+}
+exports.applyDefault = applyDefault;
+//# sourceMappingURL=applyDefault.js.map
\ No newline at end of file