.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / union-value / index.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/union-value/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/union-value/index.js
new file mode 100644 (file)
index 0000000..9c5d8db
--- /dev/null
@@ -0,0 +1,30 @@
+'use strict';
+
+var isObject = require('is-extendable');
+var union = require('arr-union');
+var get = require('get-value');
+var set = require('set-value');
+
+module.exports = function unionValue(obj, prop, value) {
+  if (!isObject(obj)) {
+    throw new TypeError('union-value expects the first argument to be an object.');
+  }
+
+  if (typeof prop !== 'string') {
+    throw new TypeError('union-value expects `prop` to be a string.');
+  }
+
+  var arr = arrayify(get(obj, prop));
+  set(obj, prop, union(arr, arrayify(value)));
+  return obj;
+};
+
+function arrayify(val) {
+  if (val === null || typeof val === 'undefined') {
+    return [];
+  }
+  if (Array.isArray(val)) {
+    return val;
+  }
+  return [val];
+}