diff --git a/index.d.ts b/index.d.ts index b59a08f..888b4a8 100644 --- a/index.d.ts +++ b/index.d.ts @@ -58,6 +58,8 @@ declare namespace Router { searchParams: { [k: string]: string } ) => any; + type Done = (err: Error | null, result: any) => void; + interface ConstraintStrategy { name: string, mustMatchWhenDerived?: boolean, @@ -160,7 +162,8 @@ declare namespace Router { lookup( req: Req, res: Res, - ctx?: Context + ctx?: Context | Done, + done?: Done ): any; find( diff --git a/test/types/router.test-d.ts b/test/types/router.test-d.ts index d00f2af..ee7bfeb 100644 --- a/test/types/router.test-d.ts +++ b/test/types/router.test-d.ts @@ -7,10 +7,12 @@ let http1Req!: IncomingMessage; let http1Res!: ServerResponse; let http2Req!: Http2ServerRequest; let http2Res!: Http2ServerResponse; +let ctx!: { req: IncomingMessage; res: ServerResponse }; +let done!: (err: Error | null, result: any) => void; // HTTP1 { - let handler: Router.Handler + let handler!: Router.Handler const router = Router({ ignoreTrailingSlash: true, ignoreDuplicateSlashes: true, @@ -52,6 +54,8 @@ let http2Res!: Http2ServerResponse; expectType(router.off(['GET', 'POST'], '/')) expectType(router.lookup(http1Req, http1Res)) + expectType(router.lookup(http1Req, http1Res, done)); + expectType(router.lookup(http1Req, http1Res, ctx, done)); expectType | null>(router.find('GET', '/')) expectType | null>(router.find('GET', '/', {})) expectType | null>(router.find('GET', '/', {version: '1.0.0'})) @@ -86,7 +90,7 @@ let http2Res!: Http2ServerResponse; } } - let handler: Router.Handler + let handler!: Router.Handler const router = Router({ ignoreTrailingSlash: true, ignoreDuplicateSlashes: true, @@ -117,6 +121,8 @@ let http2Res!: Http2ServerResponse; expectType(router.off(['GET', 'POST'], '/')) expectType(router.lookup(http2Req, http2Res)) + expectType(router.lookup(http2Req, http2Res, done)); + expectType(router.lookup(http2Req, http2Res, ctx, done)); expectType | null>(router.find('GET', '/', {})) expectType | null>(router.find('GET', '/', {version: '1.0.0', host: 'fastify.io'})) @@ -127,7 +133,7 @@ let http2Res!: Http2ServerResponse; // Custom Constraint { - let handler: Router.Handler + let handler!: Router.Handler interface AcceptAndContentType { accept?: string, contentType?: string }