async-middleware
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,IAAO,OAAO,WAAW,aAAa,CAAC,CAAA;AAgBvC,cAA6B,EAAsC;IACjE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,UAAU,GAAU,EAAE,GAAM,EAAE,GAAM,EAAE,IAAkB;YAC7D,IAAM,MAAM,GAAI,EAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YAE9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,EAAT,CAAS,CAAC,CAAA;QACxD,CAAC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,UAAU,GAAM,EAAE,GAAM,EAAE,IAAkB;QACjD,IAAM,MAAM,GAAI,EAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAEpD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,EAAT,CAAS,CAAC,CAAA;IACxD,CAAC,CAAA;AACH,CAAC;AAde,YAAI,OAcnB,CAAA"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,IAAO,OAAO,WAAW,aAAa,CAAC,CAAA;AAgBvC,cAA6B,EAAsC;IACjE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,UAAU,GAAU,EAAE,GAAM,EAAE,GAAM,EAAE,IAAkB;YAC7D,IAAM,MAAM,GAAI,EAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YAE9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,EAAT,CAAS,CAAC,CAAA;QACxD,CAAC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,UAAU,GAAM,EAAE,GAAM,EAAE,IAAkB;QACjD,IAAM,MAAM,GAAI,EAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAEpD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,EAAT,CAAS,CAAC,CAAA;IACxD,CAAC,CAAA;AACH,CAAC;AAde,YAAI,OAcnB,CAAA","sourcesContent":["import Promise = require('any-promise')\n\nexport interface NextFunction {\n (err: Error): void\n}\n\nexport interface Handler <T, U> {\n (req: T, res: U, next: NextFunction): any\n}\n\nexport interface ErrorHandler <T, U> {\n (err: Error, req: T, res: U, next: NextFunction): any\n}\n\nexport function wrap <T, U> (fn: Handler<T, U>): Handler<T, U>\nexport function wrap <T, U> (fn: ErrorHandler<T, U>): ErrorHandler<T, U>\nexport function wrap <T, U> (fn: Handler<T, U> | ErrorHandler<T, U>): Handler<T, U> | ErrorHandler<T, U> {\n if (fn.length === 4) {\n return function (err: Error, req: T, res: U, next: NextFunction): any {\n const result = (fn as ErrorHandler<T, U>)(err, req, res, next)\n\n return Promise.resolve(result).catch(err => next(err))\n }\n }\n\n return function (req: T, res: U, next: NextFunction): any {\n const result = (fn as Handler<T, U>)(req, res, next)\n\n return Promise.resolve(result).catch(err => next(err))\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";AAAA,IAAO,IAAI,WAAW,WAAW,CAAC,CAAA;AAClC,IAAO,OAAO,WAAW,aAAa,CAAC,CAAA;AACvC,sBAAmC,SAEnC,CAAC,CAF2C;AAE5C,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;IACxB,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,UAAA,CAAC;QACpB,IAAM,CAAC,GAAG,YAAI,CAAC,UAAU,GAAQ,EAAE,GAAQ;YACzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG;YACrB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;QAC1B,IAAM,CAAC,GAAG,YAAI,CAAC,UAAU,GAAU,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;YACzE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,cAAa,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,UAAA,CAAC;QACnC,IAAM,CAAC,GAAG,YAAI,CAAC,UAAU,GAAU,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;YACzE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG;YACxC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} | ||
| {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";AAAA,IAAO,IAAI,WAAW,WAAW,CAAC,CAAA;AAClC,IAAO,OAAO,WAAW,aAAa,CAAC,CAAA;AACvC,sBAAmC,SAEnC,CAAC,CAF2C;AAE5C,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;IACxB,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,UAAA,CAAC;QACpB,IAAM,CAAC,GAAG,YAAI,CAAC,UAAU,GAAQ,EAAE,GAAQ;YACzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG;YACrB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;QAC1B,IAAM,CAAC,GAAG,YAAI,CAAC,UAAU,GAAU,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;YACzE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,cAAkB,CAAC,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,UAAA,CAAC;QACnC,IAAM,CAAC,GAAG,YAAI,CAAC,UAAU,GAAU,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;YACzE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG;YACxC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport Promise = require('any-promise')\nimport { wrap, NextFunction } from './index'\n\ntest('async middleware', t => {\n t.test('middleware', t => {\n const m = wrap(function (req: any, res: any) {\n return Promise.reject(new Error('test'))\n })\n\n m({}, {}, function (err) {\n t.equal(err.message, 'test')\n t.end()\n })\n })\n\n t.test('error middleware', t => {\n const m = wrap(function (err: Error, req: any, res: any, next: NextFunction) {\n t.equal(err.message, 'test')\n t.end()\n })\n\n m(new Error('test'), {}, {}, function () {/* */})\n })\n\n t.test('error in error middleware', t => {\n const m = wrap(function (err: Error, req: any, res: any, next: NextFunction) {\n return Promise.reject(err)\n })\n\n m(new Error('test'), {}, {}, function (err) {\n t.equal(err.message, 'test')\n t.end()\n })\n })\n})\n"]} |
+7
-4
| { | ||
| "name": "async-middleware", | ||
| "version": "1.0.0", | ||
| "version": "1.0.1", | ||
| "description": "Wrap an asynchronous middleware (or handler) function for Express, Connect, router, etc.", | ||
@@ -12,3 +12,3 @@ "main": "dist/index.js", | ||
| "scripts": { | ||
| "lint": "# TODO", | ||
| "lint": "tslint \"src/**/*.ts\"", | ||
| "build": "rm -rf dist && tsc", | ||
@@ -43,7 +43,10 @@ "test-spec": "blue-tape 'dist/**/*.spec.js' | tap-spec", | ||
| "blue-tape": "^0.2.0", | ||
| "bluebird": "^3.3.5", | ||
| "chai": "^3.2.0", | ||
| "istanbul": "^0.3.17", | ||
| "istanbul": "^0.4.4", | ||
| "tap-spec": "^4.1.1", | ||
| "tslint": "^3.11.0", | ||
| "tslint-config-standard": "^1.2.2", | ||
| "typescript": "^1.5.3", | ||
| "typings": "^0.8.1" | ||
| "typings": "^1.3.0" | ||
| }, | ||
@@ -50,0 +53,0 @@ "dependencies": { |
-42
| # Async Middleware | ||
| [![NPM version][npm-image]][npm-url] | ||
| [![NPM downloads][downloads-image]][downloads-url] | ||
| [![Build status][travis-image]][travis-url] | ||
| [![Test coverage][coveralls-image]][coveralls-url] | ||
| > Wrap an asynchronous middleware (or handler) function for Express, Connect, router, etc. | ||
| ## Installation | ||
| ```sh | ||
| npm install async-middleware --save | ||
| ``` | ||
| ## Usage | ||
| Wrap a middleware function using `async` and/or promises to catch errors and forward them to `next(err)`. | ||
| ```js | ||
| var express = require('express') | ||
| var wrap = require('async-middleware').wrap | ||
| var app = express() | ||
| app.use(wrap(function (req, res) { | ||
| return Promise.reject(new Error('boom!')) | ||
| }) | ||
| ``` | ||
| ## License | ||
| MIT | ||
| [npm-image]: https://img.shields.io/npm/v/async-middleware.svg?style=flat | ||
| [npm-url]: https://npmjs.org/package/async-middleware | ||
| [downloads-image]: https://img.shields.io/npm/dm/async-middleware.svg?style=flat | ||
| [downloads-url]: https://npmjs.org/package/async-middleware | ||
| [travis-image]: https://img.shields.io/travis/blakeembrey/async-middleware.svg?style=flat | ||
| [travis-url]: https://travis-ci.org/blakeembrey/async-middleware | ||
| [coveralls-image]: https://img.shields.io/coveralls/blakeembrey/async-middleware.svg?style=flat | ||
| [coveralls-url]: https://coveralls.io/r/blakeembrey/async-middleware?branch=master |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
8639
9.88%9
50%8
-11.11%1
Infinity%0
-100%