gle
Version:
Global Log Engine: Environment-agnostic debugging & logging utility
37 lines (36 loc) • 1.25 kB
JavaScript
import ansiStyles from "ansi-styles";
export function getGlobalObject() {
if (typeof window !== "undefined") {
return window;
}
else if (typeof global !== "undefined") {
return global;
}
else if (typeof self !== "undefined") {
return self;
}
throw new Error("Unable to determine global context");
}
export function styleLogLine(prefix, content, suffix, hexColour) {
var _a, _b, _c;
const globalObject = getGlobalObject();
if (((_b = (_a = globalObject.process) === null || _a === void 0 ? void 0 : _a.stdout) === null || _b === void 0 ? void 0 : _b.isTTY) === true) {
// Use ANSI styling
const colourOpen = ansiStyles.color.ansi16m(...ansiStyles.hexToRgb(hexColour));
return [
`${colourOpen}${prefix}${ansiStyles.color.close}`,
content,
`${colourOpen}${suffix}${ansiStyles.color.close}`
];
}
else if ((_c = globalObject.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) {
return [
`%c${prefix} %c${content} %c${suffix}`,
`color:${hexColour}`,
"",
`color:${hexColour}`
];
}
// Use no colour
return [prefix, content, suffix];
}