UNPKG

@lsk4/log

Version:

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

25 lines (19 loc) 4.83 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var I = require('fast-safe-stringify'); var env = require('@lsk4/env'); var colors = require('@lsk4/colors'); var err = require('@lsk4/err'); var G = require('pretty-bytes'); var V = require('pretty-time'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var I__default = /*#__PURE__*/_interopDefault(I); var G__default = /*#__PURE__*/_interopDefault(G); var V__default = /*#__PURE__*/_interopDefault(V); var A=Object.defineProperty;var r=(t,o)=>A(t,"name",{value:o,configurable:!0});var f;(function(t){t.bunyan="bunyan",t.lsklog="lsklog",t.lsklogweb="lsklogweb",t.logrus="logrus",t.raw="raw";})(f||(f={}));I__default.default.default;var g=r(t=>!!(t&&(t.name==="req"||t.method&&t.host&&t.url)),"isLsklogWeb"),d=r(t=>!!(g(t)&&(t.status||t.duration||t.length)),"isLsklogWebFinal");var S={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"]},x=[["red"],["green"],["yellow"],["blue"],["magenta"],["cyan"],["bold","red"],["bold","green"],["bold","yellow"],["bold","blue"],["bold","magenta"],["bold","cyan"]],h=[["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 M=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"),T=M;function z(t,o){let e=x[T(o||"")%x.length]||[];return colors.colorize(t,e)}r(z,"themeizeRandom");function B(t,o){let e=o?S[o]:[];return colors.colorize(t,e)}r(B,"themeize");function p(t,o){let e=o?L[o]:[];return colors.colorize(t,e)}r(p,"themeizeLight");var W=env.getEnvVar("LOG_VIEW","emoji"),a=r((t,o)=>String(t).padStart(o),"leftPad"),J=r((t,o)=>String(t).padEnd(o),"rightPad"),y=20,D=r((t,o=0)=>(y=Math.max(t&&t.length||0,y,o),J(t,y)),"prettyPath"),N=r(t=>t>=500?"error":t>=400?"warn":t>=300?"debug":null,"getStatusLevel"),Y=r(t=>{let o=N(t);return o||(o=t!==200?"log":null),p(a(String(t),3),o)},"prettyStatus"),H=r(t=>a(`#${t}`,3),"prettyReqId"),Q=r(t=>{let o=t==="REMOVE"?"error":t==="WS"?"debug":null;return p(a(t,4),o)},"prettyMethod"),X=r((t,o="")=>{if(!Number.isFinite(t))return null;let e=t>=10*1e3?"error":t>=3*1e3?"warn":null,l=["m","s","ms"].includes(o)?o:"",i=Math.floor(Math.abs(t)*10**6),c=V__default.default(i,l);return p(a(c,5),e)},"prettyTime"),Z=r((t,o="")=>{if(!Number.isFinite(t))return null;let e=G__default.default(t,{maximumFractionDigits:1}).split(" "),n=e[1].toLowerCase(),l=+e[0]>=100?Math.round(+e[0]):+e[0],i=t>1*1e3*1e3?"error":t>5*1e3?"warn":null,c=i?p(n,i):n;return `${l}${o}${c}`},"prettySize"),O=r((t,o)=>[...t,o].filter(Boolean).map(String).map(n=>z(n,n)).join(":"),"prettyNs");var v=r((t,o=!0)=>{let e;return W==="emoji"?(e={fatal:C,error:R,warn:E,info:m,debug:m,trace:m}[t]||" ",(o?" ":"")+p(e,t)):(W==="short"?(e=(t[0]||"").toLowerCase(),e=`[${e}]`):(e=a(t,5),e=`[${e}]`),B(e,t))},"prettyLevel"),K=/\[[^"\]]+]/gm,_=r((...t)=>{let o=[];return t.forEach(e=>{if(typeof e=="string"){let n=0;o.push(e.replace(K,l=>colors.colorize(l,h[n++%h.length])));}else o.push(e);}),o},"prettyContent"),q=r(t=>{if(!t)return null;let o=typeof t=="string"?t:err.Err.getCode(t);return o==="err_unknown"?null:o.substr(0,20)},"prettyErr"),tt=r(t=>{let o=N(t.status);return o||(d(t)?"debug":"trace")},"getUrlLevel"),U=r(t=>{let o=d(t),e=tt(t);return [v(e),Q(t.method),D(t.url),H(t.reqId),o&&t.method!=="WS"?Y(t.status):null,!o&&"\u29D7\u29D6\u29D7",o&&X(t.duration),o&&t.method!=="WS"?Z(t.length):null,o&&t.err?q(t.err):null].filter(Boolean).join(" ")},"prettyUrl");function ot(t,o){let e=0;return t.forEach((n,l)=>{l===e&&o(n)&&(e+=1);}),e}r(ot,"countInRow");function et(...t){let o=ot(t,e=>typeof e=="string");return [t.slice(0,o).join(" "),...t.slice(o)]}r(et,"concatFirstStrings");function rt(t,...o){let e=t?.ns,n=t?.name,l=t?.level||"log",i=o;if(g(t))return [U(t)];let c=(e||"").split(":").filter(Boolean).map(String),w=[v(l)];return (c.length||n)&&w.push(O(c,n)),et(...w,..._(...i))}r(rt,"prettyFormat");var so=rt; exports.concatFirstStrings = et; exports.countInRow = ot; exports.default = so; exports.prettyFormat = rt; //# sourceMappingURL=out.js.map //# sourceMappingURL=prettyFormat.js.map