Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 2x 14x 18x 2x 8x 8x 8x 4x 4x 8x 2x 2x 8x 8x 8x 8x 3x 3x 3x 3x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { EventEmitter } from "events";
import { inspect } from "util";
export const convertCamelCaseToSnakeCase = function (value: string): string {
return value !== undefined
? value.replace(/[A-Z]/g, (letter, index) => {
return index == 0 ? letter.toLowerCase() : "_" + letter.toLowerCase();
})
: "";
};
export const waitForEvent = function <T>(
emitter: EventEmitter,
event: string,
timeout?: number,
): Promise<T> {
return new Promise((resolve, reject) => {
let internalTimeout: NodeJS.Timeout | undefined = undefined;
const success = (val: T): void => {
// eslint-disable-next-line @typescript-eslint/no-use-before-define
emitter.off("error", fail);
resolve(val);
};
const fail = (err: Error): void => {
emitter.off(event, success);
reject(err);
};
emitter.once(event, success);
emitter.once("error", fail);
Iif (internalTimeout) clearTimeout(internalTimeout);
if (timeout) {
internalTimeout = setTimeout(() => {
emitter.off(event, success);
emitter.off("error", fail);
reject(new Error("Timeout reached"));
}, timeout);
}
});
};
export const initializeInspectStyles = function (): void {
inspect.styles.special = "cyan";
inspect.styles.number = "green";
inspect.styles.bigint = "green";
inspect.styles.boolean = "yellow";
inspect.styles.undefined = "grey";
inspect.styles.null = "bold";
inspect.styles.string = "red";
inspect.styles.symbol = "green";
inspect.styles.date = "magenta";
inspect.styles.regexp = "red";
inspect.styles.module = "underline";
};
|