From 45795eeb3e7cf609dcc3a3b5f3681aca7f21faf7 Mon Sep 17 00:00:00 2001 From: Eli Young Date: Mon, 5 Jun 2017 14:57:40 -0700 Subject: [PATCH 1/3] [bunyan] Add LogLevel type --- types/bunyan/index.d.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/types/bunyan/index.d.ts b/types/bunyan/index.d.ts index f3c739a992..281e0d5c3f 100644 --- a/types/bunyan/index.d.ts +++ b/types/bunyan/index.d.ts @@ -16,8 +16,8 @@ declare class Logger extends EventEmitter { reopenFileStreams(): void; level(): string | number; - level(value: number | string): void; - levels(name: number | string, value: number | string): void; + level(value: Logger.LogLevel): void; + levels(name: number | string, value: Logger.LogLevel): void; fields: any; src: boolean; @@ -217,17 +217,19 @@ declare namespace Logger { const ERROR: number; const FATAL: number; + type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | number; + const stdSerializers: StdSerializers; function createLogger(options: LoggerOptions): Logger; function safeCycles(): (key: string, value: any) => any; - function resolveLevel(value: number | string): number; + function resolveLevel(value: LogLevel): number; interface Stream { type?: string; - level?: number | string; + level?: LogLevel; path?: string; stream?: NodeJS.WritableStream | Stream; closeOnExit?: boolean; @@ -238,7 +240,7 @@ declare namespace Logger { interface LoggerOptions { name: string; streams?: Stream[]; - level?: string | number; + level?: LogLevel; stream?: NodeJS.WritableStream; serializers?: Serializers | StdSerializers; src?: boolean; From b5521f8a97d2bf067dbe68ae091174bd4bc9c11f Mon Sep 17 00:00:00 2001 From: Eli Young Date: Mon, 5 Jun 2017 16:33:37 -0700 Subject: [PATCH 2/3] [bunyan] Clean things up --- types/bunyan/bunyan-tests.ts | 30 ++++----- types/bunyan/index.d.ts | 121 ++++++++++++++++------------------- types/bunyan/tslint.json | 7 ++ 3 files changed, 77 insertions(+), 81 deletions(-) create mode 100644 types/bunyan/tslint.json diff --git a/types/bunyan/bunyan-tests.ts b/types/bunyan/bunyan-tests.ts index acf382c7c2..e1d1e4571b 100644 --- a/types/bunyan/bunyan-tests.ts +++ b/types/bunyan/bunyan-tests.ts @@ -1,16 +1,15 @@ - import Logger = require('bunyan'); -var ringBufferOptions: Logger.RingBufferOptions = { +let ringBufferOptions: Logger.RingBufferOptions = { limit: 100 }; -var ringBuffer: Logger.RingBuffer = new Logger.RingBuffer(ringBufferOptions); +let ringBuffer: Logger.RingBuffer = new Logger.RingBuffer(ringBufferOptions); ringBuffer.write("hello"); ringBuffer.end(); ringBuffer.destroy(); ringBuffer.destroySoon(); -var level: number; +let level: number; level = Logger.resolveLevel("trace"); level = Logger.resolveLevel("debug"); level = Logger.resolveLevel("info"); @@ -24,7 +23,7 @@ level = Logger.resolveLevel(Logger.WARN); level = Logger.resolveLevel(Logger.ERROR); level = Logger.resolveLevel(Logger.FATAL); -var options: Logger.LoggerOptions = { +let options: Logger.LoggerOptions = { name: 'test-logger', serializers: Logger.stdSerializers, streams: [{ @@ -54,9 +53,9 @@ var options: Logger.LoggerOptions = { }] }; -var log = Logger.createLogger(options); +let log = Logger.createLogger(options); -var customSerializer = function(anything: any) { +let customSerializer = (anything: any) => { return { obj: anything}; }; @@ -70,7 +69,7 @@ log.addSerializers( } ); -var child = log.child({name: 'child'}); +let child = log.child({name: 'child'}); child.reopenFileStreams(); log.addStream({path: '/dev/null'}); child.level(Logger.DEBUG); @@ -80,9 +79,9 @@ child.levels(0, 'error'); child.levels('stream1', Logger.FATAL); child.levels('stream1', 'fatal'); -var buffer = new Buffer(0); -var error = new Error(''); -var object = { +let buffer = new Buffer(0); +let error = new Error(''); +let object = { test: 123 }; @@ -117,12 +116,11 @@ log.fatal(error); log.fatal(object); log.fatal('Hello, %s', 'world!'); -var recursive: any = { +let recursive: any = { hello: 'world', - whats: { - huh: recursive - } -} + whats: {} +}; +recursive.whats['huh'] = recursive; JSON.stringify(recursive, Logger.safeCycles()); diff --git a/types/bunyan/index.d.ts b/types/bunyan/index.d.ts index 281e0d5c3f..aad597de4e 100644 --- a/types/bunyan/index.d.ts +++ b/types/bunyan/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for node-bunyan +// Type definitions for node-bunyan 1.8 // Project: https://github.com/trentm/node-bunyan // Definitions by: Alex Mikhalev // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -10,18 +10,21 @@ import { EventEmitter } from 'events'; declare class Logger extends EventEmitter { constructor(options: Logger.LoggerOptions); addStream(stream: Logger.Stream): void; - addSerializers(serializers: Logger.Serializers | Logger.StdSerializers): void; - child(options: Logger.LoggerOptions, simple?: boolean): Logger; - child(obj: Object, simple?: boolean): Logger; + addSerializers(serializers: Logger.Serializers): void; + child(options: Object, simple?: boolean): Logger; reopenFileStreams(): void; - level(): string | number; + level(): number; level(value: Logger.LogLevel): void; + levels(): number[]; + levels(name: number | string): number; levels(name: number | string, value: Logger.LogLevel): void; fields: any; src: boolean; + /* tslint:disable:unified-signatures */ + /** * Returns a boolean: is the `trace` level enabled? * @@ -35,14 +38,7 @@ declare class Logger extends EventEmitter { * (including the stack) and sets `msg` to the exception * message or you can specify the `msg`. */ - trace(error: Error, format?: any, ...params: any[]): void; - - trace(buffer: Buffer, format?: any, ...params: any[]): void; - - /** - * Uses `util.format` for msg formatting. - */ - trace(format: string | number, ...params: any[]): void; + trace(error: Error, ...params: any[]): void; /** * The first field can optionally be a "fields" object, which @@ -51,7 +47,12 @@ declare class Logger extends EventEmitter { * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ - trace(obj: Object, format?: any, ...params: any[]): void; + trace(obj: Object, ...params: any[]): void; + + /** + * Uses `util.format` for msg formatting. + */ + trace(format: any, ...params: any[]): void; /** * Returns a boolean: is the `debug` level enabled? @@ -66,14 +67,7 @@ declare class Logger extends EventEmitter { * (including the stack) and sets `msg` to the exception * message or you can specify the `msg`. */ - debug(error: Error, format?: any, ...params: any[]): void; - - debug(buffer: Buffer, format?: any, ...params: any[]): void; - - /** - * Uses `util.format` for msg formatting. - */ - debug(format: string | number, ...params: any[]): void; + debug(error: Error, ...params: any[]): void; /** * The first field can optionally be a "fields" object, which @@ -82,7 +76,12 @@ declare class Logger extends EventEmitter { * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ - debug(obj: Object, format?: any, ...params: any[]): void; + debug(obj: Object, ...params: any[]): void; + + /** + * Uses `util.format` for msg formatting. + */ + debug(format: any, ...params: any[]): void; /** * Returns a boolean: is the `info` level enabled? @@ -97,14 +96,7 @@ declare class Logger extends EventEmitter { * (including the stack) and sets `msg` to the exception * message or you can specify the `msg`. */ - info(error: Error, format?: any, ...params: any[]): void; - - info(buffer: Buffer, format?: any, ...params: any[]): void; - - /** - * Uses `util.format` for msg formatting. - */ - info(format: string | number, ...params: any[]): void; + info(error: Error, ...params: any[]): void; /** * The first field can optionally be a "fields" object, which @@ -113,7 +105,12 @@ declare class Logger extends EventEmitter { * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ - info(obj: Object, format?: any, ...params: any[]): void; + info(obj: Object, ...params: any[]): void; + + /** + * Uses `util.format` for msg formatting. + */ + info(format: any, ...params: any[]): void; /** * Returns a boolean: is the `warn` level enabled? @@ -128,14 +125,7 @@ declare class Logger extends EventEmitter { * (including the stack) and sets `msg` to the exception * message or you can specify the `msg`. */ - warn(error: Error, format?: any, ...params: any[]): void; - - warn(buffer: Buffer, format?: any, ...params: any[]): void; - - /** - * Uses `util.format` for msg formatting. - */ - warn(format: string | number, ...params: any[]): void; + warn(error: Error, ...params: any[]): void; /** * The first field can optionally be a "fields" object, which @@ -144,7 +134,12 @@ declare class Logger extends EventEmitter { * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ - warn(obj: Object, format?: any, ...params: any[]): void; + warn(obj: Object, ...params: any[]): void; + + /** + * Uses `util.format` for msg formatting. + */ + warn(format: any, ...params: any[]): void; /** * Returns a boolean: is the `error` level enabled? @@ -159,14 +154,7 @@ declare class Logger extends EventEmitter { * (including the stack) and sets `msg` to the exception * message or you can specify the `msg`. */ - error(error: Error, format?: any, ...params: any[]): void; - - error(buffer: Buffer, format?: any, ...params: any[]): void; - - /** - * Uses `util.format` for msg formatting. - */ - error(format: string | number, ...params: any[]): void; + error(error: Error, ...params: any[]): void; /** * The first field can optionally be a "fields" object, which @@ -175,7 +163,12 @@ declare class Logger extends EventEmitter { * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ - error(obj: Object, format?: any, ...params: any[]): void; + error(obj: Object, ...params: any[]): void; + + /** + * Uses `util.format` for msg formatting. + */ + error(format: any, ...params: any[]): void; /** * Returns a boolean: is the `fatal` level enabled? @@ -190,14 +183,7 @@ declare class Logger extends EventEmitter { * (including the stack) and sets `msg` to the exception * message or you can specify the `msg`. */ - fatal(error: Error, format?: any, ...params: any[]): void; - - fatal(buffer: Buffer, format?: any, ...params: any[]): void; - - /** - * Uses `util.format` for msg formatting. - */ - fatal(format: string | number, ...params: any[]): void; + fatal(error: Error, ...params: any[]): void; /** * The first field can optionally be a "fields" object, which @@ -206,7 +192,14 @@ declare class Logger extends EventEmitter { * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ - fatal(obj: Object, format?: any, ...params: any[]): void; + fatal(obj: Object, ...params: any[]): void; + + /** + * Uses `util.format` for msg formatting. + */ + fatal(format: any, ...params: any[]): void; + + /* tslint:enable:unified-signatures */ } declare namespace Logger { @@ -242,20 +235,18 @@ declare namespace Logger { streams?: Stream[]; level?: LogLevel; stream?: NodeJS.WritableStream; - serializers?: Serializers | StdSerializers; + serializers?: Serializers; src?: boolean; [custom: string]: any; } - interface Serializer { - (input:any): any; - } + type Serializer = (input: any) => any; interface Serializers { - [key: string]: Serializer + [key: string]: Serializer; } - interface StdSerializers { + interface StdSerializers extends Serializers { err: Serializer; res: Serializer; req: Serializer; diff --git a/types/bunyan/tslint.json b/types/bunyan/tslint.json new file mode 100644 index 0000000000..09f94cd344 --- /dev/null +++ b/types/bunyan/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + // ban-types needs to be disabled to support TypeScript <2.2 + "ban-types": false + } +} From a9e528c77a5a595d2e09b63c387f2a330f5e96ff Mon Sep 17 00:00:00 2001 From: Eli Young Date: Mon, 5 Jun 2017 16:36:59 -0700 Subject: [PATCH 3/3] [bunyan] Reformat code --- types/bunyan/bunyan-tests.ts | 8 +-- types/bunyan/index.d.ts | 124 +++++++++++++++++------------------ 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/types/bunyan/bunyan-tests.ts b/types/bunyan/bunyan-tests.ts index e1d1e4571b..657a59c3a8 100644 --- a/types/bunyan/bunyan-tests.ts +++ b/types/bunyan/bunyan-tests.ts @@ -56,10 +56,10 @@ let options: Logger.LoggerOptions = { let log = Logger.createLogger(options); let customSerializer = (anything: any) => { - return { obj: anything}; + return { obj: anything }; }; -log.addSerializers({anything: customSerializer}); +log.addSerializers({ anything: customSerializer }); log.addSerializers(Logger.stdSerializers); log.addSerializers( { @@ -69,9 +69,9 @@ log.addSerializers( } ); -let child = log.child({name: 'child'}); +let child = log.child({ name: 'child' }); child.reopenFileStreams(); -log.addStream({path: '/dev/null'}); +log.addStream({ path: '/dev/null' }); child.level(Logger.DEBUG); child.level('debug'); child.levels(0, Logger.ERROR); diff --git a/types/bunyan/index.d.ts b/types/bunyan/index.d.ts index aad597de4e..d46396023f 100644 --- a/types/bunyan/index.d.ts +++ b/types/bunyan/index.d.ts @@ -27,7 +27,7 @@ declare class Logger extends EventEmitter { /** * Returns a boolean: is the `trace` level enabled? - * + * * This is equivalent to `log.isTraceEnabled()` or `log.isEnabledFor(TRACE)` in log4j. */ trace(): boolean; @@ -43,7 +43,7 @@ declare class Logger extends EventEmitter { /** * The first field can optionally be a "fields" object, which * is merged into the log record. - * + * * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ @@ -56,7 +56,7 @@ declare class Logger extends EventEmitter { /** * Returns a boolean: is the `debug` level enabled? - * + * * This is equivalent to `log.isDebugEnabled()` or `log.isEnabledFor(DEBUG)` in log4j. */ debug(): boolean; @@ -72,7 +72,7 @@ declare class Logger extends EventEmitter { /** * The first field can optionally be a "fields" object, which * is merged into the log record. - * + * * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ @@ -85,7 +85,7 @@ declare class Logger extends EventEmitter { /** * Returns a boolean: is the `info` level enabled? - * + * * This is equivalent to `log.isInfoEnabled()` or `log.isEnabledFor(INFO)` in log4j. */ info(): boolean; @@ -101,7 +101,7 @@ declare class Logger extends EventEmitter { /** * The first field can optionally be a "fields" object, which * is merged into the log record. - * + * * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ @@ -114,7 +114,7 @@ declare class Logger extends EventEmitter { /** * Returns a boolean: is the `warn` level enabled? - * + * * This is equivalent to `log.isWarnEnabled()` or `log.isEnabledFor(WARN)` in log4j. */ warn(): boolean; @@ -130,7 +130,7 @@ declare class Logger extends EventEmitter { /** * The first field can optionally be a "fields" object, which * is merged into the log record. - * + * * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ @@ -143,7 +143,7 @@ declare class Logger extends EventEmitter { /** * Returns a boolean: is the `error` level enabled? - * + * * This is equivalent to `log.isErrorEnabled()` or `log.isEnabledFor(ERROR)` in log4j. */ error(): boolean; @@ -159,7 +159,7 @@ declare class Logger extends EventEmitter { /** * The first field can optionally be a "fields" object, which * is merged into the log record. - * + * * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ @@ -172,7 +172,7 @@ declare class Logger extends EventEmitter { /** * Returns a boolean: is the `fatal` level enabled? - * + * * This is equivalent to `log.isFatalEnabled()` or `log.isEnabledFor(FATAL)` in log4j. */ fatal(): boolean; @@ -188,7 +188,7 @@ declare class Logger extends EventEmitter { /** * The first field can optionally be a "fields" object, which * is merged into the log record. - * + * * To pass in an Error *and* other fields, use the `err` * field name for the Error instance. */ @@ -203,70 +203,70 @@ declare class Logger extends EventEmitter { } declare namespace Logger { - const TRACE: number; - const DEBUG: number; - const INFO: number; - const WARN: number; - const ERROR: number; - const FATAL: number; + const TRACE: number; + const DEBUG: number; + const INFO: number; + const WARN: number; + const ERROR: number; + const FATAL: number; - type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | number; + type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | number; - const stdSerializers: StdSerializers; + const stdSerializers: StdSerializers; - function createLogger(options: LoggerOptions): Logger; + function createLogger(options: LoggerOptions): Logger; - function safeCycles(): (key: string, value: any) => any; + function safeCycles(): (key: string, value: any) => any; - function resolveLevel(value: LogLevel): number; + function resolveLevel(value: LogLevel): number; - interface Stream { - type?: string; - level?: LogLevel; - path?: string; - stream?: NodeJS.WritableStream | Stream; - closeOnExit?: boolean; - period?: string; - count?: number; - } + interface Stream { + type?: string; + level?: LogLevel; + path?: string; + stream?: NodeJS.WritableStream | Stream; + closeOnExit?: boolean; + period?: string; + count?: number; + } - interface LoggerOptions { - name: string; - streams?: Stream[]; - level?: LogLevel; - stream?: NodeJS.WritableStream; - serializers?: Serializers; - src?: boolean; - [custom: string]: any; - } + interface LoggerOptions { + name: string; + streams?: Stream[]; + level?: LogLevel; + stream?: NodeJS.WritableStream; + serializers?: Serializers; + src?: boolean; + [custom: string]: any; + } - type Serializer = (input: any) => any; + type Serializer = (input: any) => any; - interface Serializers { - [key: string]: Serializer; - } + interface Serializers { + [key: string]: Serializer; + } - interface StdSerializers extends Serializers { - err: Serializer; - res: Serializer; - req: Serializer; - } + interface StdSerializers extends Serializers { + err: Serializer; + res: Serializer; + req: Serializer; + } - interface RingBufferOptions { - limit?: number; - } + interface RingBufferOptions { + limit?: number; + } - class RingBuffer extends EventEmitter implements NodeJS.WritableStream { - constructor(options: RingBufferOptions); + class RingBuffer extends EventEmitter implements NodeJS.WritableStream { + constructor(options: RingBufferOptions); - writable: boolean; - records: any[]; + writable: boolean; + records: any[]; - write(record: any): boolean; - end(record?: any): void; - destroy(): void; - destroySoon(): void; - } + write(record: any): boolean; + end(record?: any): void; + destroy(): void; + destroySoon(): void; + } } export = Logger;