diff --git a/api-error-handler/api-error-handler-tests.ts b/api-error-handler/api-error-handler-tests.ts
index 83df91e86..fc92cf9a7 100644
--- a/api-error-handler/api-error-handler-tests.ts
+++ b/api-error-handler/api-error-handler-tests.ts
@@ -1,7 +1,7 @@
///
-import errorHandler = require('api-error-handler');
-import express = require('express');
+import * as errorHandler from 'api-error-handler';
+import * as express from 'express';
var api = express.Router();
api.get('/users/:userid', function (req, res, next) {
@@ -9,3 +9,5 @@ api.get('/users/:userid', function (req, res, next) {
});
api.use(errorHandler());
+
+let res: errorHandler.Response;
diff --git a/api-error-handler/api-error-handler.d.ts b/api-error-handler/api-error-handler.d.ts
index 61a63825d..90318acd0 100644
--- a/api-error-handler/api-error-handler.d.ts
+++ b/api-error-handler/api-error-handler.d.ts
@@ -6,7 +6,23 @@
///
declare module 'api-error-handler' {
- import express = require('express');
+ import * as express from 'express';
+
+ namespace apiErrorHandler {
+
+ // Body response: the JSON returned by api-error-handler
+ // See https://github.com/expressjs/api-error-handler/blob/1.0.0/index.js
+ interface Response {
+ status: number;
+ stack?: string;
+ message: string;
+
+ // Client errors
+ code?: any;
+ name?: string;
+ type?: any;
+ }
+ }
function apiErrorHandler(options?: any): express.ErrorRequestHandler;
diff --git a/errorhandler/errorhandler-tests.ts b/errorhandler/errorhandler-tests.ts
index 0ba9edb56..1316888e3 100644
--- a/errorhandler/errorhandler-tests.ts
+++ b/errorhandler/errorhandler-tests.ts
@@ -1,7 +1,8 @@
///
-import express = require('express');
-import errorhandler = require('errorhandler');
+import * as express from 'express';
+import * as errorhandler from 'errorhandler';
+
var app = express();
app.use(errorhandler());
@@ -14,4 +15,4 @@ app.use(errorhandler({ log: (err, str, req, res) => {
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 8ae5e924c..37d5c3c41 100644
--- a/errorhandler/errorhandler.d.ts
+++ b/errorhandler/errorhandler.d.ts
@@ -6,19 +6,19 @@
///
declare module "errorhandler" {
- import express = require('express');
-
+ import * as express from 'express';
+
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.
@@ -27,6 +27,6 @@ declare module "errorhandler" {
log: boolean | LoggingCallback;
}
}
-
+
export = errorHandler;
}
diff --git a/http-errors/http-errors-tests.ts b/http-errors/http-errors-tests.ts
index 06b91f13b..440325900 100644
--- a/http-errors/http-errors-tests.ts
+++ b/http-errors/http-errors-tests.ts
@@ -1,8 +1,8 @@
///
///
-import createError = require('http-errors');
-import express = require('express');
+import * as createError from 'http-errors';
+import * as express from 'express';
var app = express();
@@ -67,3 +67,5 @@ var err = new createError['404']();
//createError['404'](); // TypeScript should fail with "Did you mean to include 'new'?"
//new createError(); // TypeScript should fail with "Only a void function can be called with the 'new' keyword"
+
+let error: createError.HttpError;
diff --git a/http-errors/http-errors.d.ts b/http-errors/http-errors.d.ts
index 6f78ff6a7..e15a7cb4e 100644
--- a/http-errors/http-errors.d.ts
+++ b/http-errors/http-errors.d.ts
@@ -4,82 +4,86 @@
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module 'http-errors' {
- interface HttpError extends Error {
- status: number;
- statusCode: number;
- expose: boolean;
+ namespace createHttpError {
+
+ // See https://github.com/jshttp/http-errors/blob/1.3.1/index.js#L42
+ interface HttpError extends Error {
+ status: number;
+ statusCode: number;
+ expose: boolean;
+ }
+
+ interface CreateHttpError {
+ // See https://github.com/Microsoft/TypeScript/issues/227#issuecomment-50092674
+ [code: string]: new() => HttpError;
+
+ (...args: Array): HttpError;
+
+ Continue: new() => HttpError;
+ SwitchingProtocols: new() => HttpError;
+ Processing: new() => HttpError;
+ OK: new() => HttpError;
+ Created: new() => HttpError;
+ Accepted: new() => HttpError;
+ NonAuthoritativeInformation: new() => HttpError;
+ NoContent: new() => HttpError;
+ ResetContent: new() => HttpError;
+ PartialContent: new() => HttpError;
+ MultiStatus: new() => HttpError;
+ AlreadyReported: new() => HttpError;
+ IMUsed: new() => HttpError;
+ MultipleChoices: new() => HttpError;
+ MovedPermanently: new() => HttpError;
+ Found: new() => HttpError;
+ SeeOther: new() => HttpError;
+ NotModified: new() => HttpError;
+ UseProxy: new() => HttpError;
+ Unused: new() => HttpError;
+ TemporaryRedirect: new() => HttpError;
+ PermanentRedirect: new() => HttpError;
+ BadRequest: new() => HttpError;
+ Unauthorized: new() => HttpError;
+ PaymentRequired: new() => HttpError;
+ Forbidden: new() => HttpError;
+ NotFound: new() => HttpError;
+ MethodNotAllowed: new() => HttpError;
+ NotAcceptable: new() => HttpError;
+ ProxyAuthenticationRequired: new() => HttpError;
+ RequestTimeout: new() => HttpError;
+ Conflict: new() => HttpError;
+ Gone: new() => HttpError;
+ LengthRequired: new() => HttpError;
+ PreconditionFailed: new() => HttpError;
+ PayloadTooLarge: new() => HttpError;
+ URITooLong: new() => HttpError;
+ UnsupportedMediaType: new() => HttpError;
+ RangeNotSatisfiable: new() => HttpError;
+ ExpectationFailed: new() => HttpError;
+ ImATeapot: new() => HttpError;
+ UnprocessableEntity: new() => HttpError;
+ Locked: new() => HttpError;
+ FailedDependency: new() => HttpError;
+ UnorderedCollection: new() => HttpError;
+ UpgradeRequired: new() => HttpError;
+ PreconditionRequired: new() => HttpError;
+ TooManyRequests: new() => HttpError;
+ RequestHeaderFieldsTooLarge: new() => HttpError;
+ UnavailableForLegalReasons: new() => HttpError;
+ InternalServerError: new() => HttpError;
+ NotImplemented: new() => HttpError;
+ BadGateway: new() => HttpError;
+ ServiceUnavailable: new() => HttpError;
+ GatewayTimeout: new() => HttpError;
+ HTTPVersionNotSupported: new() => HttpError;
+ VariantAlsoNegotiates: new() => HttpError;
+ InsufficientStorage: new() => HttpError;
+ LoopDetected: new() => HttpError;
+ BandwidthLimitExceeded: new() => HttpError;
+ NotExtended: new() => HttpError;
+ NetworkAuthenticationRequired: new() => HttpError;
+ }
}
- interface CreateHttpError {
- // See https://github.com/Microsoft/TypeScript/issues/227#issuecomment-50092674
- [code: string]: new() => HttpError;
-
- (...args: Array): HttpError;
-
- Continue: new() => HttpError;
- SwitchingProtocols: new() => HttpError;
- Processing: new() => HttpError;
- OK: new() => HttpError;
- Created: new() => HttpError;
- Accepted: new() => HttpError;
- NonAuthoritativeInformation: new() => HttpError;
- NoContent: new() => HttpError;
- ResetContent: new() => HttpError;
- PartialContent: new() => HttpError;
- MultiStatus: new() => HttpError;
- AlreadyReported: new() => HttpError;
- IMUsed: new() => HttpError;
- MultipleChoices: new() => HttpError;
- MovedPermanently: new() => HttpError;
- Found: new() => HttpError;
- SeeOther: new() => HttpError;
- NotModified: new() => HttpError;
- UseProxy: new() => HttpError;
- Unused: new() => HttpError;
- TemporaryRedirect: new() => HttpError;
- PermanentRedirect: new() => HttpError;
- BadRequest: new() => HttpError;
- Unauthorized: new() => HttpError;
- PaymentRequired: new() => HttpError;
- Forbidden: new() => HttpError;
- NotFound: new() => HttpError;
- MethodNotAllowed: new() => HttpError;
- NotAcceptable: new() => HttpError;
- ProxyAuthenticationRequired: new() => HttpError;
- RequestTimeout: new() => HttpError;
- Conflict: new() => HttpError;
- Gone: new() => HttpError;
- LengthRequired: new() => HttpError;
- PreconditionFailed: new() => HttpError;
- PayloadTooLarge: new() => HttpError;
- URITooLong: new() => HttpError;
- UnsupportedMediaType: new() => HttpError;
- RangeNotSatisfiable: new() => HttpError;
- ExpectationFailed: new() => HttpError;
- ImATeapot: new() => HttpError;
- UnprocessableEntity: new() => HttpError;
- Locked: new() => HttpError;
- FailedDependency: new() => HttpError;
- UnorderedCollection: new() => HttpError;
- UpgradeRequired: new() => HttpError;
- PreconditionRequired: new() => HttpError;
- TooManyRequests: new() => HttpError;
- RequestHeaderFieldsTooLarge: new() => HttpError;
- UnavailableForLegalReasons: new() => HttpError;
- InternalServerError: new() => HttpError;
- NotImplemented: new() => HttpError;
- BadGateway: new() => HttpError;
- ServiceUnavailable: new() => HttpError;
- GatewayTimeout: new() => HttpError;
- HTTPVersionNotSupported: new() => HttpError;
- VariantAlsoNegotiates: new() => HttpError;
- InsufficientStorage: new() => HttpError;
- LoopDetected: new() => HttpError;
- BandwidthLimitExceeded: new() => HttpError;
- NotExtended: new() => HttpError;
- NetworkAuthenticationRequired: new() => HttpError;
- }
-
- var httpError: CreateHttpError;
- export = httpError;
+ var createHttpError: createHttpError.CreateHttpError;
+ export = createHttpError;
}