{"_id":"trier","_rev":"198083","name":"trier","description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","dist-tags":{"latest":"0.3.6"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"time":{"modified":"2021-06-03T12:30:10.000Z","created":"2013-09-17T22:00:43.028Z","0.3.6":"2013-12-01T21:53:57.333Z","0.3.5":"2013-10-27T21:40:19.077Z","0.3.4":"2013-10-12T16:56:20.309Z","0.3.3":"2013-09-25T13:06:44.587Z","0.3.2":"2013-09-25T12:52:40.249Z","0.3.1":"2013-09-23T08:25:10.824Z","0.3.0":"2013-09-22T10:30:03.859Z","0.2.1":"2013-09-21T23:57:21.670Z","0.2.0":"2013-09-21T23:42:45.530Z","0.1.0":"2013-09-17T22:00:43.028Z"},"users":{},"author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"repository":{"type":"git","url":"https://github.com/philbooth/trier.js.git"},"versions":{"0.3.6":{"name":"trier","version":"0.3.6","description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","homepage":"https://github.com/philbooth/trier.js","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js.git"},"keywords":["repeat","retry","predicate","conditional","invocation"],"devDependencies":{"jshint":"2.2.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.8.x","spooks":"0.5.x","uglify-js":"2.4.x"},"scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Andrew Lawson","url":"https://github.com/adlawson"},{"name":"Tim O'Sulg","url":"https://github.com/timgluz"}],"readmeFilename":"README.md","_id":"trier@0.3.6","dist":{"shasum":"61a80f44f8d7a24704f7628ada70c2c79325667d","size":10391,"noattachment":false,"key":"/trier/-/trier-0.3.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.6.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1385934837333,"_cnpm_publish_time":1385934837333,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.3.5":{"name":"trier","version":"0.3.5","description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","homepage":"https://github.com/philbooth/trier.js","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js.git"},"keywords":["repeat","retry","predicate","conditional","invocation"],"devDependencies":{"jshint":"2.2.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.8.x","spooks":"0.5.x","uglify-js":"2.4.x"},"scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Andrew Lawson","url":"https://github.com/adlawson"}],"readmeFilename":"README.md","_id":"trier@0.3.5","dist":{"shasum":"6f9e5a4a32f3cc1857d0f88249e30c6be4cf3444","size":8876,"noattachment":false,"key":"/trier/-/trier-0.3.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.5.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1382910019077,"_cnpm_publish_time":1382910019077,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.3.4":{"name":"trier","version":"0.3.4","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"},{"name":"Andrew Lawson"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.3.4","dist":{"shasum":"27444ac85a50d33a30c60ae3ccdd8c2b76faa7cf","size":8461,"noattachment":false,"key":"/trier/-/trier-0.3.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.4.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1381596980309,"_cnpm_publish_time":1381596980309,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.3.3":{"name":"trier","version":"0.3.3","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.3.3","dist":{"shasum":"2c0fee04625949c18af8023a9cb4e28dc41c1c21","size":9728,"noattachment":false,"key":"/trier/-/trier-0.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.3.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1380114404587,"_cnpm_publish_time":1380114404587,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.3.2":{"name":"trier","version":"0.3.2","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.3.2","dist":{"shasum":"39056efd58f9f3acda813cef7f7e3e57568b1cfa","size":9771,"noattachment":false,"key":"/trier/-/trier-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.2.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1380113560249,"_cnpm_publish_time":1380113560249,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.3.1":{"name":"trier","version":"0.3.1","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.3.1","dist":{"shasum":"922ab87a85874c8acc27553cd7ae4b918c2144b3","size":9528,"noattachment":false,"key":"/trier/-/trier-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1379924710824,"_cnpm_publish_time":1379924710824,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.3.0":{"name":"trier","version":"0.3.0","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.3.0","dist":{"shasum":"e2b7d18187f7ffc67f5d8d88bed598e1f6582784","size":7905,"noattachment":false,"key":"/trier/-/trier-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1379845803859,"_cnpm_publish_time":1379845803859,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.2.1":{"name":"trier","version":"0.2.1","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.2.1","dist":{"shasum":"bf4de90fc28fa2dfa933cd08964b54c4819791c5","size":7450,"noattachment":false,"key":"/trier/-/trier-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.2.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1379807841670,"_cnpm_publish_time":1379807841670,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.2.0":{"name":"trier","version":"0.2.0","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","coffee-script":"1.6.x","mocha":"1.13.x","chai":"1.7.x","spooks":"0.5.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --compilers coffee:coffee-script --colors ./test/trier.coffee","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.2.0","dist":{"shasum":"4dcab091998fe4370aabff48c1c75e76e081c259","size":7342,"noattachment":false,"key":"/trier/-/trier-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1379806965530,"_cnpm_publish_time":1379806965530,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"},"0.1.0":{"name":"trier","version":"0.1.0","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Because everyone loves a trier! Conditional and repeated task invocation for node and browser.","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/trier","repository":{"type":"git","url":"https://github.com/philbooth/trier.js"},"keywords":["repeat","retry","predicate","conditional","invocation","ender"],"ender":"noop","jam":{"main":"src/trier.js"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.7.x","uglify-js":"2.4.x"},"license":"MIT","scripts":{"lint":"./node_modules/.bin/jshint ./src/trier.js --config config/jshint.json","test":"./node_modules/.bin/mocha --ui tdd --reporter spec --colors ./test/trier.js","minify":"./node_modules/.bin/uglifyjs ./src/trier.js --compress --mangle --output ./lib/trier.min.js"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"_id":"trier@0.1.0","dist":{"shasum":"58b67b23955429f3e3e01b6e5fef677bcd929964","size":5397,"noattachment":false,"key":"/trier/-/trier-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/trier/download/trier-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1379455243028,"_cnpm_publish_time":1379455243028,"_hasShrinkwrap":false,"deprecated":"Alas, trier is dead. Rest in peace, trier. But worry not! A phoenix rises from the flames; perhaps you should look at `tryer` instead!"}},"readme":"# trier.js\n\n[![Build status][ci-image]][ci-status]\n\nBecause everyone loves a trier!\nConditional\nand repeated\ntask invocation\nfor node\nand browser.\n\n## License\n\n[MIT][license]\n\n## Installation\n\n### Via NPM\n\n```\nnpm install trier\n```\n\n### Via Jam\n\n```\njam install trier\n```\n\n### Via Git\n\n```\ngit clone git@github.com:philbooth/trier.js.git\n```\n\n## Usage\n\n### Loading the library\n\nBoth\nCommonJS\n(e.g.\nif you're running on [Node.js][node]\nor if you're in the browser with [Browserify])\nand AMD\n(e.g. if you're using [Require.js][require])\nloading styles are supported.\nIf neither system is detected,\nthe library defaults to\nexporting it's interface globally\nas `trier`.\n\n### Calling the library\n\ntrier.js exports two public functions,\n`when` and `until`.\n\n#### trier.when (options)\n\nPerforms some action\nwhen prerequesite conditions\nare met.\n\nAccepts a single options object,\nwhich supports the following properties:\n\n* `predicate`: Callback function used to test precondition.\n  Should return `false` to postpone `action` or `true` to perform it.\n  Defaults to nop.\n* `action`: The function you want to call. Defaults to nop.\n* `fail`: Callback function to be invoked if `limit` tries are reached.\n  Defaults to nop.\n* `context`: Context object used when applying `predicate`, `action` and `fail`.\n  Defaults to `{}`.\n* `args`: Arguments array used when applying `predicate`, `action` and `fail`.\n  Defaults to `[]`.\n* `interval`: Retry interval in milliseconds.\n  Use negative numbers to indicate that subsequent retries should wait for twice the preceding interval\n  (i.e. exponential waits).\n  Defaults to -1000.\n* `limit`: Maximum retry count, at which point the call fails and retry iterations cease.\n  Use a negative number to indicate that call should continue indefinitely\n  (i.e. never fail).\n  Defaults to -1.\n\nExample:\n```javascript\ntrier.when({\n    predicate: function () {\n        return db.isConnected;\n    },\n    action: function () {\n        db.insert(user);\n    },\n    fail: function () {\n        log.error('No database connection, terminating.');\n        process.exit(1);\n    },\n    pass: function () {\n        next();\n    },\n    interval: 1000,\n    limit: 10\n});\n```\n\n#### trier.until (options)\n\nPerforms some action repeatedly\nuntil postrequisite conditions\nare met.\n\nAccepts a single options object,\nwhich supports the following properties:\n\n* `predicate`: Callback function used to test postcondition.\n  Should return `false` to retry `action` or `true` to stop it.\n  Defaults to nop.\n* `action`: The function you want to call. Defaults to nop.\n* `fail`: Callback function to be invoked if `limit` tries are reached.\n  Defaults to nop.\n* `context`: Context object used when applying `predicate`, `action` and `fail`.\n  Defaults to `{}`.\n* `args`: Arguments array used when applying `predicate`, `action` and `fail`.\n  Defaults to `[]`.\n* `interval`: Retry interval in milliseconds.\n  Use negative numbers to indicate that subsequent retries should wait for twice the preceding interval\n  (i.e. exponential waits).\n  Defaults to -1000.\n* `limit`: Maximum retry count, at which point the call fails and retry iterations cease.\n  Use a negative number to indicate that call should continue indefinitely\n  (i.e. never fail).\n  Defaults to -1.\n\nExample:\n```javascript\nvar sent = false\ntrier.until({\n    predicate: function () {\n        return sent;\n    },\n    action: function () {\n        smtp.send(email, function (error) {\n            if (!error) {\n                sent = true;\n            }\n        });\n    },\n    pass: function () {\n        next();\n    },\n    interval: -1000,\n    limit: -1\n});\n```\n\n## Development\n\n### Dependencies\n\nThe build environment relies on\nNode.js,\n[NPM],\n[JSHint],\n[Mocha],\n[Chai] and\n[UglifyJS].\nAssuming that you already have Node.js and NPM set up,\nyou just need to run `npm install`\nto install all of the dependencies as listed in `package.json`.\n\n### Unit tests\n\nThe unit tests are in `test/trier.js`.\nYou can run them with the command `npm test` or `jake test`.\nTo run the tests in a web browser,\nopen `test/trier.html`.\n\n[ci-image]: https://secure.travis-ci.org/philbooth/trier.js.png?branch=master\n[ci-status]: http://travis-ci.org/#!/philbooth/trier.js\n[license]: https://github.com/philbooth/trier.js/blob/master/COPYING\n[node]: http://nodejs.org/\n[browserify]: http://browserify.org/\n[require]: http://requirejs.org/\n[npm]: https://npmjs.org/\n[jshint]: https://github.com/jshint/node-jshint\n[mocha]: http://visionmedia.github.com/mocha\n[chai]: http://chaijs.com/\n[uglifyjs]: https://github.com/mishoo/UglifyJS\n\n","_attachments":{},"readmeFilename":"README.md","homepage":"https://github.com/philbooth/trier.js","bugs":{"url":"https://github.com/philbooth/trier.js/issues"},"license":"MIT"}