From 703965fef54a1df18720493e39ab255ff32f3ede Mon Sep 17 00:00:00 2001 From: Erik Kristensen Date: Mon, 31 Dec 2018 11:03:22 -0700 Subject: [PATCH] [@types/restify] Fix Callback Typing on Restify Metrics Plugin (#29785) * fix typing on restify metrics plugin * should be a function with typed arguments * adding some comments to get another build to move the PR along --- types/restify/index.d.ts | 28 +++++++++++++++++++--------- types/restify/v5/index.d.ts | 4 ++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/types/restify/index.d.ts b/types/restify/index.d.ts index a035a87396..1bff23e8ea 100644 --- a/types/restify/index.d.ts +++ b/types/restify/index.d.ts @@ -1417,22 +1417,32 @@ export namespace plugins { */ function throttle(options?: ThrottleOptions): RequestHandler; - interface MetricsCallback { + type MetricsCallback = ( /** * An error if the request had an error */ - err: Error; + err: Error, - metrics: MetricsCallbackOptions; + /** + * Object that contains the various metrics that are returned + */ + metrics: MetricsCallbackOptions, - req: Request; - res: Response; + /** + * The request obj + */ + req: Request, + + /** + * The response obj + */ + res: Response, /** * The route obj that serviced the request */ - route: Route; - } + route: Route, + ) => void; type TMetricsCallback = 'close' | 'aborted' | undefined; @@ -1495,13 +1505,13 @@ export namespace plugins { * Listens to the server's after event and emits information about that request (5.x compatible only). * * ``` - * server.on('after', plugins.metrics( (err, metrics) => + * server.on('after', plugins.metrics({ server }, (err, metrics, req, res, route) => * { * // metrics is an object containing information about the request * })); * ``` */ - function metrics(opts: { server: Server }, callback: (options: MetricsCallback) => any): (...args: any[]) => void; + function metrics(opts: { server: Server }, callback: MetricsCallback): (...args: any[]) => void; /** * Parse the client's request for an OAUTH2 access tokensTable diff --git a/types/restify/v5/index.d.ts b/types/restify/v5/index.d.ts index 11664c60cf..0ff2abfae4 100644 --- a/types/restify/v5/index.d.ts +++ b/types/restify/v5/index.d.ts @@ -1251,13 +1251,13 @@ export namespace plugins { * Listens to the server's after event and emits information about that request (5.x compatible only). * * ``` - * server.on('after', plugins.metrics( (err, metrics) => + * server.on('after', plugins.metrics({ server }, (err, metrics, req, res, route) => * { * // metrics is an object containing information about the request * })); * ``` */ - function metrics(opts: { server: Server }, callback: (options: MetricsCallback) => any): (...args: any[]) => void; + function metrics(opts: { server: Server }, callback: MetricsCallback): (...args: any[]) => void; /** * Parse the client's request for an OAUTH2 access tokensTable