43 lines
671 B
JavaScript
43 lines
671 B
JavaScript
import { __ID__ } from "../consts.mjs";
|
|
|
|
const augmentedProps = new Set([
|
|
`debug`,
|
|
`log`,
|
|
`error`,
|
|
`info`,
|
|
`warn`,
|
|
`group`,
|
|
`time`,
|
|
`timeEnd`,
|
|
`timeLog`,
|
|
`timeStamp`,
|
|
]);
|
|
|
|
const happensInProd = new Set([
|
|
`warn`,
|
|
`error`,
|
|
]);
|
|
|
|
function noop() {};
|
|
|
|
/** @type {null | boolean} */
|
|
let inDev = null;
|
|
|
|
/** @type {Console} */
|
|
export const Logger = new Proxy(console, {
|
|
get(target, prop, _receiver) {
|
|
|
|
if (inDev == null) {
|
|
inDev = game.modules.get(__ID__).flags.inDev;
|
|
};
|
|
|
|
if (!inDev && !happensInProd.has(prop)) {
|
|
return noop;
|
|
};
|
|
|
|
if (augmentedProps.has(prop)) {
|
|
return target[prop].bind(target, __ID__, `|`);
|
|
};
|
|
return target[prop];
|
|
},
|
|
});
|