nsole
Version:
A drop-in isomorphic console.* replacement that's pretty, small, fast, and flexible
80 lines (78 loc) • 2.94 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __moduleCache = /* @__PURE__ */ new WeakMap;
var __toCommonJS = (from) => {
var entry = __moduleCache.get(from), desc;
if (entry)
return entry;
entry = __defProp({}, "__esModule", { value: true });
if (from && typeof from === "object" || typeof from === "function")
__getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
}));
__moduleCache.set(from, entry);
return entry;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, {
get: all[name],
enumerable: true,
configurable: true,
set: (newValue) => all[name] = () => newValue
});
};
// src/slim.ts
var exports_slim = {};
__export(exports_slim, {
slim: () => slim,
default: () => slim_default
});
module.exports = __toCommonJS(exports_slim);
var slim = (id, level, definitions, _pluginFn, _colorSpace, i = "_id", s = "_def", l = "_lvl", dstyle = definitions ?? {}, check = [3, "?", "#D6D"], _defs = {
check,
debug: [5, ">", "#89A"],
log: [4, ">", "#2AE"],
info: [4, "i", "#1AA"],
warn: [2, "!", "#F77"],
error: [1, "X", "#F36"],
_fg: dstyle._fg ?? "#000",
_dl: dstyle._dl ?? ["", ":", ":"],
_css: dstyle._css ?? [
" ",
" ",
" ",
" ",
"color:^;"
]
}, setStyle = (value, dvalue = _defs) => ({ ...dvalue, ...value ?? _defs }), lnoop = () => {}, gconsole = console) => new Proxy({
[i]: id ?? "{}",
[s]: setStyle(),
[l]: level ?? 5
}, {
get: (target, prop) => {
let defs = target[s] ?? _defs;
let idef = defs[prop];
let ilvl = ~~target[l];
let rtn = prop == l || prop == i || prop == s ? target[prop] : ilvl && (ilvl == -1 || !idef && (prop in gconsole)) ? gconsole[prop] ?? gconsole.log : !ilvl || idef?.[0] > ilvl ? lnoop : null;
if (!rtn && (target[prop] ?? lnoop) === lnoop) {
target[s] = idef ? defs : setStyle({ [prop]: check }, defs);
let nc = defs._fg == "";
let [_l, tag, bg, fg, cm] = target[s][prop];
let [ds, dm, de] = defs._dl.map((v) => nc ? v : `%c${v}%c`);
target[prop] = (gconsole[cm ?? prop] ?? gconsole.log).bind(gconsole, ds + tag + dm + target[i]?.replace("{}", prop) + de, ...nc ? [] : defs._css.concat("").map((v) => v ? ((defs._css[4] ?? "") + v).replace(/\^+/g, (match) => match == "^" ? fg ?? bg : match == "^^" ? fg ?? defs._fg : bg) : v));
}
return rtn || target[prop];
},
set: (target, prop, value) => {
target[prop] = prop == l ? value ?? level : prop == i ? value ?? id : setStyle(value, target[s]);
for (let k in target[s]) {
target[k] = lnoop;
}
return true;
}
});
var slim_default = slim;