.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / union-value / index.js
1 'use strict';
2
3 var isObject = require('is-extendable');
4 var union = require('arr-union');
5 var get = require('get-value');
6 var set = require('set-value');
7
8 module.exports = function unionValue(obj, prop, value) {
9   if (!isObject(obj)) {
10     throw new TypeError('union-value expects the first argument to be an object.');
11   }
12
13   if (typeof prop !== 'string') {
14     throw new TypeError('union-value expects `prop` to be a string.');
15   }
16
17   var arr = arrayify(get(obj, prop));
18   set(obj, prop, union(arr, arrayify(value)));
19   return obj;
20 };
21
22 function arrayify(val) {
23   if (val === null || typeof val === 'undefined') {
24     return [];
25   }
26   if (Array.isArray(val)) {
27     return val;
28   }
29   return [val];
30 }