@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
32 lines • 3.34 kB
JavaScript
import { webglLookup } from "./../utils/webgl.js";
export function debug(code, classNames = {}) {
const css = [];
const txt = stringify(code, classNames, css);
console.debug(txt, ...css);
}
export function highlightEnum(value) {
const txt = typeof value === "number" ? webglLookup(value) : value;
return ["gl.", { cls: "enum", txt }, { cls: "code" }];
}
const CLASSNAMES = {
code: "font-family:monospace;font-size:80%;background:#000;color:#eee;padding:0;margin:0;border-radius:0;",
bold: "font-weight:bold",
enum: "font-weight:bold;color:#4af",
};
function stringify(code, classNames, css) {
if (typeof code === "boolean") {
css.push(`background:${code ? "#0f0" : "#f77"};font-size:80%;color:#000;padding:0 .5em;border-radius:999vmax`, CLASSNAMES.code);
return `%c${code ? "true" : "false"}%c`;
}
if (typeof code === "string")
return code;
if (Array.isArray(code)) {
return code.map((item) => stringify(item, classNames, css)).join("");
}
const style = classNames[code.cls] ?? CLASSNAMES[code.cls];
if (!style)
return code.txt ?? "";
css.push(`${classNames.code ?? CLASSNAMES.code};${style}`);
return `%c${code.txt ?? ""}`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVidWcvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBSTlDLE1BQU0sVUFBVSxLQUFLLENBQUMsSUFBcUIsRUFBRSxhQUFxQyxFQUFFO0lBQ2hGLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQTtJQUN4QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFBO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQTRDO0lBQ3RFLE1BQU0sR0FBRyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDbEUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQTJCO0lBQ3ZDLElBQUksRUFBRSxvR0FBb0c7SUFDMUcsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0NBQ3RDLENBQUE7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFxQixFQUFFLFVBQWtDLEVBQUUsR0FBYTtJQUN2RixJQUFJLE9BQU8sSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxJQUFJLENBQ0osY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxnRUFBZ0UsRUFDcEcsVUFBVSxDQUFDLElBQUksQ0FDbEIsQ0FBQTtRQUNELE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUE7SUFDM0MsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRXpDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDeEUsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUE7SUFFakMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQzFELE9BQU8sS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFBO0FBQ2hDLENBQUMifQ==