60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
const getPrefix = () => {
|
|
const prefixName = game.i18n?.localize("YAT.title") ||
|
|
"Timer Module";
|
|
return `[${prefixName}] `;
|
|
};
|
|
export const logger = (() => {
|
|
const originalConsole = console;
|
|
const wrapper = {};
|
|
|
|
const methodsToPrefix = [
|
|
"log",
|
|
"info",
|
|
"warn",
|
|
"error",
|
|
"debug",
|
|
"dir",
|
|
"dirxml",
|
|
"assert",
|
|
"count",
|
|
"countReset",
|
|
"group",
|
|
"groupCollapsed",
|
|
"groupEnd",
|
|
"time",
|
|
"timeLog",
|
|
"timeEnd",
|
|
"trace",
|
|
];
|
|
|
|
methodsToPrefix.forEach((methodName) => {
|
|
wrapper[methodName] = function (...args) {
|
|
const modifiedArgs = [...args];
|
|
const prefix = getPrefix();
|
|
|
|
// preserve string substitution formatting (e.g., %s, %d)
|
|
if (typeof modifiedArgs[0] === "string") {
|
|
modifiedArgs[0] = prefix + modifiedArgs[0];
|
|
} else {
|
|
modifiedArgs.unshift(prefix);
|
|
}
|
|
originalConsole[methodName].apply(originalConsole, modifiedArgs);
|
|
};
|
|
});
|
|
|
|
if (typeof originalConsole.table === "function") {
|
|
wrapper.table = function (...args) {
|
|
const prefix = getPrefix();
|
|
originalConsole.log(`=== ${prefix} ===`);
|
|
originalConsole.table.apply(originalConsole, args);
|
|
};
|
|
}
|
|
|
|
if (typeof originalConsole.clear === "function") {
|
|
wrapper.clear = function () {
|
|
originalConsole.clear();
|
|
};
|
|
}
|
|
return wrapper;
|
|
})();
|