UNPKG

chain-able

Version:

interfaces that describe their intentions.

64 lines (62 loc) 4.82 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 * @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 * * @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] * */ module.exports = function(ar) { // @NOTE: !'' === true if (isStringPrimitive(ar)) { return ar.includes(',') ? ar.split(',') : [ar] } else if (!ar) { return [ar] } else if (isArray(ar)) { return ar } else if (isSet(ar) || isMap(ar) || ar.values) { /** * @desc when using `new Set().values`... no forEach o.o * .values is also on `Object`... */ return ArrayFrom(ar.values(ar)) } else if (isIterator(ar)) { return ArrayFrom(ar) } else { return [ar] } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tYXJyLmpzIiwic291cmNlcyI6WyJ0by1hcnIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNTdHJpbmdQcmltaXRpdmUgPSByZXF1aXJlKCcuL2lzL3N0cmluZ1ByaW1pdGl2ZScpXG5jb25zdCBpc0FycmF5ID0gcmVxdWlyZSgnLi9pcy9hcnJheScpXG5jb25zdCBpc1NldCA9IHJlcXVpcmUoJy4vaXMvc2V0JylcbmNvbnN0IGlzTWFwID0gcmVxdWlyZSgnLi9pcy9tYXAnKVxuY29uc3QgaXNJdGVyYXRvciA9IHJlcXVpcmUoJy4vaXMvaXRlcmF0b3InKVxuY29uc3QgQXJyYXlGcm9tID0gcmVxdWlyZSgnLi91dGlsL2Zyb20nKVxuXG4vKipcbiAqIEBkZXNjIGFueXRoaW5nIGludG8gYW4gYXJyYXlcbiAqIEBzaWcgKiA9PiBBcnJheVxuICogQHNpbmNlIDAuMC4xXG4gKlxuICogQHBhcmFtICB7YW55fSBhciB0dXJuIHRoaXMgaW50byBhbiBhcnJheVxuICogQHJldHVybiB7QXJyYXl9IGFueXRoaW5nIGludG8gYW4gYXJyYXlcbiAqXG4gKiBAdGVzdHMgZGVwcy90by1hcnJcbiAqIEB0eXBlcyBkZXBzXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgIHRvYXJyKFtdKVxuICogICAvLyA9PiBbXVxuICpcbiAqICAgdG9hcnIoJycpXG4gKiAgIC8vID0+IFsnJ11cbiAqXG4gKiAgIHRvYXJyKCcxLDInKVxuICogICAvLyA9PiBbJzEnLCAnMiddXG4gKlxuICogICB0b2FycignMSwyJylcbiAqICAgLy8gPT4gWycxJywgJzInXVxuICpcbiAqICAgY29uc3QgbWFwID0gbmV3IE1hcCgpXG4gKiAgIG1hcC5zZXQoJ2VoJywgdHJ1ZSlcbiAqICAgY29uc3QgYXJyID0gdG9hcnIobWFwLmVudHJpZXMoKSlcbiAqICAgLy8gPT4gWydlaCcsIHRydWVdXG4gKlxuICogICBjb25zdCBzZXQgPSBuZXcgU2V0KClcbiAqICAgc2V0LmFkZCgnZWgnKVxuICogICBzZXQuYWRkKHRydWUpXG4gKiAgIGNvbnN0IGFyciA9IHRvYXJyKG1hcC5lbnRyaWVzKCkpXG4gKiAgIC8vID0+IFsnZWgnLCB0cnVlXVxuICpcbiAqICAgdG9hcnIoJycpLmNvbmNhdCh0b2FycihmYWxzZSkpLmNvbmNhdCh0b2FycihudWxsKSlcbiAqICAgLy8gPT4gWycnLCBmYWxzZSwgbnVsbF1cbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oYXIpIHtcbiAgLy8gQE5PVEU6ICEnJyA9PT0gdHJ1ZVxuICBpZiAoaXNTdHJpbmdQcmltaXRpdmUoYXIpKSByZXR1cm4gYXIuaW5jbHVkZXMoJywnKSA/IGFyLnNwbGl0KCcsJykgOiBbYXJdXG4gIGVsc2UgaWYgKCFhcikgcmV0dXJuIFthcl1cbiAgZWxzZSBpZiAoaXNBcnJheShhcikpIHJldHVybiBhclxuICBlbHNlIGlmIChpc1NldChhcikgfHwgaXNNYXAoYXIpIHx8IGFyLnZhbHVlcykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIHdoZW4gdXNpbmcgYG5ldyBTZXQoKS52YWx1ZXNgLi4uIG5vIGZvckVhY2ggby5vXG4gICAgICogICAgICAgLnZhbHVlcyBpcyBhbHNvIG9uIGBPYmplY3RgLi4uXG4gICAgICovXG4gICAgcmV0dXJuIEFycmF5RnJvbShhci52YWx1ZXMoYXIpKVxuICB9XG4gIGVsc2UgaWYgKGlzSXRlcmF0b3IoYXIpKSByZXR1cm4gQXJyYXlGcm9tKGFyKVxuICBlbHNlIHJldHVybiBbYXJdXG59XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDO0FBQ3pEQSxHQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDckNBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUNqQ0EsR0FBSyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ2pDQSxHQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7QUFDM0NBLEdBQUssQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEN4QyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsRUFBRSxFQUFFOztFQUU1QixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUEsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBQTtPQUNwRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUEsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFBO09BQ3BCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUEsT0FBTyxFQUFFLEVBQUE7T0FDMUIsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Ozs7O0lBSzVDLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7R0FDaEM7T0FDSSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFBLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFBO09BQ3hDLEVBQUEsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFBO0NBQ2pCOyJ9