UNPKG

@lsk4/log

Version:

Yet another logger whitch combines the best features of debug, bunyan, logfmt/logrus, morgan/winston

12 lines (10 loc) 4.32 kB
import { colorize } from '@lsk4/colors'; import { getEnvVar } from '@lsk4/env'; import { Err } from '@lsk4/err'; import I from 'pretty-bytes'; import $ from 'pretty-time'; import N from 'fast-safe-stringify'; var W=Object.defineProperty;var r=(t,o)=>W(t,"name",{value:o,configurable:!0});var v={fatal:["bgRed"],error:["bold","bgRed"],warn:["bgYellow"],debug:["bold","cyan"],info:["bold","green"],trace:["gray"],log:["bgWhite"]},L={fatal:["bold","red"],error:["red"],warn:["yellow"],debug:["cyan"],info:["green"],trace:["gray"],log:["bgWhite"]},f=[["red"],["green"],["yellow"],["blue"],["magenta"],["cyan"],["bold","red"],["bold","green"],["bold","yellow"],["bold","blue"],["bold","magenta"],["bold","cyan"]],d=[["bold","white"],["bold","cyan"],["bold","green"],["white"]];function k(){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(k,"isUnicodeSupported");var u=k();var m=u?"\u2139":"\xD7",E=u?"\u26A0":"\xD7",R=u?"\u2718":"\xD7";var C=u?"\u2573":"\xD7";var x=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"),M=x;function b(t,o){let e=f[M(o||"")%f.length]||[];return colorize(t,e)}r(b,"themeizeRandom");function T(t,o){let e=o?v[o]:[];return colorize(t,e)}r(T,"themeize");function i(t,o){let e=o?L[o]:[];return colorize(t,e)}r(i,"themeizeLight");var y;(function(t){t.bunyan="bunyan",t.lsklog="lsklog",t.lsklogweb="lsklogweb",t.logrus="logrus",t.raw="raw";})(y||(y={}));N.default;var _=r(t=>!!(t&&(t.name==="req"||t.method&&t.host&&t.url)),"isLsklogWeb"),w=r(t=>!!(_(t)&&(t.status||t.duration||t.length)),"isLsklogWebFinal");var z=getEnvVar("LOG_VIEW","emoji"),a=r((t,o)=>String(t).padStart(o),"leftPad"),j=r((t,o)=>String(t).padEnd(o),"rightPad"),S=20,F=r((t,o=0)=>(S=Math.max(t&&t.length||0,S,o),j(t,S)),"prettyPath"),B=r(t=>t>=500?"error":t>=400?"warn":t>=300?"debug":null,"getStatusLevel"),G=r(t=>{let o=B(t);return o||(o=t!==200?"log":null),i(a(String(t),3),o)},"prettyStatus"),V=r(t=>a(`#${t}`,3),"prettyReqId"),J=r(t=>{let o=t==="REMOVE"?"error":t==="WS"?"debug":null;return i(a(t,4),o)},"prettyMethod"),D=r((t,o="")=>{if(!Number.isFinite(t))return null;let e=t>=10*1e3?"error":t>=3*1e3?"warn":null,c=["m","s","ms"].includes(o)?o:"",p=Math.floor(Math.abs(t)*10**6),g=$(p,c);return i(a(g,5),e)},"prettyTime"),Y=r((t,o="")=>{if(!Number.isFinite(t))return null;let e=I(t,{maximumFractionDigits:1}).split(" "),n=e[1].toLowerCase(),c=+e[0]>=100?Math.round(+e[0]):+e[0],p=t>1*1e3*1e3?"error":t>5*1e3?"warn":null,g=p?i(n,p):n;return `${c}${o}${g}`},"prettySize"),Ht=r((t,o)=>[...t,o].filter(Boolean).map(String).map(n=>b(n,n)).join(":"),"prettyNs");function Qt(t){let o=["\u25CB","\u2022","\u2660","\u2660","\u2666","\u2665","\u263C","\u2642","\u2640","\u266A","\xA7"],e=o[x(t)%o.length];return b(e,String(t))}r(Qt,"prettyMarker");var H=r((t,o=!0)=>{let e;return z==="emoji"?(e={fatal:C,error:R,warn:E,info:m,debug:m,trace:m}[t]||" ",(o?" ":"")+i(e,t)):(z==="short"?(e=(t[0]||"").toLowerCase(),e=`[${e}]`):(e=a(t,5),e=`[${e}]`),T(e,t))},"prettyLevel"),Q=/\[[^"\]]+]/gm,Xt=r((...t)=>{let o=[];return t.forEach(e=>{if(typeof e=="string"){let n=0;o.push(e.replace(Q,c=>colorize(c,d[n++%d.length])));}else o.push(e);}),o},"prettyContent"),X=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"),Z=r(t=>{let o=B(t.status);return o||(w(t)?"debug":"trace")},"getUrlLevel"),Zt=r(t=>{let o=w(t),e=Z(t);return [H(e),J(t.method),F(t.url),V(t.reqId),o&&t.method!=="WS"?G(t.status):null,!o&&"\u29D7\u29D6\u29D7",o&&D(t.duration),o&&t.method!=="WS"?Y(t.length):null,o&&t.err?X(t.err):null].filter(Boolean).join(" ")},"prettyUrl"); export { B as getStatusLevel, Z as getUrlLevel, Xt as prettyContent, X as prettyErr, H as prettyLevel, Qt as prettyMarker, J as prettyMethod, Ht as prettyNs, F as prettyPath, V as prettyReqId, Y as prettySize, G as prettyStatus, D as prettyTime, Zt as prettyUrl }; //# sourceMappingURL=out.js.map //# sourceMappingURL=utils.js.map