named-logs
Version:
minimal logging facet for libraries
1 lines • 885 B
JavaScript
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;export function hook(o){"undefined"!=typeof globalThis&&(globalThis._logFactory=o),_factory=o}const fallbackFactory=o=>{let n;return new Proxy({},{get(r,t,e){if(n)return n[t];const l=_getFactory();return l?(n=l(o),n[t]):noop}})};function _getFactory(){return _factory||(null===globalThis||void 0===globalThis?void 0:globalThis._logFactory)}export function logs(o,n){const r=_getFactory();return r?r(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}