postchain-client
Version:
Client library for accessing a Postchain node through REST.
108 lines • 3.16 kB
JavaScript
var _a;
var MsgType;
(function (MsgType) {
MsgType["Debug"] = "DEBUG";
MsgType["Info"] = "INFO";
MsgType["Error"] = "ERROR";
MsgType["Warning"] = "WARNING";
})(MsgType || (MsgType = {}));
var LogColor;
(function (LogColor) {
LogColor["Red"] = "\u001B[91m";
LogColor["Green"] = "\u001B[92m";
LogColor["Blue"] = "\u001B[36m";
LogColor["Yellow"] = "\u001B[93m";
LogColor["StopColor"] = "\u001B[0m";
})(LogColor || (LogColor = {}));
export var LogLevel;
(function (LogLevel) {
LogLevel["Debug"] = "DEBUG";
LogLevel["Info"] = "INFO";
LogLevel["Error"] = "ERROR";
LogLevel["Warning"] = "WARNING";
LogLevel["Disabled"] = "DISABLED";
})(LogLevel || (LogLevel = {}));
const logLevelMap = {
[LogLevel.Warning]: 1,
[LogLevel.Info]: 2,
[LogLevel.Debug]: 3,
[LogLevel.Error]: 0,
[LogLevel.Disabled]: -1,
};
const DEFAULT_LOG_LEVEL = logLevelMap[LogLevel.Warning];
let logLevel = typeof process === "undefined"
? DEFAULT_LOG_LEVEL
: (_a = logLevelMap[process.env.LOG_LEVEL]) !== null && _a !== void 0 ? _a : DEFAULT_LOG_LEVEL;
function setLogLevel(level) {
if (typeof level === "number") {
console.warn("Passing a number is deprecated, please use LogLevel enum instead");
logLevel = level;
return;
}
logLevel = logLevelMap[level];
}
function getLogLevel() {
return logLevel;
}
function debug(message, moduleName) {
if (logLevel >= 3) {
emitLogMessage({
message,
moduleName,
msgType: MsgType.Debug,
color: LogColor.Blue,
});
}
}
function info(message, moduleName) {
if (logLevel >= 2) {
emitLogMessage({
message,
moduleName,
msgType: MsgType.Info,
color: LogColor.Green,
});
}
}
function error(message, moduleName) {
if (logLevel != -1) {
emitLogMessage({
message,
moduleName,
msgType: MsgType.Error,
color: LogColor.Red,
});
}
}
function warning(message, moduleName) {
if (logLevel >= 1) {
emitLogMessage({
message,
moduleName,
msgType: MsgType.Warning,
color: LogColor.Yellow,
});
}
}
function emitLogMessage({ msgType, message, color, moduleName, }) {
const time = getTimestamp();
const moduleNameMessage = moduleName ? `[${moduleName}]` : "";
console.log(`[${time}] ${color}${msgType}:${LogColor.StopColor} ${moduleNameMessage} ${message}`);
}
function getTimestamp() {
const pad = (n, s = 2) => `${new Array(s).fill(0)}${n}`.slice(-s);
const date = new Date();
return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}:${pad(date.getMilliseconds(), 3)}`;
}
export function logger(moduleName) {
return {
debug: (message) => debug(message, moduleName),
info,
error,
warning,
setLogLevel,
disable: () => setLogLevel(logLevelMap[LogLevel.Disabled]),
};
}
export { debug, info, error, warning, setLogLevel, getLogLevel };
//# sourceMappingURL=logger.js.map