UNPKG

foop

Version:

interfaces that describe their intentions.

74 lines (71 loc) 5.43 kB
var isStringPrimitive = require('./is/stringPrimitive') var isArray = require('./is/array') var isSet = require('./is/set') var isMap = require('./is/map') var isIterator = require('./is/iterator') var ArrayFrom = require('./util/from') /** * @desc anything into an array * @memberOf cast * @name toArr * @alias toArray * * @sig * => Array * @since 0.0.1 * * @param {any} ar turn this into an array * @return {Array} anything into an array * * @tests deps/to-arr * @types deps * * {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L465 underscore-to-arr} * @see {@link underscore-to-arr} * * @example * * toarr([]) * //=> [] * * toarr('') * //=> [''] * * toarr('1,2') * //=> ['1', '2'] * * toarr('1,2') * //=> ['1', '2'] * * const map = new Map() * map.set('eh', true) * const arr = toarr(map.entries()) * //=> ['eh', true] * * const set = new Set() * set.add('eh') * set.add(true) * const arr = toarr(map.entries()) * //=> ['eh', true] * * toarr('').concat(toarr(false)).concat(toarr(null)) * //=> ['', false, null] * */ var toArray = function(ar) { // @NOTE: !'' === true if (isStringPrimitive(ar)) { return ar.includes(',') ? ar.split(',') : [ar] } else if (!ar) { return [ar] } else if (isArray(ar)) { return ar } // hasIn(ar, 'values') else if (isSet(ar) || isMap(ar) || ar.values) { /** * @desc when using `new Set().values`... no forEach o.o * @NOTE .values is also on `Object`... */ return ArrayFrom(ar.values(ar)) } else if (isIterator(ar)) { return ArrayFrom(ar) } else { return [ar] } } module.exports = toArray //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tYXJyLmpzIiwic291cmNlcyI6WyJ0by1hcnIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNTdHJpbmdQcmltaXRpdmUgPSByZXF1aXJlKCcuL2lzL3N0cmluZ1ByaW1pdGl2ZScpXG5jb25zdCBpc0FycmF5ID0gcmVxdWlyZSgnLi9pcy9hcnJheScpXG5jb25zdCBpc1NldCA9IHJlcXVpcmUoJy4vaXMvc2V0JylcbmNvbnN0IGlzTWFwID0gcmVxdWlyZSgnLi9pcy9tYXAnKVxuY29uc3QgaXNJdGVyYXRvciA9IHJlcXVpcmUoJy4vaXMvaXRlcmF0b3InKVxuY29uc3QgQXJyYXlGcm9tID0gcmVxdWlyZSgnLi91dGlsL2Zyb20nKVxuXG4vKipcbiAqIEBkZXNjIGFueXRoaW5nIGludG8gYW4gYXJyYXlcbiAqIEBtZW1iZXJPZiBjYXN0XG4gKiBAbmFtZSB0b0FyclxuICogQGFsaWFzIHRvQXJyYXlcbiAqXG4gKiBAc2lnICogPT4gQXJyYXlcbiAqIEBzaW5jZSAwLjAuMVxuICpcbiAqIEBwYXJhbSAge2FueX0gYXIgdHVybiB0aGlzIGludG8gYW4gYXJyYXlcbiAqIEByZXR1cm4ge0FycmF5fSBhbnl0aGluZyBpbnRvIGFuIGFycmF5XG4gKlxuICogQHRlc3RzIGRlcHMvdG8tYXJyXG4gKiBAdHlwZXMgZGVwc1xuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMNDY1IHVuZGVyc2NvcmUtdG8tYXJyfVxuICogQHNlZSB7QGxpbmsgdW5kZXJzY29yZS10by1hcnJ9XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgIHRvYXJyKFtdKVxuICogICAvLz0+IFtdXG4gKlxuICogICB0b2FycignJylcbiAqICAgLy89PiBbJyddXG4gKlxuICogICB0b2FycignMSwyJylcbiAqICAgLy89PiBbJzEnLCAnMiddXG4gKlxuICogICB0b2FycignMSwyJylcbiAqICAgLy89PiBbJzEnLCAnMiddXG4gKlxuICogICBjb25zdCBtYXAgPSBuZXcgTWFwKClcbiAqICAgbWFwLnNldCgnZWgnLCB0cnVlKVxuICogICBjb25zdCBhcnIgPSB0b2FycihtYXAuZW50cmllcygpKVxuICogICAvLz0+IFsnZWgnLCB0cnVlXVxuICpcbiAqICAgY29uc3Qgc2V0ID0gbmV3IFNldCgpXG4gKiAgIHNldC5hZGQoJ2VoJylcbiAqICAgc2V0LmFkZCh0cnVlKVxuICogICBjb25zdCBhcnIgPSB0b2FycihtYXAuZW50cmllcygpKVxuICogICAvLz0+IFsnZWgnLCB0cnVlXVxuICpcbiAqICAgdG9hcnIoJycpLmNvbmNhdCh0b2FycihmYWxzZSkpLmNvbmNhdCh0b2FycihudWxsKSlcbiAqICAgLy89PiBbJycsIGZhbHNlLCBudWxsXVxuICpcbiAqL1xuY29uc3QgdG9BcnJheSA9IGZ1bmN0aW9uKGFyKSB7XG4gIC8vIEBOT1RFOiAhJycgPT09IHRydWVcbiAgaWYgKGlzU3RyaW5nUHJpbWl0aXZlKGFyKSkgcmV0dXJuIGFyLmluY2x1ZGVzKCcsJykgPyBhci5zcGxpdCgnLCcpIDogW2FyXVxuICBlbHNlIGlmICghYXIpIHJldHVybiBbYXJdXG4gIGVsc2UgaWYgKGlzQXJyYXkoYXIpKSByZXR1cm4gYXJcbiAgLy8gaGFzSW4oYXIsICd2YWx1ZXMnKVxuICBlbHNlIGlmIChpc1NldChhcikgfHwgaXNNYXAoYXIpIHx8IGFyLnZhbHVlcykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIHdoZW4gdXNpbmcgYG5ldyBTZXQoKS52YWx1ZXNgLi4uIG5vIGZvckVhY2ggby5vXG4gICAgICogQE5PVEUgLnZhbHVlcyBpcyBhbHNvIG9uIGBPYmplY3RgLi4uXG4gICAgICovXG4gICAgcmV0dXJuIEFycmF5RnJvbShhci52YWx1ZXMoYXIpKVxuICB9XG4gIGVsc2UgaWYgKGlzSXRlcmF0b3IoYXIpKSByZXR1cm4gQXJyYXlGcm9tKGFyKVxuICBlbHNlIHJldHVybiBbYXJdXG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9BcnJheVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztBQUN6REEsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3JDQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDakNBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUNqQ0EsR0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0FBQzNDQSxHQUFLLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpRHhDQSxHQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsRUFBRSxFQUFFOztFQUUzQixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUEsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBQTtPQUNwRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUEsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFBO09BQ3BCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUEsT0FBTyxFQUFFLEVBQUE7O09BRTFCLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFOzs7OztJQUs1QyxPQUFPLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0dBQ2hDO09BQ0ksSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQSxPQUFPLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBQTtPQUN4QyxFQUFBLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBQTtDQUNqQjs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU87In0=