UNPKG

diary

Version:

Fast effective logging library for both Node, the Browser, and Workers!

1 lines 1.01 kB
import{format as e}from"util";var r=[],a=e=>new RegExp(e.replace(/\*/g,".*")+"$"),n=e=>{r=e.split(/[\s,]+/).map(a)};n(process.env.DEBUG||"a^");var o=(e,a,n,...o)=>{for(let l=r.length;l--;)if(r[l].test(e))return a({name:e,level:n,messages:o})},l={fatal:"✗ fatal",error:"✗ error",warn:"‼ warn ",debug:"● debug",info:"ℹ info ",log:"◆ log "},s=r=>{let a="";const n=console["fatal"===r.level?"error":r.level];a=`${l[r.level]} `,r.name&&(a+=`[${r.name}] `);{let o;const l=r.messages[0];if(l instanceof Error&&void 0!==l.stack){const e=l.stack.split("\n");e.shift(),o=`${l.message}\n${e.join("\n")}`}else o=e(...r.messages);return void n(a+o)}},t=(e,r)=>({fatal:o.bind(0,e,r=r||s,"fatal"),error:o.bind(0,e,r,"error"),warn:o.bind(0,e,r,"warn"),debug:o.bind(0,e,r,"debug"),info:o.bind(0,e,r,"info"),log:o.bind(0,e,r,"log")}),i=t(""),f=i.fatal,g=i.error,d=i.warn,b=i.debug,m=i.info,c=i.log;export{b as debug,s as default_reporter,t as diary,n as enable,g as error,f as fatal,m as info,c as log,d as warn};