@empirica/core
Version:
Empirica Core
192 lines (190 loc) • 5.94 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined")
return require.apply(this, arguments);
throw new Error('Dynamic require of "' + x + '" is not supported');
});
var __commonJS = (cb, mod) => function __require2() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
// src/utils/console.ts
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
var LogsMock = class {
constructor() {
this.logs = [];
}
log(line) {
this.logs.push(line);
}
clear() {
this.logs = [];
}
};
var logsMock;
function captureLogs(cb) {
const lm = mockLogging();
cb();
const ret = lm.logs;
stopMockLogging();
return ret;
}
async function captureLogsAsync(cb) {
const lm = mockLogging();
await cb();
const ret = lm.logs;
stopMockLogging();
return ret;
}
function mockLogging() {
if (!logsMock) {
logsMock = new LogsMock();
}
return logsMock;
}
function stopMockLogging() {
logsMock = void 0;
}
var colorHex = {
[1 /* Bold */]: "font-weight: bold",
[30 /* Black */]: "color: #000000",
[31 /* Red */]: "color: #cc0000",
[32 /* Green */]: "color: #4e9a06",
[33 /* Yellow */]: "color: #c4a000",
[34 /* Blue */]: "color: #729fcf",
[35 /* Magenta */]: "color: #75507b",
[36 /* Cyan */]: "color: #06989a",
[37 /* White */]: "color: #d3d7cf",
[90 /* DarkGray */]: "color: #555753"
};
var levels = {
trace: 0,
debug: 1,
log: 2,
info: 2,
warn: 3,
error: 4
};
var reversLevels = {};
for (const key in levels) {
reversLevels[levels[key]] = key;
}
var currentLevel = 2;
function setLogLevel(level) {
const lvl = levels[level];
if (lvl === void 0) {
return;
}
currentLevel = lvl;
}
function formatConsoleDate(date, level) {
var hour = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
var milliseconds = date.getMilliseconds();
const str = (hour < 10 ? "0" + hour : hour) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + "." + ("00" + milliseconds).slice(-3);
if (isBrowser) {
const ts = colorize(str, 90 /* DarkGray */).concat(level);
return [ts[0] + " " + level[0], ts[1], level[1]];
}
return colorize(str, 90 /* DarkGray */).concat(level);
}
var createLogger = (lvl, level) => {
return (...args) => {
if (lvl < currentLevel) {
return;
}
if (logsMock) {
logsMock.log({ level: reversLevels[lvl], args });
return;
}
if (args.length === 1) {
switch (typeof args[0]) {
case "string":
for (const line of args[0].split("\n")) {
console.log(...formatConsoleDate(/* @__PURE__ */ new Date(), level).concat(line));
}
return;
case "object":
if (args[0] instanceof Error) {
const error2 = args[0];
const prettyErr = error2.name + ": " + error2.message.replace(new RegExp(`^${error2.name}[: ]*`), "") + "\n" + (error2.stack || "").split("\n").map((line) => line.trim()).map((line) => {
if (line.startsWith(error2.name + ": " + error2.message))
return null;
if (line.startsWith("at")) {
return " " + line;
}
return line;
}).filter(Boolean).join("\n");
for (const line of prettyErr.split("\n")) {
console.log(...formatConsoleDate(/* @__PURE__ */ new Date(), level).concat(line));
}
return;
}
}
}
console.log(...formatConsoleDate(/* @__PURE__ */ new Date(), level).concat(args));
};
};
function colorize(s, ...cc) {
if (isBrowser) {
const attr = [];
for (const c of cc) {
attr.push(colorHex[c]);
}
return [`%c${s}`, attr.join("; ")];
}
let out = "";
for (const c of cc) {
out += `\x1B[${c}m`;
}
out += `${s}\x1B[0m`;
return [out];
}
var trace = createLogger(0, colorize("TRC", 35 /* Magenta */));
var debug = createLogger(1, colorize("DBG", 33 /* Yellow */));
var log = createLogger(2, colorize("LOG", 33 /* Yellow */));
var info = createLogger(2, colorize("INF", 32 /* Green */));
var warn = createLogger(3, colorize("WRN", 36 /* Cyan */));
var error = createLogger(4, colorize("ERR", 31 /* Red */, 1 /* Bold */));
export {
__require,
__commonJS,
__toESM,
LogsMock,
captureLogs,
captureLogsAsync,
mockLogging,
stopMockLogging,
levels,
setLogLevel,
trace,
debug,
log,
info,
warn,
error
};
//# sourceMappingURL=chunk-TIKLWCJI.js.map