{"_id":"throwback","_rev":"264901","name":"throwback","description":"Simple asynchronous middleware pattern","dist-tags":{"latest":"4.1.0"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"time":{"modified":"2021-06-03T17:03:02.000Z","created":"2016-05-06T18:47:22.183Z","4.1.0":"2019-06-09T23:00:08.648Z","4.0.0":"2018-10-21T20:38:12.354Z","3.0.0":"2018-05-21T07:17:29.981Z","2.0.1":"2017-05-08T21:26:23.480Z","2.0.0":"2017-01-18T18:28:35.179Z","1.1.1":"2016-06-20T18:47:54.871Z","1.1.0":"2016-05-11T22:10:31.849Z","1.0.3":"2016-05-10T15:57:30.638Z","1.0.2":"2016-05-07T23:37:12.090Z","1.0.1":"2016-05-06T18:47:22.183Z"},"users":{},"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"repository":{"type":"git","url":"git://github.com/serviejs/throwback.git"},"versions":{"4.1.0":{"name":"throwback","version":"4.1.0","description":"Simple asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"prettier":"prettier --write","lint":"tslint \"src/**/*.ts\" --project tsconfig.json","format":"npm run prettier -- README.md \"src/**/*.{js,ts}\"","build":"rimraf dist && tsc","specs":"jest --coverage","test":"npm run -s lint && npm run -s build && npm run -s specs && npm run -s size","prepare":"npm run build","size":"size-limit"},"repository":{"type":"git","url":"git://github.com/serviejs/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/serviejs/throwback/issues"},"homepage":"https://github.com/serviejs/throwback","size-limit":[{"path":"./dist/index.js","limit":"90 B"}],"jest":{"roots":["<rootDir>/src/"],"transform":{"\\.tsx?$":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$","moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,json,css,md}":["npm run prettier","git add"]},"publishConfig":{"access":"public"},"devDependencies":{"@types/jest":"^24.0.13","@types/node":"^12.0.7","husky":"^2.4.0","jest":"^24.8.0","lint-staged":"^8.2.0","prettier":"^1.18.2","rimraf":"^2.6.2","size-limit":"^1.3.6","ts-jest":"^24.0.2","tslint":"^5.10.0","tslint-config-prettier":"^1.18.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3"},"gitHead":"8b458313ae7489562c78b7bb36943bfc859f17c7","_id":"throwback@4.1.0","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"shasum":"421aac7ba9eff473105385ac4a2b0130d4b0a59c","size":6908,"noattachment":false,"key":"/throwback/-/throwback-4.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-4.1.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/throwback_4.1.0_1560121208529_0.10463905278013441"},"_hasShrinkwrap":false,"publish_time":1560121208648,"_cnpm_publish_time":1560121208648},"4.0.0":{"name":"throwback","version":"4.0.0","description":"Simple asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"lint":"tslint \"src/**/*.ts\" --project tsconfig.json","build":"rimraf dist && tsc","specs":"jest --coverage","test":"npm run build && npm run lint && npm run specs","prepublish":"npm run build"},"repository":{"type":"git","url":"git://github.com/serviejs/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/serviejs/throwback/issues"},"homepage":"https://github.com/serviejs/throwback","jest":{"roots":["<rootDir>/src/"],"transform":{"\\.tsx?$":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$","moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"devDependencies":{"@types/jest":"^23.3.2","@types/node":"^10.1.2","jest":"^23.6.0","rimraf":"^2.6.2","ts-jest":"^23.10.0","tslint":"^5.10.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3"},"gitHead":"060dd41350f2516549c8ee1fa41e75cd585e65db","_id":"throwback@4.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"128f96dcea5308df01fe7c99d50e33f77a7a2230","size":6567,"noattachment":false,"key":"/throwback/-/throwback-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-4.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/throwback_4.0.0_1540154292261_0.07861322086289602"},"_hasShrinkwrap":false,"publish_time":1540154292354,"_cnpm_publish_time":1540154292354},"3.0.0":{"name":"throwback","version":"3.0.0","description":"Simple asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/"],"scripts":{"lint":"tslint \"src/**/*.ts\" --project tsconfig.json","build":"rimraf dist && tsc","specs":"jest --coverage","test":"npm run build && npm run lint && npm run specs","prepublish":"npm run build"},"repository":{"type":"git","url":"git://github.com/serviejs/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/serviejs/throwback/issues"},"homepage":"https://github.com/serviejs/throwback","jest":{"roots":["<rootDir>/src/"],"transform":{"\\.tsx?$":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$","moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"devDependencies":{"@types/jest":"^22.2.3","@types/node":"^10.1.2","jest":"^22.4.4","rimraf":"^2.6.2","ts-jest":"^22.4.6","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3"},"gitHead":"c97bcec9e1f1bc8f04b42ab1fbf7d5cab56f04d9","_id":"throwback@3.0.0","_npmVersion":"5.6.0","_nodeVersion":"10.1.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"1effdf6ccf5a505a7a7ac0568249a24a425ac821","size":7512,"noattachment":false,"key":"/throwback/-/throwback-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-3.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/throwback_3.0.0_1526887049799_0.2428390245333576"},"_hasShrinkwrap":false,"publish_time":1526887049981,"_cnpm_publish_time":1526887049981},"2.0.1":{"name":"throwback","version":"2.0.1","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","README.md","LICENSE"],"scripts":{"lint":"tslint \"src/**/*.ts\"","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/serviejs/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/serviejs/throwback/issues"},"homepage":"https://github.com/serviejs/throwback","devDependencies":{"blue-tape":"^1.0.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.4.4","tap-spec":"^4.1.1","tslint":"^4.3.1","tslint-config-standard":"^2.0.0","typescript":"^2.0.3","typings":"^2.1.0"},"gitHead":"8a718c06a3fbbfbe1297159b6ec723e277beaa92","_id":"throwback@2.0.1","_shasum":"12db580310ef2030e39903513ea3c55273b5e183","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.3.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"12db580310ef2030e39903513ea3c55273b5e183","size":5211,"noattachment":false,"key":"/throwback/-/throwback-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-2.0.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/throwback-2.0.1.tgz_1494278781451_0.3121768571436405"},"directories":{},"publish_time":1494278783480,"_hasShrinkwrap":false,"_cnpm_publish_time":1494278783480},"2.0.0":{"name":"throwback","version":"2.0.0","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","README.md","LICENSE"],"scripts":{"lint":"tslint \"src/**/*.ts\"","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/throwback/issues"},"homepage":"https://github.com/blakeembrey/throwback","devDependencies":{"blue-tape":"^1.0.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.4.4","tap-spec":"^4.1.1","tslint":"^4.3.1","tslint-config-standard":"^2.0.0","typescript":"^2.0.3","typings":"^2.1.0"},"gitHead":"ae1db957b722c2234b062fcd452ccfe411d4df45","_id":"throwback@2.0.0","_shasum":"3a8669f4778ba4972ad88ca144a49f43c441b125","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.3.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"3a8669f4778ba4972ad88ca144a49f43c441b125","size":5237,"noattachment":false,"key":"/throwback/-/throwback-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-2.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/throwback-2.0.0.tgz_1484764113270_0.2886425368487835"},"directories":{},"publish_time":1484764115179,"_cnpm_publish_time":1484764115179,"_hasShrinkwrap":false},"1.1.1":{"name":"throwback","version":"1.1.1","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","README.md","LICENSE"],"scripts":{"lint":"# TODO","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/throwback/issues"},"homepage":"https://github.com/blakeembrey/throwback","devDependencies":{"blue-tape":"^0.2.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.4.4","tap-spec":"^4.1.1","typescript":"^1.5.3","typings":"^1.3.0"},"dependencies":{"any-promise":"^1.3.0"},"gitHead":"e67f088ce590bf7efc6d0f2739c75d02256a2ac4","_id":"throwback@1.1.1","_shasum":"f007e7c17604a6d16d7a07c41aa0e8fedc6184a4","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"f007e7c17604a6d16d7a07c41aa0e8fedc6184a4","size":4303,"noattachment":false,"key":"/throwback/-/throwback-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-1.1.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/throwback-1.1.1.tgz_1466448472105_0.7141178138554096"},"directories":{},"publish_time":1466448474871,"_cnpm_publish_time":1466448474871,"_hasShrinkwrap":false},"1.1.0":{"name":"throwback","version":"1.1.0","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","README.md","LICENSE"],"scripts":{"lint":"# TODO","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/throwback/issues"},"homepage":"https://github.com/blakeembrey/throwback","devDependencies":{"blue-tape":"^0.2.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.3.17","tap-spec":"^4.1.1","typescript":"^1.5.3","typings":"^0.8.1"},"dependencies":{"any-promise":"^1.3.0"},"gitHead":"ac79924b12bc2926ce3a9e0bb8d108d25a538bba","_id":"throwback@1.1.0","_shasum":"a7daffa1b2a6fdf302bad05c48c60d58b1409a41","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"a7daffa1b2a6fdf302bad05c48c60d58b1409a41","size":4207,"noattachment":false,"key":"/throwback/-/throwback-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-1.1.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/throwback-1.1.0.tgz_1463004629294_0.9448899847920984"},"directories":{},"publish_time":1463004631849,"_cnpm_publish_time":1463004631849,"_hasShrinkwrap":false},"1.0.3":{"name":"throwback","version":"1.0.3","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","typings.json","README.md","LICENSE"],"scripts":{"lint":"# TODO","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/throwback/issues"},"homepage":"https://github.com/blakeembrey/throwback","devDependencies":{"blue-tape":"^0.2.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.3.17","tap-spec":"^4.1.1","typescript":"^1.5.3","typings":"^0.8.1"},"dependencies":{"any-promise":"^1.2.0"},"gitHead":"3e186517226b8bb0a5b8f22fab2ce36f4f00199a","_id":"throwback@1.0.3","_shasum":"d59536c2db75b5c0c4df6bc1f80849160b0a9329","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"d59536c2db75b5c0c4df6bc1f80849160b0a9329","size":4331,"noattachment":false,"key":"/throwback/-/throwback-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-1.0.3.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/throwback-1.0.3.tgz_1462895849330_0.4285275989677757"},"directories":{},"publish_time":1462895850638,"_cnpm_publish_time":1462895850638,"_hasShrinkwrap":false},"1.0.2":{"name":"throwback","version":"1.0.2","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","typings.json","README.md","LICENSE"],"scripts":{"lint":"# TODO","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/throwback/issues"},"homepage":"https://github.com/blakeembrey/throwback","devDependencies":{"blue-tape":"^0.2.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.3.17","tap-spec":"^4.1.1","typescript":"^1.5.3","typings":"^0.8.1"},"dependencies":{"any-promise":"^1.2.0"},"gitHead":"72d14b19f4d1f53995513ba0860af1fcbeb23009","_id":"throwback@1.0.2","_shasum":"6ffd86a50a5b53dc5546f0abc24498e1036d228b","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"6ffd86a50a5b53dc5546f0abc24498e1036d228b","size":4356,"noattachment":false,"key":"/throwback/-/throwback-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-1.0.2.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/throwback-1.0.2.tgz_1462664231073_0.011637565679848194"},"directories":{},"publish_time":1462664232090,"_cnpm_publish_time":1462664232090,"_hasShrinkwrap":false},"1.0.1":{"name":"throwback","version":"1.0.1","description":"An asynchronous middleware pattern","main":"dist/index.js","typings":"dist/index.d.ts","files":["dist/","README.md","LICENSE"],"scripts":{"lint":"# TODO","build":"rm -rf dist && tsc","test-spec":"blue-tape 'dist/**/*.spec.js' | tap-spec","test-cov":"istanbul cover --print none -x '*.spec.js' node_modules/blue-tape/bin/blue-tape.js -- 'dist/**/*.spec.js' | tap-spec","test":"npm run build && npm run lint && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/throwback.git"},"keywords":["middleware","async","compose","promise","ware","layer"],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com","url":"http://blakeembrey.me"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/throwback/issues"},"homepage":"https://github.com/blakeembrey/throwback","devDependencies":{"blue-tape":"^0.2.0","bluebird":"^3.3.5","chai":"^3.2.0","istanbul":"^0.3.17","tap-spec":"^4.1.1","typescript":"^1.5.3","typings":"^0.8.1"},"dependencies":{"any-promise":"^1.2.0"},"gitHead":"edba1817c7d51991fb2d4ff76408412429fa320d","_id":"throwback@1.0.1","_shasum":"8a036062015ae0c0af043569134fd42b90b6e640","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"8a036062015ae0c0af043569134fd42b90b6e640","size":4221,"noattachment":false,"key":"/throwback/-/throwback-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/throwback/download/throwback-1.0.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/throwback-1.0.1.tgz_1462560440551_0.19433095422573388"},"directories":{},"publish_time":1462560442183,"_cnpm_publish_time":1462560442183,"_hasShrinkwrap":false}},"readme":"# Throwback\n\n[![NPM version](https://img.shields.io/npm/v/throwback.svg?style=flat)](https://npmjs.org/package/throwback)\n[![NPM downloads](https://img.shields.io/npm/dm/throwback.svg?style=flat)](https://npmjs.org/package/throwback)\n[![Build status](https://img.shields.io/travis/serviejs/throwback.svg?style=flat)](https://travis-ci.org/serviejs/throwback)\n[![Test coverage](https://img.shields.io/coveralls/serviejs/throwback.svg?style=flat)](https://coveralls.io/r/serviejs/throwback?branch=master)\n\n> Simple asynchronous middleware pattern.\n\n## Installation\n\n```\nnpm install throwback --save\n```\n\n## Usage\n\nCompose asynchronous (promise-returning) functions.\n\n```js\nconst { compose } = require(\"throwback\");\n\nconst fn = compose([\n  async function(ctx, next) {\n    console.log(1);\n\n    try {\n      await next();\n    } catch (err) {\n      console.log(\"throwback\", err);\n    }\n\n    console.log(4);\n  },\n  async function(ctx, next) {\n    console.log(2);\n\n    return next();\n  }\n]);\n\n// Callback runs at the end of the stack, before\n// the middleware bubbles back to the beginning.\nfn({}, function(ctx) {\n  console.log(3);\n\n  ctx.status = 404;\n});\n```\n\n**Tip:** In development (`NODE_ENV !== \"production\"`), `compose` will throw errors when you do something unexpected. In production, the faster non-error code paths are used.\n\n### Example\n\nBuild a micro HTTP server!\n\n```js\nconst { createServer } = require(\"http\");\nconst finalhandler = require(\"finalhandler\"); // Example only, not compatible with single `ctx` arg.\nconst { compose } = require(\"throwback\");\n\nconst app = compose([\n  function({ req, res }, next) {\n    res.end(\"Hello world!\");\n  }\n]);\n\ncreateServer(function(req, res) {\n  return app({ req, res }, finalhandler());\n}).listen(3000);\n```\n\n## Use Cases\n\n- HTTP requests (e.g. [`popsicle`](https://github.com/serviejs/popsicle))\n- HTTP servers (e.g. [`servie`](https://github.com/serviejs/servie))\n- Processing pipelines (e.g. [`scrappy`](https://github.com/blakeembrey/node-scrappy))\n\n## Inspiration\n\nBuilt for [`servie`](https://github.com/serviejs) and inspired by [`koa-compose`](https://github.com/koajs/compose).\n\n## License\n\nMIT\n","_attachments":{},"homepage":"https://github.com/serviejs/throwback","bugs":{"url":"https://github.com/serviejs/throwback/issues"},"license":"MIT"}