nsole
Version:
A drop-in isomorphic console.* replacement that's pretty, small, fast, and flexible
2 lines (1 loc) • 1.51 kB
JavaScript
var F=(a,f,K,v,Q,x="_id",L="_def",B="_lvl",H="PTAG_",V="_FORCE",C={},D=()=>{},R=(I,E="s")=>(typeof I)[0]==E,Y=R(globalThis,"o")?globalThis:C,c=([I,E,m],T)=>[E??Y[H+I]??m,Y[H+I+V]].map((O)=>T>3?R(O)?JSON.parse(O):O:O),[[X,i],[n,t],[Z,$],[g,r],[b,M]]=[["ID",a,"{}"],["FG"],["LVL",f,5],["PLG",v],["DEF",null,C]].map(c),P={debug:[5,">","#89A"],log:[4,">","#2AE"],info:[4,"i","#1AA"],check:[3,"?","#D6D"],warn:[2,"!","#F77"],error:[1,"X","#F36"],_dl:["","/","/"],_css:[" "," ","color: ^^;"," ","color:^^^;background:#0000;font-weight:900;font-family:Menlo,Consolas,monospace;"],...b,...K??C,_fg:K?._fg??n??b?._fg,...M??C},W=(I,E=P)=>({...E,...I??P}),S=0>Q,N=console)=>new Proxy({[x]:X,[L]:W(),[B]:Z},{get:(I,E)=>{let m=I[L]??P,T=m[E];$=Y[H+"LVL"+V];let O=~~($??I[B]),h=E==B||E==x||E==L?I[E]:O&&(O==-1||!T&&(E in N))?N[E]??N.log:!O||T?.[0]>O?D:null;if(!h&&((I[E]??D)===D||S)){I[L]=T?m:W({[E]:[1,E,"#A58"]},m),T=I[L][E];let k=(i??I[x]??"").replace("{}",E),j=r??g,[A,y,u,w,d,q,z]=j?j(T,E,k,I):T;if(A!==T[0]){if(R(A,"f"))return A;k=R(A)?A:k}w=t??w??m._fg??"#89A",z=M?._dl??z??m._dl,q=M?._css??q??m._css;let U="NO_COLOR"in Y||(w??m._fg)=="";U=S?!U:Q??!U;let[l,s,p]=z.map((_)=>U?`%c${_}%c`:_),[J,o,e,EE,IE]=q;I[E]=(N[d??E]??N.log).bind(N,l+(E==y?"*":y)+s+k+p,...U?[J,o,J,e,J+EE,""].map((_)=>_?((IE??"")+_).replace(/\^+/g,(G)=>(G=="^"?w??u:G=="^^"?w??m._fg:u)??"#000C"):_):[])}return h||I[E]},set:(I,E,m)=>{I[E]=E==B?m??Z:E==x?m??X:W(m,I[L]);for(let T in I[L])I[T]=D;return!0}});var LE=F;export{F as ftagg,LE as default};