'use strict'; const checkArray = val => { if (!Array.isArray(val)) { throw Error('value must be an array'); } }; module.exports = { toArray: arraylike => [...arraylike], ensureArray: val => Array.isArray(val) ? val : [val], unique (ar) { checkArray(ar); return ar.filter((val, i, input) => i === input.indexOf(val)); }, flatten: function flatten (ar) { checkArray(ar); return ar.reduce((acc, item) => { if (Array.isArray(item)) { acc.push(...flatten(item)); } else { acc.push(item); } return acc; }, []); } };