mirror of
https://github.com/aljazceru/bakery.git
synced 2025-12-17 04:35:13 +01:00
26 lines
600 B
TypeScript
26 lines
600 B
TypeScript
import debug, { Debugger } from "debug";
|
|
|
|
if (!process.env.DEBUG) debug.enable("bakery,bakery:*");
|
|
|
|
type Listener = (logger: Debugger, ...args: any[]) => void;
|
|
const listeners = new Set<Listener>();
|
|
|
|
export function addListener(listener: Listener) {
|
|
listeners.add(listener);
|
|
}
|
|
export function removeListener(listener: Listener) {
|
|
listeners.delete(listener);
|
|
}
|
|
|
|
// listen for logs
|
|
debug.log = function (this: Debugger, ...args: any[]) {
|
|
for (const listener of listeners) {
|
|
listener(this, ...args);
|
|
}
|
|
console.log.apply(this, args);
|
|
};
|
|
|
|
const logger = debug("bakery");
|
|
|
|
export { logger };
|