{"_id":"fastqueue","_rev":"44539","name":"fastqueue","description":"A fast push/shift sync queue","dist-tags":{"latest":"0.1.0"},"maintainers":[{"name":"creationix","email":"tim@creationix.com"}],"time":{"modified":"2021-06-03T10:13:42.000Z","created":"2013-04-02T19:53:04.028Z","0.1.0":"2013-04-02T19:53:04.028Z"},"users":{"alfredwesterveld":true},"versions":{"0.1.0":{"name":"fastqueue","version":"0.1.0","description":"A fast push/shift sync queue","main":"queue.js","readmeFilename":"README.md","_id":"fastqueue@0.1.0","dist":{"shasum":"6c691016b3806186476eeb05a717babb8f633c19","size":1049,"noattachment":false,"key":"/fastqueue/-/fastqueue-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/fastqueue/download/fastqueue-0.1.0.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"creationix","email":"tim@creationix.com"},"maintainers":[{"name":"creationix","email":"tim@creationix.com"}],"directories":{},"publish_time":1364932384028,"_cnpm_publish_time":1364932384028,"_hasShrinkwrap":false}},"readme":"# Fast Queue\n\nWhile normal JavaScript arrays can be used as FIFO queues, the `.shift()` call is very slow if the queue gets large because it has to reindex all the remaining items on every shift.\n\nThis library is a fast queue that only implements `.push(item)`, `.shift()`, `.unshift(item)` and `.length` from the Array interface.\n\nInternally it uses two arrays and cycles them and uses counters so that the `.shift()` calls are still fast.\n\n## Usage\n\n```js\nvar Queue = require('fastqueue');\n\nvar q = new Queue;\nq.push(1);\nq.push(2);\nq.push(3);\nvar i = 4;\nwhile (q.length > 0) {\n  console.log(q.length, q.shift());\n  q.unshift(i++);\n  console.log(q.length, q.shift());\n  q.push(i++);\n  console.log(q.length, q.shift());\n}\n```\n","_attachments":{},"readmeFilename":"README.md"}