named-logs
Version:
minimal logging facet for libraries
1 lines • 1.01 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.logs=exports.hook=void 0;const noop=()=>{},noopLogger={assert:noop,error:noop,warn:noop,info:noop,log:noop,debug:noop,dir:noop,table:noop,trace:noop,write:noop,time:noop,timeEnd:noop,timeLog:noop};let _factory;function hook(o){"undefined"!=typeof globalThis&&(globalThis._logFactory=o),_factory=o}exports.hook=hook;const fallbackFactory=o=>{let n;return new Proxy({},{get(e,r,t){if(n)return n[r];const l=_getFactory();return l?(n=l(o),n[r]):noop}})};function _getFactory(){return _factory||(null===globalThis||void 0===globalThis?void 0:globalThis._logFactory)}function logs(o,n){const e=_getFactory();return e?e(o):(null==n?void 0:n.fallbackOnProxy)?"boolean"==typeof n.fallbackOnProxy?n.fallbackOnProxy?fallbackFactory(o):noopLogger:"string"==typeof n.fallbackOnProxy&&"undefined"!=typeof process&&(null===process||void 0===process?void 0:process.env[n.fallbackOnProxy])?fallbackFactory(o):noopLogger:noopLogger}exports.logs=logs;