UNPKG

1.39 kBPlain TextView Raw
1// Types based on @types/debug
2export interface IDebug {
3 (namespace: string): IDebugger
4 coerce: (val: any) => any
5 disable: () => string
6 enable: (namespaces: string) => void
7 enabled: (namespaces: string) => boolean
8 log: (...args: any[]) => any
9
10 names: RegExp[]
11 skips: RegExp[]
12
13 formatters: DebugFormatters
14}
15
16export interface DebugFormatters {
17 [formatter: string]: (v: any) => string
18}
19
20export interface IDebugger {
21 // (formatter: any, ...args: any[]): void;
22 (...args: any[]): void
23
24 color: string
25 enabled: boolean
26 log: (...args: any[]) => any
27 namespace: string
28 destroy: () => boolean
29 // extend: (namespace: string, delimiter?: string) => IDebugger
30}
31
32const originalDebug = require('debug') as IDebug
33
34// eslint-disable-next-line @typescript-eslint/naming-convention
35export const Debug = ((namespace: string) => {
36 const instance = originalDebug(namespace)
37 instance.log = console.log.bind(console) // this enables colors for objects
38 return instance
39}) as IDebug
40
41Debug.coerce = originalDebug.coerce.bind(originalDebug)
42Debug.disable = originalDebug.disable.bind(originalDebug)
43Debug.enable = originalDebug.enable.bind(originalDebug)
44Debug.enabled = originalDebug.enabled.bind(originalDebug)
45Debug.log = originalDebug.log.bind(originalDebug)
46Debug.names = originalDebug.names
47Debug.skips = originalDebug.skips
48Debug.formatters = originalDebug.formatters
49
\No newline at end of file