Add type definition for logger (#36769)

This commit is contained in:
maxwan 2019-07-10 09:36:15 +09:00 committed by Armando Aguirre
parent e5d544eae0
commit 0a767516ec
4 changed files with 71 additions and 0 deletions

25
types/logger/index.d.ts vendored Normal file
View File

@ -0,0 +1,25 @@
// Type definitions for logger 0.0
// Project: http://github.com/quirkey/node-logger
// Definitions by: Max Wan <https://github.com/maxwan>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export function createLogger(logFilePath?: string): Logger;
export type LogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug';
export type Args = (...args: string[]) => string | false;
export class Logger {
constructor(logFilePath?: string);
format: (level: LogLevel, data: string, message: string) => string;
setLevel: (level: LogLevel) => number | false;
log: (level: LogLevel, ...args: string[]) => string | false;
fatal: Args;
error: Args;
warn: Args;
info: Args;
debug: Args;
}
export namespace Logger {
const levels: ['fatal', 'error', 'warn', 'info', 'debug'];
}

View File

@ -0,0 +1,22 @@
import { Logger, createLogger } from 'logger';
const logToSTDOUT = createLogger(); // $ExpectType Logger
logToSTDOUT.format('debug', 'date', 'message'); // $ExpectType string
logToSTDOUT.setLevel('fatal'); // $ExpectType number | false
logToSTDOUT.log('info', 'text1', 'text2', 'text3'); // $ExpectType string | false
logToSTDOUT.fatal('fatal', 'text1', 'text2', 'text3', 'text4', 'text5'); // $ExpectType string | false
logToSTDOUT.error('error', 'text1', 'text2', 'text3', 'text4'); // $ExpectType string | false
logToSTDOUT.warn('warn', 'text1', 'text2', 'text3'); // $ExpectType string | false
logToSTDOUT.info('info', 'text1', 'text2'); // $ExpectType string | false
logToSTDOUT.debug('debug', 'text1'); // $ExpectType string | false
createLogger('test.log'); // $ExpectType Logger
new Logger(); // $ExpectType Logger
new Logger('test.log'); // $ExpectType Logger
Logger.levels[0]; // $ExpectType "fatal"
Logger.levels[1]; // $ExpectType "error"
Logger.levels[2]; // $ExpectType "warn"
Logger.levels[3]; // $ExpectType "info"
Logger.levels[4]; // $ExpectType "debug"

View File

@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"logger-tests.ts"
]
}

1
types/logger/tslint.json Normal file
View File

@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }