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