@lsk4/log
Version:
Yet another logger whitch combines the best features of debug, bunyan, logfmt/logrus, morgan/winston
12 lines (10 loc) • 4.42 kB
JavaScript
import P from 'fast-safe-stringify';
import { getEnvVar } from '@lsk4/env';
import { colorize } from '@lsk4/colors';
import { Err } from '@lsk4/err';
import V from 'pretty-bytes';
import J from 'pretty-time';
var I=Object.defineProperty;var r=(t,o)=>I(t,"name",{value:o,configurable:!0});var g;(function(t){t.bunyan="bunyan",t.lsklog="lsklog",t.lsklogweb="lsklogweb",t.logrus="logrus",t.raw="raw";})(g||(g={}));P.default;var d=r(t=>!!(t&&(t.name==="req"||t.method&&t.host&&t.url)),"isLsklogWeb"),x=r(t=>!!(d(t)&&(t.status||t.duration||t.length)),"isLsklogWebFinal");var L={fatal:["bgRed"],error:["bold","bgRed"],warn:["bgYellow"],debug:["bold","cyan"],info:["bold","green"],trace:["gray"],log:["bgWhite"]},k={fatal:["bold","red"],error:["red"],warn:["yellow"],debug:["cyan"],info:["green"],trace:["gray"],log:["bgWhite"]},h=[["red"],["green"],["yellow"],["blue"],["magenta"],["cyan"],["bold","red"],["bold","green"],["bold","yellow"],["bold","blue"],["bold","magenta"],["bold","cyan"]],b=[["bold","white"],["bold","cyan"],["bold","green"],["white"]];function E(){let t=typeof process<"u"?process:{};return t?.platform!=="win32"?t?.env?.TERM!=="linux":!!t?.env?.WT_SESSION||!!t?.env?.TERMINUS_SUBLIME||t?.env?.ConEmuTask==="{cmd::Cmder}"||t?.env?.TERM_PROGRAM==="Terminus-Sublime"||t?.env?.TERM_PROGRAM==="vscode"||t?.env?.TERM==="xterm-256color"||t?.env?.TERM==="alacritty"||t?.env?.TERMINAL_EMULATOR==="JetBrains-JediTerm"}r(E,"isUnicodeSupported");var m=E();var f=m?"\u2139":"\xD7",R=m?"\u26A0":"\xD7",C=m?"\u2718":"\xD7";var M=m?"\u2573":"\xD7";var T=r(t=>typeof t=="number"?t:Math.abs(String(t).split("").reduce((o,e)=>{let n=(o<<5)-o+e.charCodeAt(0);return n&n},0)-48),"hashCode"),z=T;function B(t,o){let e=h[z(o||"")%h.length]||[];return colorize(t,e)}r(B,"themeizeRandom");function W(t,o){let e=o?L[o]:[];return colorize(t,e)}r(W,"themeize");function a(t,o){let e=o?k[o]:[];return colorize(t,e)}r(a,"themeizeLight");var N=getEnvVar("LOG_VIEW","emoji"),u=r((t,o)=>String(t).padStart(o),"leftPad"),D=r((t,o)=>String(t).padEnd(o),"rightPad"),v=20,Y=r((t,o=0)=>(v=Math.max(t&&t.length||0,v,o),D(t,v)),"prettyPath"),O=r(t=>t>=500?"error":t>=400?"warn":t>=300?"debug":null,"getStatusLevel"),H=r(t=>{let o=O(t);return o||(o=t!==200?"log":null),a(u(String(t),3),o)},"prettyStatus"),Q=r(t=>u(`#${t}`,3),"prettyReqId"),X=r(t=>{let o=t==="REMOVE"?"error":t==="WS"?"debug":null;return a(u(t,4),o)},"prettyMethod"),Z=r((t,o="")=>{if(!Number.isFinite(t))return null;let e=t>=10*1e3?"error":t>=3*1e3?"warn":null,i=["m","s","ms"].includes(o)?o:"",c=Math.floor(Math.abs(t)*10**6),p=J(c,i);return a(u(p,5),e)},"prettyTime"),K=r((t,o="")=>{if(!Number.isFinite(t))return null;let e=V(t,{maximumFractionDigits:1}).split(" "),n=e[1].toLowerCase(),i=+e[0]>=100?Math.round(+e[0]):+e[0],c=t>1*1e3*1e3?"error":t>5*1e3?"warn":null,p=c?a(n,c):n;return `${i}${o}${p}`},"prettySize"),_=r((t,o)=>[...t,o].filter(Boolean).map(String).map(n=>B(n,n)).join(":"),"prettyNs");var w=r((t,o=!0)=>{let e;return N==="emoji"?(e={fatal:M,error:C,warn:R,info:f,debug:f,trace:f}[t]||" ",(o?" ":"")+a(e,t)):(N==="short"?(e=(t[0]||"").toLowerCase(),e=`[${e}]`):(e=u(t,5),e=`[${e}]`),W(e,t))},"prettyLevel"),q=/\[[^"\]]+]/gm,U=r((...t)=>{let o=[];return t.forEach(e=>{if(typeof e=="string"){let n=0;o.push(e.replace(q,i=>colorize(i,b[n++%b.length])));}else o.push(e);}),o},"prettyContent"),tt=r(t=>{if(!t)return null;let o=typeof t=="string"?t:Err.getCode(t);return o==="err_unknown"?null:o.substr(0,20)},"prettyErr"),ot=r(t=>{let o=O(t.status);return o||(x(t)?"debug":"trace")},"getUrlLevel"),A=r(t=>{let o=x(t),e=ot(t);return [w(e),X(t.method),Y(t.url),Q(t.reqId),o&&t.method!=="WS"?H(t.status):null,!o&&"\u29D7\u29D6\u29D7",o&&Z(t.duration),o&&t.method!=="WS"?K(t.length):null,o&&t.err?tt(t.err):null].filter(Boolean).join(" ")},"prettyUrl");function et(t,o){let e=0;return t.forEach((n,i)=>{i===e&&o(n)&&(e+=1);}),e}r(et,"countInRow");function rt(...t){let o=et(t,e=>typeof e=="string");return [t.slice(0,o).join(" "),...t.slice(o)]}r(rt,"concatFirstStrings");function nt(t,...o){let e=t?.ns,n=t?.name,i=t?.level||"log",c=o;if(d(t))return [A(t)];let p=(e||"").split(":").filter(Boolean).map(String),S=[w(i)];return (p.length||n)&&S.push(_(p,n)),rt(...S,...U(...c))}r(nt,"prettyFormat");var lo=nt;
export { rt as concatFirstStrings, et as countInRow, lo as default, nt as prettyFormat };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=prettyFormat.js.map