'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], head (ar) { checkArray(ar); const [head, ...rest] = ar; return head; }, tail (ar) { checkArray(ar); const [ tail ] = ar.slice(-1); return tail; }, 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; }, []); } };