From fa49ff99c06c720c52e96e1e580a728e1327b6f7 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 17 Nov 2015 12:54:16 -0800 Subject: [PATCH] Don't use 'any' for 'errorhandler'. --- errorhandler/errorhandler-tests.ts | 10 ++++++++++ errorhandler/errorhandler.d.ts | 24 ++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/errorhandler/errorhandler-tests.ts b/errorhandler/errorhandler-tests.ts index 1d02ed14c..0ba9edb56 100644 --- a/errorhandler/errorhandler-tests.ts +++ b/errorhandler/errorhandler-tests.ts @@ -5,3 +5,13 @@ import errorhandler = require('errorhandler'); var app = express(); app.use(errorhandler()); + +app.use(errorhandler({ log: true })); + +app.use(errorhandler({ log: (err, str, req, res) => { + const { message, name, stack } = err; + const messageIsStr = message === str; + + const requestWasFresh = req && req.fresh; + const responseContentType = res && res.contentType +}})) \ No newline at end of file diff --git a/errorhandler/errorhandler.d.ts b/errorhandler/errorhandler.d.ts index 40f845d09..8ae5e924c 100644 --- a/errorhandler/errorhandler.d.ts +++ b/errorhandler/errorhandler.d.ts @@ -7,6 +7,26 @@ declare module "errorhandler" { import express = require('express'); - function e(options?: {log?: any}): express.ErrorRequestHandler; - export = e; + + function errorHandler(options?: errorHandler.Options): express.ErrorRequestHandler; + + namespace errorHandler { + interface LoggingCallback { + (err: Error, str: string, req: express.Request, res: express.Response): void; + } + + interface Options { + /** + * Defaults to true. + * + * Possible values: + * true : Log errors using console.error(str). + * false : Only send the error back in the response. + * A function : pass the error to a function for handling. + */ + log: boolean | LoggingCallback; + } + } + + export = errorHandler; }