Spaces:
Runtime error
Runtime error
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | |
| typeof define === 'function' && define.amd ? define(factory) : | |
| (global = global || self, global.arrayBack = factory()); | |
| }(this, function () { 'use strict'; | |
| /** | |
| * Takes any input and guarantees an array back. | |
| * | |
| * - Converts array-like objects (e.g. `arguments`, `Set`) to a real array. | |
| * - Converts `undefined` to an empty array. | |
| * - Converts any another other, singular value (including `null`, objects and iterables other than `Set`) into an array containing that value. | |
| * - Ignores input which is already an array. | |
| * | |
| * @module array-back | |
| * @example | |
| * > const arrayify = require('array-back') | |
| * | |
| * > arrayify(undefined) | |
| * [] | |
| * | |
| * > arrayify(null) | |
| * [ null ] | |
| * | |
| * > arrayify(0) | |
| * [ 0 ] | |
| * | |
| * > arrayify([ 1, 2 ]) | |
| * [ 1, 2 ] | |
| * | |
| * > arrayify(new Set([ 1, 2 ])) | |
| * [ 1, 2 ] | |
| * | |
| * > function f(){ return arrayify(arguments); } | |
| * > f(1,2,3) | |
| * [ 1, 2, 3 ] | |
| */ | |
| function isObject (input) { | |
| return typeof input === 'object' && input !== null | |
| } | |
| function isArrayLike (input) { | |
| return isObject(input) && typeof input.length === 'number' | |
| } | |
| /** | |
| * @param {*} - The input value to convert to an array | |
| * @returns {Array} | |
| * @alias module:array-back | |
| */ | |
| function arrayify (input) { | |
| if (Array.isArray(input)) { | |
| return input | |
| } | |
| if (input === undefined) { | |
| return [] | |
| } | |
| if (isArrayLike(input) || input instanceof Set) { | |
| return Array.from(input) | |
| } | |
| return [ input ] | |
| } | |
| return arrayify; | |
| })); | |