nsole
Version:
A drop-in isomorphic console.* replacement that's pretty, small, fast, and flexible
2 lines (1 loc) • 908 B
JavaScript
var Z=(K,L,T,$,x,D="_id",z="_def",E="_lvl",H=T??{},M=[3,"?","#D6D"],I={check:M,debug:[5,">","#89A"],log:[4,">","#2AE"],info:[4,"i","#1AA"],warn:[2,"!","#F77"],error:[1,"X","#F36"],_fg:H._fg??"#000",_dl:H._dl??["",":",":"],_css:H._css??[" "," "," "," ","color:^;"]},J=(q,j=I)=>({...j,...q??I}),F=()=>{},A=console)=>new Proxy({[D]:K??"{}",[z]:J(),[E]:L??5},{get:(q,j)=>{let w=q[z]??I,C=w[j],G=~~q[E],N=j==E||j==D||j==z?q[j]:G&&(G==-1||!C&&(j in A))?A[j]??A.log:!G||C?.[0]>G?F:null;if(!N&&(q[j]??F)===F){q[z]=C?w:J({[j]:M},w);let O=w._fg=="",[b,U,P,Q,V]=q[z][j],[W,X,Y]=w._dl.map((B)=>O?B:`%c${B}%c`);q[j]=(A[V??j]??A.log).bind(A,W+U+X+q[D]?.replace("{}",j)+Y,...O?[]:w._css.concat("").map((B)=>B?((w._css[4]??"")+B).replace(/\^+/g,(R)=>R=="^"?Q??P:R=="^^"?Q??w._fg:P):B))}return N||q[j]},set:(q,j,w)=>{q[j]=j==E?w??L:j==D?w??K:J(w,q[z]);for(let C in q[z])q[C]=F;return!0}}),S=Z;export{Z as slim,S as default};