@tobes31415/console-logger
Version:
Formats console logs while preserving stack trace info
2 lines (1 loc) • 3.6 kB
JavaScript
;var b=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var U=(e,r)=>{for(var t in r)b(e,t,{get:r[t],enumerable:!0})},_=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of P(r))!k.call(e,o)&&o!==t&&b(e,o,{get:()=>r[o],enumerable:!(n=S(r,o))||n.enumerable});return e};var M=e=>_(b({},"__esModule",{value:!0}),e);var B={};U(B,{LogLevel:()=>D,createLoggerFor:()=>$,customizeDefaultLogConfig:()=>R,onLogEvent:()=>G});module.exports=M(B);var y=Symbol("gc");function E(e){return e[y]||(e[y]={onDispose:[]}),e[y]}function I(e){delete e.onDispose}function a(e){let r=E(e);r.isDisposed||(r.isDisposed=!0,r.onDispose.forEach(C),I(r))}function f(e,r){let t=E(e);t.isDisposed?C(r):t.onDispose.push(r)}function l(e,r){f(e,a.bind(null,r))}function C(e){try{e()}catch(r){console.error("error occured inside a dispose handler",r.message||""+r),console.log(r)}}var m=class{constructor(){this.unsubscribe=this.unsubscribe.bind(this)}unsubscribe(){a(this)}};function L(e){let r=()=>{};return Object.assign({next:r,error:r,complete:r},e)}var d=class{constructor(){this.callbacks=[]}subscribe(...r){return typeof r[0]=="function"?this.subscribeToObserver({next:r[0],error:r[1],complete:r[2]}):this.subscribeToObserver(r[0])}subscribeToObserver(r){let t=new m,n={subscription:t,observer:L(r)};return this.callbacks.push(n),f(n,()=>{let o=this.callbacks.indexOf(n);this.callbacks.splice(o,1)}),l(this,n),l(r,n),l(n,t),t}next(r){this.tryForAll(t=>t.next(r))}error(r){this.tryForAll(t=>t.error(r)),a(this)}complete(){this.tryForAll(r=>r.complete()),a(this)}pipe(...r){return r.reduce((t,n)=>n(t),this)}tryForAll(r){this.callbacks.forEach(t=>{try{r(t.observer)}catch(n){try{t.observer.error(n)}catch{}a(t)}})}};function p(e,...r){return r.forEach(t=>{t&&Object.keys(t).forEach(n=>{let o=t[n],s=e[n],c=typeof o=="object"&&typeof s=="object"&&o&&s,i=Array.isArray(o)||Array.isArray(s);c&&!i?p(s,o):e[n]=o})}),e}function x(e){return e==null}function T(e,r){return x(e)?r:e}var N=Date.now(),D=(o=>(o.debug="debug",o.error="error",o.info="info",o.warn="warn",o))(D||{});function O(e){switch(e){case"debug":return 0;case"info":return 1;case"warn":return 2;case"error":return 3}}var j={namespace:"color: dimgray",level:"color: dimgray",uptime:"color: darkgray",time:"color: lightgray"},V={namespace:"[${namespace}]",uptime:e=>`${e/1e3}s`,time:e=>e.toISOString(),level:e=>e.toUpperCase(),message:"${message}"},w={defaultLogLevel:"debug",logThreshold:"debug",include:["namespace","uptime","-","message"],style:Object.assign({},j),format:Object.assign({},V),delimiter:" "},v=p({},w),A=new d,G=A;function R(e){p(v,w,v,e)}function $(e,r){let t=r,n=()=>p({},v,t),o=F.bind(this,n,e,void 0);return Object.values(D).forEach(s=>o[s]=F.bind(this,n,e,s)),o.config=s=>{t=p({},t,s)},o}function F(e,r,t,n,...o){let s=e(),c=t||s.defaultLogLevel;if(O(c)<O(s.logThreshold))return[];let i=new Date,g={message:n,namespace:r,level:c,extras:o,time:i,uptime:i.getTime()-N};try{A.next(g)}catch{}return z(s,g)}function z(e,r){let t=[],n=[],o=!1;return e.include.forEach(s=>{let c=r[s],i=[],g=()=>{o&&(i.push("%c"),n.push(""),o=!1)};if(x(c))g(),i.push(s);else{e.style&&e.style[s]?(i.push("%c"),n.push(e.style[s]),o=!0):g();let u=e.format?e.format[s]:void 0;if(!u)i.push(""+c);else if(typeof u=="string")i.push(u.replace("${"+s+"}",""+c));else if(typeof u=="function")i.push(u(c));else throw console.error(u,e),new Error("Log Formatter invalid, must be string or function")}t.push(i.join(""))}),[t.join(T(e.delimiter," ")),...n,...r.extras]}