mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Update winston definitions and tests
A large rewrite, with greater detailed definitions. *BREAKING CHANGE:* winston.Transport and winston.Logger types have been renamed to winston.TransportStatic and winston.LoggerStatic respectively. Instantiating the types still uses the old syntax: ```var logger = new winston.Logger``` but the return type's name has had "Static" appended.
This commit is contained in:
+190
-9
@@ -4,14 +4,73 @@ import winston = require('winston');
|
||||
|
||||
var str: string;
|
||||
var bool: boolean;
|
||||
var num: number;
|
||||
var metadata: any;
|
||||
var obj: any = {};
|
||||
|
||||
var queryOptions: winston.QueryOptions;
|
||||
var transportOptions: winston.TransportOptions;
|
||||
var loggerOptions: winston.LoggerOptions = {
|
||||
transports: [new (winston.Transport)()],
|
||||
rewriters: [new (winston.Transport)()],
|
||||
exceptionHandlers: [new (winston.Transport)()],
|
||||
handleExceptions: false
|
||||
};
|
||||
|
||||
var options: any;
|
||||
var value: any;
|
||||
var transport: winston.Transport;
|
||||
var transport: winston.TransportInstance;
|
||||
var logger: winston.LoggerInstance;
|
||||
var profiler: winston.ProfileHandler;
|
||||
|
||||
var writeableStream: NodeJS.WritableStream;
|
||||
var readableStream: NodeJS.ReadableStream;
|
||||
|
||||
|
||||
var transportStatic: winston.TransportStatic = winston.Transport;
|
||||
|
||||
|
||||
var transportInstance: winston.TransportInstance = new (winston.Transport)(transportOptions);
|
||||
transportInstance = new (winston.Transport)();
|
||||
|
||||
var containerInstance: winston.ContainerInstance = new (winston.Container)(loggerOptions);
|
||||
winston.loggers.options.transports = [
|
||||
new (winston.Transport)()
|
||||
];
|
||||
winston.loggers.add('category1', {
|
||||
console: {
|
||||
level: 'silly',
|
||||
colorize: 'true',
|
||||
label: 'category one'
|
||||
},
|
||||
file: {
|
||||
filename: '/path/to/some/file'
|
||||
},
|
||||
transports: [
|
||||
new (winston.Transport)()
|
||||
]
|
||||
});
|
||||
logger = winston.loggers.get('category1');
|
||||
|
||||
bool = containerInstance.has(str);
|
||||
logger = containerInstance.get(str, loggerOptions);
|
||||
containerInstance.close(str);
|
||||
|
||||
transport = winston.transports.File;
|
||||
transport = winston.transports.Console;
|
||||
transport = winston.transports.DailyRotateFile;
|
||||
transport = winston.transports.File;
|
||||
transport = winston.transports.Http;
|
||||
transport = winston.transports.Loggly;
|
||||
transport = winston.transports.Memory
|
||||
transport = winston.transports.Webhook;
|
||||
|
||||
value = transport.formatQuery({});
|
||||
queryOptions = transport.normalizeQuery(queryOptions);
|
||||
value = transport.formatResults([], {});
|
||||
transport.logException(str, metadata, () => { });
|
||||
|
||||
winston.exitOnError = bool;
|
||||
|
||||
|
||||
winston.log(str, str);
|
||||
winston.log(str, str, metadata);
|
||||
@@ -24,17 +83,139 @@ winston.warn(str, metadata);
|
||||
winston.error(str);
|
||||
winston.error(str, metadata);
|
||||
|
||||
winston.add(transport, options);
|
||||
winston.remove(transport);
|
||||
winston.query(queryOptions, (err: Error, results: any): void => {
|
||||
|
||||
winston.profile(str);
|
||||
|
||||
winston.query(options, (err: any, results: any) => {
|
||||
});
|
||||
winston.query((err: Error, results: any): void => {
|
||||
|
||||
});
|
||||
|
||||
value = winston.stream(options);
|
||||
logger = winston.add(transport, transportOptions);
|
||||
logger = winston.remove(transport);
|
||||
|
||||
winston.clear();
|
||||
logger = winston.profile(str, str, metadata, (err: Error, level: string, msg: string, meta: any):void => {
|
||||
|
||||
});
|
||||
logger = winston.profile(str);
|
||||
profiler = winston.startTimer();
|
||||
winston.setLevels({});
|
||||
logger = winston.cli();
|
||||
|
||||
winston.handleExceptions(transport);
|
||||
winston.exitOnError = bool;
|
||||
winston.unhandleExceptions(transport);
|
||||
|
||||
readableStream = winston.stream(options);
|
||||
|
||||
readableStream.on('log', function (log:any):void {
|
||||
console.log(log);
|
||||
});
|
||||
|
||||
|
||||
|
||||
logger = logger.extend(obj);
|
||||
logger.log(str, str);
|
||||
logger.log(str, str, metadata);
|
||||
logger.debug(str);
|
||||
logger.debug(str, metadata);
|
||||
logger.info(str);
|
||||
logger.info(str, metadata);
|
||||
logger.warn(str);
|
||||
logger.warn(str, metadata);
|
||||
logger.error(str);
|
||||
logger.error(str, metadata);
|
||||
|
||||
logger.query(queryOptions, (err: Error, results: any): void => {
|
||||
|
||||
});
|
||||
logger.query((err: Error, results: any): void => {
|
||||
|
||||
});
|
||||
|
||||
readableStream = winston.stream(options);
|
||||
logger.close();
|
||||
logger.handleExceptions(transport);
|
||||
logger.unhandleExceptions(transport);
|
||||
logger = logger.add(transport, transportOptions, bool);
|
||||
logger = logger.add(transport);
|
||||
logger.addRewriter(transport)[0];
|
||||
logger.clear();
|
||||
logger = logger.remove(transport);
|
||||
profiler = logger.startTimer();
|
||||
logger = logger.profile(str, str, metadata, (err: Error, level: string, msg: string, meta: any):void => {
|
||||
|
||||
});
|
||||
value = logger.setLevels(value);
|
||||
logger = logger.cli();
|
||||
|
||||
|
||||
logger = profiler.done(str);
|
||||
logger = profiler.logger;
|
||||
profiler.start = new Date();
|
||||
|
||||
|
||||
/**
|
||||
* New Logger instances with transports tests:
|
||||
*/
|
||||
|
||||
var logger: winston.LoggerInstance = new (winston.Logger)({
|
||||
transports: [
|
||||
new (winston.transports.Console)({
|
||||
level: str,
|
||||
silent: bool,
|
||||
colorize: bool,
|
||||
timestamp: bool,
|
||||
}),
|
||||
new (winston.transports.DailyRotateFile)({
|
||||
level: str,
|
||||
silent: bool,
|
||||
colorize: bool,
|
||||
maxsize: num,
|
||||
maxFiles: num,
|
||||
prettyPrint: bool,
|
||||
timestamp: bool,
|
||||
filename: str,
|
||||
dirname: str,
|
||||
datePattern: str
|
||||
}),
|
||||
new (winston.transports.File)({
|
||||
level: str,
|
||||
silent: bool,
|
||||
timestamp: bool,
|
||||
filename: str,
|
||||
maxsize: num,
|
||||
maxFiles: num,
|
||||
stream: writeableStream,
|
||||
}),
|
||||
new (winston.transports.Http)({
|
||||
level: str,
|
||||
host: str,
|
||||
port: num,
|
||||
path: str,
|
||||
auth: { username: str, password: str },
|
||||
ssl: {},
|
||||
}),
|
||||
new (winston.transports.Loggly)({
|
||||
level: str,
|
||||
subdomain: str,
|
||||
auth: {},
|
||||
inputName: str,
|
||||
json: bool,
|
||||
}),
|
||||
new (winston.transports.Memory)({
|
||||
level: str,
|
||||
timestamp: bool,
|
||||
label: str,
|
||||
}),
|
||||
new (winston.transports.Webhook)({
|
||||
level: str,
|
||||
name: str,
|
||||
host: str,
|
||||
port: num,
|
||||
method: str,
|
||||
path: str,
|
||||
auth: { username: str, password: str },
|
||||
ssl: {},
|
||||
}),
|
||||
]
|
||||
});
|
||||
Vendored
+159
-24
@@ -1,39 +1,174 @@
|
||||
// Type definitions for winston
|
||||
// Project: https://github.com/flatiron/winston
|
||||
// Definitions by: bonnici <https://github.com/bonnici>
|
||||
// Definitions by: bonnici <https://github.com/bonnici>, Peter Harris <https://github.com/codeanimal>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
// Imported from: https://github.com/soywiz/typescript-node-definitions/winston.d.ts
|
||||
|
||||
declare module "winston" {
|
||||
export function log(level: string, message: string, metadata?: any): void;
|
||||
export function debug(message: string, metadata?: any): void;
|
||||
export function info(message: string, metadata?: any): void;
|
||||
export function warn(message: string, metadata?: any): void;
|
||||
export function error(message: string, metadata?: any): void;
|
||||
/// <reference path="../node/node.d.ts" />
|
||||
|
||||
export function add(transport: Transport, options: any): void;
|
||||
export function remove(transport: Transport): void;
|
||||
|
||||
export function profile(name: string): void;
|
||||
//////// Here for backwards compatibility to older Node definitions ////////
|
||||
declare module NodeJS {
|
||||
interface EventEmitter { }
|
||||
interface ReadWriteStream { }
|
||||
}
|
||||
|
||||
export function query(options: any, done: (err: any, results: any) => void): void;
|
||||
interface NodeEventEmitter extends NodeJS.EventEmitter { }
|
||||
interface ReadableStream extends NodeJS.ReadableStream { }
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
export function stream(options: any): any;
|
||||
declare module "winston" {
|
||||
|
||||
export function handleExceptions(transport: Transport): void;
|
||||
export var transports: Transports;
|
||||
export var Transport: TransportStatic;
|
||||
export var Logger: LoggerStatic;
|
||||
export var Container: ContainerStatic;
|
||||
export var loggers: ContainerInstance;
|
||||
export var defaultLogger: LoggerInstance;
|
||||
|
||||
export class Logger {
|
||||
export var exitOnError: boolean;
|
||||
|
||||
}
|
||||
|
||||
export interface Transport {
|
||||
}
|
||||
export interface Transports {
|
||||
File: Transport;
|
||||
Console: Transport;
|
||||
Loggly: Transport;
|
||||
}
|
||||
export var transports: Transports;
|
||||
export var exitOnError: boolean;
|
||||
export function log(level: string, msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
export function log(level: string, msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
export function debug(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
export function debug(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
export function info(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
export function info(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
export function warn(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
export function warn(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
export function error(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
export function error(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
export function query(options: QueryOptions, callback?: (err: Error, results: any) => void): any;
|
||||
export function query(callback: (err: Error, results: any) => void): any;
|
||||
export function stream(options?: any): ReadableStream;
|
||||
export function handleExceptions(...transports: TransportInstance[]): void;
|
||||
export function unhandleExceptions(...transports: TransportInstance[]): void;
|
||||
export function add(transport: TransportInstance, options?: TransportOptions, created?: boolean): LoggerInstance;
|
||||
export function clear(): void;
|
||||
export function remove(transport: TransportInstance): LoggerInstance;
|
||||
export function startTimer(): ProfileHandler;
|
||||
export function profile(id: string, msg?: string, meta?: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
export function setLevels(target: any): any;
|
||||
export function cli(): LoggerInstance;
|
||||
|
||||
|
||||
export interface LoggerStatic {
|
||||
new (options?: LoggerOptions);
|
||||
}
|
||||
|
||||
export interface LoggerInstance extends NodeEventEmitter {
|
||||
extend(target: any): LoggerInstance;
|
||||
|
||||
log(level: string, msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
log(level: string, msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
debug(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
debug(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
info(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
info(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
warn(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
warn(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
error(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
error(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
query(options: QueryOptions, callback?: (err: Error, results: any) => void): any;
|
||||
query(callback: (err: Error, results: any) => void): any;
|
||||
stream(options?: any): ReadableStream;
|
||||
close(): void;
|
||||
handleExceptions(...transports: TransportInstance[]): void;
|
||||
unhandleExceptions(...transports: TransportInstance[]): void;
|
||||
add(transport: TransportInstance, options?: TransportOptions, created?: boolean): LoggerInstance;
|
||||
addRewriter(rewriter: TransportInstance): TransportInstance[];
|
||||
clear(): void;
|
||||
remove(transport: TransportInstance): LoggerInstance;
|
||||
startTimer(): ProfileHandler;
|
||||
profile(id: string, msg?: string, meta?: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance;
|
||||
|
||||
setLevels(target: any): any;
|
||||
cli(): LoggerInstance;
|
||||
}
|
||||
|
||||
export interface LoggerOptions {
|
||||
transports?: TransportInstance[];
|
||||
rewriters?: TransportInstance[];
|
||||
exceptionHandlers?: TransportInstance[];
|
||||
handleExceptions?: boolean;
|
||||
|
||||
/**
|
||||
* @type {(boolean|(err: Error) => void)}
|
||||
*/
|
||||
exitOnError?: any;
|
||||
}
|
||||
|
||||
export interface TransportStatic {
|
||||
new (options?: TransportOptions): TransportInstance;
|
||||
}
|
||||
|
||||
export interface TransportInstance extends TransportStatic, NodeEventEmitter {
|
||||
formatQuery(query: any): any;
|
||||
normalizeQuery(options: QueryOptions): QueryOptions;
|
||||
formatResults(results: any, options: any): any;
|
||||
logException(msg: string, meta: any, callback: () => void): void;
|
||||
}
|
||||
|
||||
export interface ContainerStatic {
|
||||
new (options: LoggerOptions): ContainerInstance;
|
||||
}
|
||||
|
||||
export interface ContainerInstance extends ContainerStatic {
|
||||
get(id: string, options?: LoggerOptions): LoggerInstance;
|
||||
add(id: string, options: LoggerOptions): LoggerInstance;
|
||||
has(id: string): boolean;
|
||||
close(id: string): void;
|
||||
options: LoggerOptions;
|
||||
loggers: any;
|
||||
default: LoggerOptions;
|
||||
}
|
||||
|
||||
export interface Transports {
|
||||
File: TransportInstance;
|
||||
Console: TransportInstance;
|
||||
Loggly: TransportInstance;
|
||||
DailyRotateFile: TransportInstance;
|
||||
Http: TransportInstance;
|
||||
Memory: TransportInstance;
|
||||
Webhook: TransportInstance;
|
||||
}
|
||||
|
||||
export interface TransportOptions {
|
||||
level?: string;
|
||||
silent?: boolean;
|
||||
raw?: boolean;
|
||||
name?: string;
|
||||
handleExceptions?: boolean;
|
||||
}
|
||||
|
||||
export interface QueryOptions {
|
||||
rows?: number;
|
||||
limit?: number;
|
||||
start?: number;
|
||||
from?: Date;
|
||||
until?: Date;
|
||||
/**
|
||||
* 'asc' or 'desc'
|
||||
*/
|
||||
order?: string;
|
||||
fields: any;
|
||||
}
|
||||
|
||||
export interface ProfileHandler {
|
||||
logger: LoggerInstance;
|
||||
start: Date;
|
||||
done: (msg: string) => LoggerInstance;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user