{"_id":"ensure-array","_rev":"104796","name":"ensure-array","description":"Ensure that an object is an array. Moves error checking out of your code.","dist-tags":{"latest":"1.0.0"},"maintainers":[{"name":"jeffbski","email":"jeff.barczewski@gmail.com"}],"time":{"modified":"2021-06-03T10:37:37.000Z","created":"2011-11-08T00:34:02.027Z","1.0.0":"2017-11-02T13:18:11.708Z","0.0.5":"2012-03-24T23:27:33.339Z","0.0.4":"2011-12-08T23:17:34.032Z","0.0.3":"2011-12-01T19:56:36.032Z","0.0.2":"2011-11-08T00:34:02.027Z"},"users":{},"author":{"name":"Jeff Barczewski","email":"jeff.barczewski@gmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/jeffbski/ensure-array.git"},"versions":{"1.0.0":{"author":{"name":"Jeff Barczewski","email":"jeff.barczewski@gmail.com"},"name":"ensure-array","description":"Ensure that an object is an array. Moves error checking out of your code.","version":"1.0.0","license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/jeffbski/ensure-array.git"},"bugs":{"url":"http://github.com/jeffbski/ensure-array/issues"},"main":"ensure-array.js","devDependencies":{"mocha":"~4.0.0","chai":"~4.1.0"},"scripts":{"test":"./node_modules/mocha/bin/mocha ./test/*.mocha.js --reporter spec --ui qunit"},"gitHead":"08fe1bce13f05864f88c976dfc057bda08c2f5c8","homepage":"https://github.com/jeffbski/ensure-array#readme","_id":"ensure-array@1.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"jeffbski","email":"jeff.barczewski@gmail.com"},"dist":{"shasum":"317e9fc632c656bb849eb649133528e205b23abc","size":2652,"noattachment":false,"key":"/ensure-array/-/ensure-array-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/ensure-array/download/ensure-array-1.0.0.tgz"},"maintainers":[{"name":"jeffbski","email":"jeff.barczewski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ensure-array-1.0.0.tgz_1509628690642_0.21542130317538977"},"directories":{},"publish_time":1509628691708,"_hasShrinkwrap":false,"_cnpm_publish_time":1509628691708},"0.0.5":{"author":{"name":"Jeff Barczewski","email":"jeff.barczewski@gmail.com"},"name":"ensure-array","description":"Ensure that an object is an array. Moves error checking out of your code.","version":"0.0.5","repository":{"type":"git","url":"git://github.com/jeffbski/ensure-array.git"},"bugs":{"url":"http://github.com/jeffbski/ensure-array/issues"},"main":"ensure-array.js","engines":{"node":"*"},"dependencies":{},"devDependencies":{"mocha":"~0.14.1","chai":"~0.5.2"},"scripts":{"test":"./node_modules/mocha/bin/mocha ./test/*.mocha.js"},"_npmUser":{"name":"jeffbski","email":"jeff.barczewski@gmail.com"},"_id":"ensure-array@0.0.5","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"355becc382c8eb99d68a49b450ae9e6e81102715","size":3817,"noattachment":false,"key":"/ensure-array/-/ensure-array-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/ensure-array/download/ensure-array-0.0.5.tgz"},"maintainers":[{"name":"jeffbski","email":"jeff.barczewski@gmail.com"}],"directories":{},"publish_time":1332631653339,"_cnpm_publish_time":1332631653339,"_hasShrinkwrap":false},"0.0.4":{"author":{"name":"Jeff Barczewski","email":"jeff.barczewski@gmail.com"},"name":"ensure-array","description":"Ensure that an object is an array. Moves error checking out of your code.","version":"0.0.4","repository":{"type":"git","url":"git://github.com/jeffbski/ensure-array.git"},"bugs":{"url":"http://github.com/jeffbski/ensure-array/issues"},"main":"ensure-array.js","engines":{"node":"*"},"dependencies":{},"devDependencies":{"tap":"~0.1.2","tapr":"~0.1.1"},"scripts":{"test":"node_modules/.bin/tapr ./test"},"_npmUser":{"name":"jeffbski","email":"jeff.barczewski@gmail.com"},"_id":"ensure-array@0.0.4","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"606449dafd008f88a60cb0b2196f53f21a264184","size":10240,"noattachment":false,"key":"/ensure-array/-/ensure-array-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/ensure-array/download/ensure-array-0.0.4.tgz"},"maintainers":[{"name":"jeffbski","email":"jeff.barczewski@gmail.com"}],"directories":{},"publish_time":1323386254032,"_cnpm_publish_time":1323386254032,"_hasShrinkwrap":false},"0.0.3":{"author":{"name":"Jeff Barczewski","email":"jeff.barczewski@gmail.com"},"name":"ensure-array","description":"Ensure that an object is an array. Moves error checking out of your code.","version":"0.0.3","repository":{"type":"git","url":"git://github.com/jeffbski/ensure-array.git"},"bugs":{"url":"http://github.com/jeffbski/ensure-array/issues"},"main":"ensure-array.js","engines":{"node":"*"},"dependencies":{},"devDependencies":{"tap":"~0.1.0","tapr":"~0.1.0"},"scripts":{"test":"node_modules/.bin/tapr ./test"},"_npmUser":{"name":"jeffbski","email":"jeff.barczewski@gmail.com"},"_id":"ensure-array@0.0.3","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"2fe42ceb898cb5774c35925cb26d8c0fc882a2d7","size":10240,"noattachment":false,"key":"/ensure-array/-/ensure-array-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/ensure-array/download/ensure-array-0.0.3.tgz"},"maintainers":[{"name":"jeffbski","email":"jeff.barczewski@gmail.com"}],"directories":{},"publish_time":1322769396032,"_cnpm_publish_time":1322769396032,"_hasShrinkwrap":false},"0.0.2":{"author":{"name":"Jeff Barczewski","email":"jeff.barczewski@gmail.com"},"name":"ensure-array","description":"Ensure that an object is an array. Moves error checking out of your code.","version":"0.0.2","repository":{"type":"git","url":"git://github.com/jeffbski/ensure-array.git"},"bugs":{"url":"http://github.com/jeffbski/ensure-array/issues"},"main":"ensure-array.js","engines":{"node":"~0.4.12"},"dependencies":{},"devDependencies":{"tap":"~0.0.12"},"scripts":{"test":"tap ./test"},"_npmUser":{"name":"jeffbski","email":"jeff.barczewski@gmail.com"},"_id":"ensure-array@0.0.2","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"43baec9b5b9a12ba17fb890da8671c646b7f88a4","size":10240,"noattachment":false,"key":"/ensure-array/-/ensure-array-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/ensure-array/download/ensure-array-0.0.2.tgz"},"maintainers":[{"name":"jeffbski","email":"jeff.barczewski@gmail.com"}],"directories":{},"publish_time":1320712442027,"_cnpm_publish_time":1320712442027,"_hasShrinkwrap":false}},"readme":"# ensure-array\n\nSimple convenience function which ensures that you are dealing with an array and you can\neliminate noise from your code.\n\n[![Build Status](https://secure.travis-ci.org/jeffbski/ensure-array.png?branch=master)](http://travis-ci.org/jeffbski/ensure-array)\n\nFor Example:\n\n```javascript\n  var array = require('ensure-array');\n\n  function foo(bar) {\n    array(bar).forEach(function (x) {\n      //do something with each item\n    });\n  }\n```\n\nInstead of doing something like this:\n\n```javascript\n  function foo(bar) {\n    if (bar === undefined) return;\n    if (bar === null) return;\n    if (!Array.isArray(bar)) bar = [bar];\n    bar.forEach(function (x) {\n      //do something with each item\n    });\n  }\n```\n\n## Description\n\nIt gets rid of the noise and coerces what is provided into an array, so you do not have to\nlitter your code with a bunch of extraneous checks.\n\nHere is the logic behind the function:\n\n 1. if nothing passed to the function return empty array []\n 2. if single argument passed is undefined or null return empty array []\n 3. if single argument passed is already an array, return it unchanged\n 4. otherwise return array containing all of the arguments\n\nHere is the actual code which makes it happen\n\n ```javascript\n module.exports = function array(a, b, n) {\n  if (arguments.length === 0) return [];            //no args, ret []\n  if (arguments.length === 1) {                     //single argument\n    if (a === undefined || a === null) return [];   //  undefined or null, ret []\n    if (Array.isArray(a)) return a;                 //  isArray, return it\n  }\n  return Array.prototype.slice.call(arguments);     //return array with copy of all arguments\n};\n```\n\n## Installation\n\n```bash\n  npm install ensure-array\n```\n\n\n## Usage\n\n```javascript\n  var array = require('ensure-array');  // get handle to the function\n  var foo = array(whatever);               // foo will now safely be an array\n```\n\n\n## Status\n\n - 2017-11-02 - 1.0.0  - Modernized by @Zertz\n - 2011-12-08 - 0.0.4  - Update tapr / tap versions\n - 2011-12-01 - 0.0.3  - Updated to support any version of Node.js\n\n\n## License\n\n - [MIT license](http://github.com/jeffbski/ensure-array/raw/master/LICENSE)\n\n## Contributors\n\n - Author: Jeff Barczewski (@jeffbski)\n - Modernized on 2017-11-02 by Pier-Luc Gendreau (@Zertz)\n\n## Contributing\n\n - Source code repository: http://github.com/jeffbski/ensure-array\n - Ideas and pull requests are encouraged  - http://github.com/jeffbski/ensure-array/issues\n - You may contact me at @jeffbski or through github at http://github.com/jeffbski\n","_attachments":{},"homepage":"https://github.com/jeffbski/ensure-array#readme","bugs":{"url":"http://github.com/jeffbski/ensure-array/issues"},"license":"MIT"}