@evilkiwi/logger
Version:
Pretty-print utility logger for browsers.
3 lines (2 loc) • 2.1 kB
JavaScript
const o={log:"log",debug:"debug",error:"error",info:"info",warn:"warn"};function n(o){return`${o>9?"":"0"}${o}`}function e(o){return"string"==typeof o?o:"number"==typeof o?"#"+function(o,n=6){let e=o.toString(16);for(;n>e.length;)e="0"+e;return e}(o):"#FFFFFF"}function r(o){return"string"==typeof o?o:o.join("")}const l={base:["font-size: 11px;","font-weight: normal;"],code:["display: inline-block;",'font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", "Liberation Mono", Menlo, Monaco, Consolas, monospace;',"padding: 1px 4px;","font-size: 10px;","background-color: #E92063;","font-weight: bold;","color: #111111;","border-radius: 3px;","vertical-align: top;"]};function t(o){const t={name:null,color:null,...o,styles:!1!==o?.styles&&{...l,...o?.styles??{}}};let s=!1;function i(o){if(s)return;const l=!1!==t.styles?`${r(t.styles.base)} ${o.color?`color: ${e(o.color)};`:""}`:"",i=!1!==t.styles?"%c":"",c=[l];let a="";"string"==typeof t.name&&t.name.length>0&&(a=`${i}[${t.name}] `,!1!==t.styles&&c.unshift(`${l} ${null!==t.color?`color: ${e(t.color)};`:""}`));let u=`${a}${i}${o.message} @ ${function(){const o=new Date;return`${n(o.getHours())}:${n(o.getMinutes())}:${n(o.getSeconds())}.${o.getMilliseconds()}`}()}`;if(!1!==t.styles){const o=/(`([^`]*)`)+/g,n=(u.match(o)??[]).length;for(let o=0;n>o;o++)c.push(r(t.styles.code),l);u=u.replace(o,`${i}$2${i}`)}console[o.call??o.level](u,...!1!==t.styles?c:[],...o.args??[])}function c(o,n,e,r=!1){s||(i({level:e??"log",message:o,call:r?"groupCollapsed":"group"}),n&&(n(),a()))}function a(){console.groupEnd()}return{props:t,setDisabled:o=>{s=o},disabled:s,group:c,groupCollapsed:function(o,n,e){c(o,n,e,!0)},groupEnd:a,log:function(o,...n){i({level:"log",message:o,args:n})},debug:function(o,...n){i({level:"debug",message:o,args:n})},info:function(o,...n){i({level:"info",message:o,args:n})},warn:function(o,...n){i({level:"warn",message:o,args:n,color:"#FFFFFF"})},error:function(o,...n){i({level:"error",message:o,args:n,color:"#FFFFFF"})}}}export{t as createLogger,o as logLevel,l as styles};
//# sourceMappingURL=index.esm.min.js.map