UNPKG

574 BPlain TextView Raw
1export type AsyncDebugBlock = () => unknown;
2export type DebugConsume = (debugLog: AsyncDebugBlock) => void;
3
4export interface DebugHandler {
5 debug: DebugConsume;
6}
7
8export class BufferedDebugHandler implements DebugHandler {
9 private buffer: Array<AsyncDebugBlock>;
10 constructor() {
11 this.buffer = [];
12 }
13
14 debug(debugMsg: AsyncDebugBlock): void {
15 this.buffer.push(debugMsg);
16 }
17
18 executeBufferedBlocks(): Array<unknown> {
19 const logs = this.buffer.map((block) => block());
20 this.buffer = [];
21 return logs;
22 }
23}