diff --git a/winston/winston-tests.ts b/winston/winston-tests.ts
index 3bfd0d5a5..7157fb742 100644
--- a/winston/winston-tests.ts
+++ b/winston/winston-tests.ts
@@ -165,25 +165,46 @@ var logger: winston.LoggerInstance = new (winston.Logger)({
new (winston.transports.Console)({
level: str,
silent: bool,
+ json: bool,
colorize: bool,
timestamp: bool,
+ showLevel: bool,
+ label: str,
+ logstash: bool,
+ debugStdout: bool,
+ depth: num,
}),
new (winston.transports.DailyRotateFile)({
level: str,
silent: bool,
+ json: bool,
colorize: bool,
maxsize: num,
maxFiles: num,
+ maxRetries: num,
prettyPrint: bool,
timestamp: bool,
filename: str,
dirname: str,
- datePattern: str
+ datePattern: str,
+ eol: str,
+ stream: writeableStream,
}),
new (winston.transports.File)({
level: str,
silent: bool,
+ json: bool,
+ colorize: bool,
+ prettyPrint: bool,
timestamp: bool,
+ showLevel: bool,
+ logstash: bool,
+ rotationFormat: bool,
+ depth: num,
+ zippedArchive: bool,
+ eol: str,
+ tailable: bool,
+ maxRetries: num,
filename: str,
maxsize: num,
maxFiles: num,
@@ -195,7 +216,7 @@ var logger: winston.LoggerInstance = new (winston.Logger)({
port: num,
path: str,
auth: { username: str, password: str },
- ssl: {},
+ ssl: bool,
}),
new (winston.transports.Loggly)({
level: str,
@@ -206,6 +227,10 @@ var logger: winston.LoggerInstance = new (winston.Logger)({
}),
new (winston.transports.Memory)({
level: str,
+ json: bool,
+ colorize: bool,
+ showLevel: bool,
+ depth: num,
timestamp: bool,
label: str,
}),
@@ -217,7 +242,7 @@ var logger: winston.LoggerInstance = new (winston.Logger)({
method: str,
path: str,
auth: { username: str, password: str },
- ssl: {},
+ ssl: {ca: {}},
}),
]
});
diff --git a/winston/winston.d.ts b/winston/winston.d.ts
index c816a533a..30ca71268 100644
--- a/winston/winston.d.ts
+++ b/winston/winston.d.ts
@@ -8,7 +8,6 @@
///
declare module "winston" {
-
export var transports: Transports;
export var Transport: TransportStatic;
export var Logger: LoggerStatic;
@@ -110,10 +109,38 @@ declare module "winston" {
}
export interface TransportInstance extends TransportStatic, NodeJS.EventEmitter {
- formatQuery(query: any): any;
+ formatQuery(query: (string|Object)): (string|Object);
normalizeQuery(options: QueryOptions): QueryOptions;
- formatResults(results: any, options: any): any;
- logException(msg: string, meta: any, callback: () => void): void;
+ formatResults(results: (Object|Array), options?: Object): (Object|Array);
+ logException(msg: string, meta: Object, callback: () => void): void;
+ }
+
+ export interface ConsoleTransportInstance extends TransportInstance {
+ new (options?: ConsoleTransportOptions): ConsoleTransportInstance;
+ }
+
+ export interface DailyRotateFileTransportInstance extends TransportInstance {
+ new (options?: DailyRotateFileTransportOptions): DailyRotateFileTransportInstance;
+ }
+
+ export interface FileTransportInstance extends TransportInstance {
+ new (options?: FileTransportOptions): FileTransportInstance;
+ }
+
+ export interface HttpTransportInstance extends TransportInstance {
+ new (options?: HttpTransportOptions): HttpTransportInstance;
+ }
+
+ export interface MemoryTransportInstance extends TransportInstance {
+ new (options?: MemoryTransportOptions): MemoryTransportInstance;
+ }
+
+ export interface WebhookTransportInstance extends TransportInstance {
+ new (options?: WebhookTransportOptions): WebhookTransportInstance;
+ }
+
+ export interface WinstonModuleTrasportInstance extends TransportInstance {
+ new (options?: WinstonMoudleTransportOptions): WinstonModuleTrasportInstance;
}
export interface ContainerStatic {
@@ -131,13 +158,13 @@ declare module "winston" {
}
export interface Transports {
- File: TransportInstance;
- Console: TransportInstance;
- Loggly: TransportInstance;
- DailyRotateFile: TransportInstance;
- Http: TransportInstance;
- Memory: TransportInstance;
- Webhook: TransportInstance;
+ File: FileTransportInstance;
+ Console: ConsoleTransportInstance;
+ Loggly: WinstonModuleTrasportInstance;
+ DailyRotateFile: DailyRotateFileTransportInstance;
+ Http: HttpTransportInstance;
+ Memory: MemoryTransportInstance;
+ Webhook: WebhookTransportInstance;
}
export interface TransportOptions {
@@ -145,11 +172,110 @@ declare module "winston" {
silent?: boolean;
raw?: boolean;
name?: string;
+ formatter?: Function;
handleExceptions?: boolean;
+ exceptionsLevel?: string;
+ humanReadableUnhandledException?: boolean;
+ }
- // TODO: Need to make instances specific,
- // and need to get options for each instance.
- // Unfortunately, the documentation is unhelpful.
+ export interface ConsoleTransportOptions extends TransportOptions {
+ json?: boolean;
+ colorize?: boolean;
+ prettyPrint?: boolean;
+ timestamp?: (Function|boolean);
+ showLevel?: boolean;
+ label?: string;
+ logstash?: boolean;
+ debugStdout?: boolean;
+ depth?: number;
+ }
+
+ export interface DailyRotateFileTransportOptions extends TransportOptions {
+ json?: boolean;
+ colorize?: boolean;
+ prettyPrint?: boolean;
+ timestamp?: (Function|boolean);
+ showLevel?: boolean;
+ label?: string;
+ logstash?: boolean;
+ depth?: number;
+ maxsize?: number;
+ maxFiles?: number;
+ eol?: string;
+ maxRetries?: number;
+ datePattern?: string;
+ filename?: string;
+ dirname?: string;
+ options?: {
+ flags?: string;
+ highWaterMark?: number;
+ }
+ stream?: NodeJS.WritableStream;
+ }
+
+ export interface FileTransportOptions extends TransportOptions {
+ json?: boolean;
+ colorize?: boolean;
+ prettyPrint?: boolean;
+ timestamp?: (Function|boolean);
+ showLevel?: boolean;
+ label?: string;
+ logstash?: boolean;
+ depth?: number;
+ maxsize?: number;
+ rotationFormat?: boolean;
+ zippedArchive?: boolean;
+ maxFiles?: number;
+ eol?: string;
+ tailable?: boolean;
+ maxRetries?: number;
+ filename?: string;
+ dirname?: string;
+ options?: {
+ flags?: string;
+ highWaterMark?: number;
+ }
+ stream?: NodeJS.WritableStream;
+ }
+
+ export interface HttpTransportOptions extends TransportOptions {
+ ssl?: boolean;
+ host?: string;
+ port?: number;
+ auth?: {
+ username: string;
+ password: string;
+ };
+ path?: string;
+ }
+
+ export interface MemoryTransportOptions extends TransportOptions {
+ json?: boolean;
+ colorize?: boolean;
+ prettyPrint?: boolean;
+ timestamp?: (Function|boolean);
+ showLevel?: boolean;
+ label?: string;
+ depth?: number;
+ }
+
+ export interface WebhookTransportOptions extends TransportOptions {
+ host?: string;
+ port?: number;
+ method?: string;
+ path?: string;
+ auth?: {
+ username?: string;
+ password?: string;
+ };
+ ssl?: {
+ key?: any;
+ cert?: any;
+ ca: any;
+ };
+ }
+
+ export interface WinstonMoudleTransportOptions extends TransportOptions {
[optionName: string]: any;
}