Sha256: 9a4be24b5fc78dc6edbc4d2b0dcde8e134b00020b069d0378da16808d21c1336
Contents?: true
Size: 700 Bytes
Versions: 39
Compression:
Stored size: 700 Bytes
Contents
'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]; }
Version data entries
39 entries across 38 versions & 12 rubygems