From 79baf159fe8101a84ab4d837db0f5aa4fc3e7a68 Mon Sep 17 00:00:00 2001 From: Jan Karlo Dela Cruz Date: Sun, 3 Feb 2019 16:35:50 +0000 Subject: [PATCH] Add missing helper middleware types --- types/koa-bunyan-logger/index.d.ts | 40 +++++++++++++++++-- .../koa-bunyan-logger-tests.ts | 2 + 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/types/koa-bunyan-logger/index.d.ts b/types/koa-bunyan-logger/index.d.ts index 1cf77fec92..ab201bfc27 100644 --- a/types/koa-bunyan-logger/index.d.ts +++ b/types/koa-bunyan-logger/index.d.ts @@ -1,17 +1,47 @@ -// Type definitions for koa-bunyan-logger 2.0 +// Type definitions for koa-bunyan-logger 2.1 // Project: https://github.com/koajs/bunyan-logger // Definitions by: Steven McDowall +// Jan Karlo Dela Cruz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 -import { Middleware } from 'koa'; +import { Middleware, Request, Response } from 'koa'; import Logger = require('bunyan'); -export = koaBunyanLogger; - declare function koaBunyanLogger(logger?: Logger): Middleware; +declare namespace koaBunyanLogger { + interface RequestData { + req: Request; + } + + interface ResponseData { + req: Request; + res: Response; + } + + interface RequestIdContextOptions { + header?: string; + prop?: string; + requestProp?: string; + field?: string; + } + + interface RequestLoggerOptions { + durationField?: string; + levelFn?: (status: number, err: Error) => string; + updateLogFields?: (data: RequestData) => RequestData; + updateRequestLogFields?: (requestData: RequestData) => RequestData; + updateResponseLogFields?: (responseData: ResponseData) => ResponseData; + formatRequestMessage?: (requestData: RequestData) => string; + formatResponseMessage?: (responseData: ResponseData) => string; + } + + function requestLogger(opts?: RequestLoggerOptions): Middleware; + function requestIdContext(opts?: RequestIdContextOptions): Middleware; +} + // Extend the Koa context to add the logger.. declare module 'koa' { // tslint:disable-next-line: interface-name @@ -19,3 +49,5 @@ declare module 'koa' { log: Logger; } } + +export = koaBunyanLogger; diff --git a/types/koa-bunyan-logger/koa-bunyan-logger-tests.ts b/types/koa-bunyan-logger/koa-bunyan-logger-tests.ts index daaf26b7a3..3d66a72a13 100644 --- a/types/koa-bunyan-logger/koa-bunyan-logger-tests.ts +++ b/types/koa-bunyan-logger/koa-bunyan-logger-tests.ts @@ -3,6 +3,8 @@ import koaBunyanLogger = require('koa-bunyan-logger'); const app = new Koa(); app.use(koaBunyanLogger()); +app.use(koaBunyanLogger.requestIdContext()); +app.use(koaBunyanLogger.requestLogger()); app.use(async (ctx, next) => { ctx.log.info('Got a request from %s for %s', ctx.request.ip, ctx.path);