diff --git a/module/utils/Logger.mjs b/module/utils/Logger.mjs new file mode 100644 index 0000000..6460bd3 --- /dev/null +++ b/module/utils/Logger.mjs @@ -0,0 +1,38 @@ +import { __ID } from "../consts.mjs"; + +const augmentedProps = new Set([ + `debug`, + `log`, + `error`, + `info`, + `warn`, + `group`, + `time`, + `timeEnd`, + `timeLog`, + `timeStamp`, +]); + +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) { + return noop; + }; + + if (augmentedProps.has(prop)) { + return target[prop].bind(target, __ID, `|`); + }; + return target[prop]; + }, +});