'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]; }