@backs/logger
Version:
An advanced logger using winston & colorette behind the scenes
11 lines (10 loc) • 5.82 kB
JavaScript
var w=Object.create;var b=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var S=(n,e)=>{for(var o in e)b(n,o,{get:e[o],enumerable:!0})},T=(n,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of C(e))!F.call(n,i)&&i!==o&&b(n,i,{get:()=>e[i],enumerable:!(t=R(e,i))||t.enumerable});return n};var L=(n,e,o)=>(o=n!=null?w(v(n)):{},T(e||!n||!n.__esModule?b(o,"default",{value:n,enumerable:!0}):o,n)),k=n=>T(b({},"__esModule",{value:!0}),n);var _={};S(_,{Logger:()=>p,argumentRegex:()=>h,colorMap:()=>f,default:()=>O,modifiersMap:()=>c});module.exports=k(_);var s=require("winston"),r=require("colorette"),d=require("table"),B=L(require("progress")),A=L(require("moment")),M=n=>n.replace(/[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)|(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))/g,""),f={b:r.black,bb:r.bgBlack,bbr:r.blackBright,bbbr:r.bgBlackBright,r:r.red,br:r.bgRed,rbr:r.redBright,brbr:r.bgRedBright,g:r.green,bg:r.bgGreen,gbr:r.greenBright,bgbr:r.bgGreenBright,y:r.yellow,by:r.bgYellow,ybr:r.yellowBright,bybr:r.bgYellowBright,bl:r.blue,bbl:r.bgBlue,blbr:r.blueBright,bblbr:r.bgBlueBright,m:r.magenta,bm:r.bgMagenta,mbr:r.magentaBright,bmbr:r.bgMagentaBright,c:r.cyan,bc:r.bgCyan,cbr:r.cyanBright,bcbr:r.bgCyanBright,w:r.white,bw:r.bgWhite,wbr:r.whiteBright,bwbr:r.bgWhiteBright,gr:r.gray,black:r.black,bgBlack:r.bgBlack,blackBright:r.blackBright,bgBlackBright:r.bgBlackBright,red:r.red,bgRed:r.bgRed,redBright:r.redBright,bgRedBright:r.bgRedBright,green:r.green,bgGreen:r.bgGreen,greenBright:r.greenBright,bgGreenBright:r.bgGreenBright,yellow:r.yellow,bgYellow:r.bgYellow,yellowBright:r.yellowBright,bgYellowBright:r.bgYellowBright,blue:r.blue,bgBlue:r.bgBlue,blueBright:r.blueBright,bgBlueBright:r.bgBlueBright,magenta:r.magenta,bgMagenta:r.bgMagenta,magentaBright:r.magentaBright,bgMagentaBright:r.bgMagentaBright,cyan:r.cyan,bgCyan:r.bgCyan,cyanBright:r.cyanBright,bgCyanBright:r.bgCyanBright,white:r.white,bgWhite:r.bgWhite,whiteBright:r.whiteBright,bgWhiteBright:r.bgWhiteBright,gray:r.gray},c={d:r.dim,h:r.hidden,i:r.italic,u:r.underline,s:r.strikethrough,b:r.bold,r:r.reset,dim:r.dim,hidden:r.hidden,italic:r.italic,underline:r.underline,strikethrough:r.strikethrough,bold:r.bold,reset:r.reset},h=new RegExp(`%(?<color>(?:${Object.keys(f).sort((n,e)=>e.length-n.length).join("|")}))?(?:_(?<modifiers>(?:${Object.keys(c).sort((n,e)=>e.length-n.length).join("|")})(,(?:${Object.keys(c).sort((n,e)=>e.length-n.length).join("|")}))*))?`,"ig");function O(n){return new p(n)}var p=class{colorEnabled=!0;options;logger;get isColorEnabled(){return this.colorEnabled}constructor(e){this.options=e??{},this.colorEnabled=process.env.NO_COLOR&&process.env.NO_COLOR!==""?!1:r.isColorSupported?!(this.options.disableColors??!1):!1,this.options.levels||(this.options.log??={debug:()=>process.env.NODE_ENV==="debug"},this.options.log.debug??=()=>process.env.NODE_ENV==="debug"),this.options.levels??=Object.keys(this.DEFAULT_LEVELS),this.options.colors??=this.DEFAULT_COLORS,this.options.transports??=this.DEFAULT_TRANSPORTS,this.logger=(0,s.createLogger)({levels:this.options.levels.reduce((t,i,g)=>({...t,[i==="log"?"syslog":i]:g}),{}),transports:this.options.transports});let o=t=>typeof t=="function"?t():t;for(let t of this.options.levels)this[t]=(this.options.handlers?.[t]?(i,...g)=>{o(this.options.log?.[t]??!0)&&this.options.handlers?.[t](this.logger[t==="log"?"syslog":t],i,...g)}:void 0)??((i,...g)=>{o(this.options.log?.[t]??!0)&&(i=this.formatArgs(this.stringifyArg(i),g),this.logger[t==="log"?"syslog":t]({message:i,rawMessage:M(i)}))})}DEFAULT_LEVELS={error:0,warn:1,debug:2,log:3,info:4};DEFAULT_COLORS={error:r.red,warn:r.yellow,debug:r.magenta,log:r.blue,info:r.green};DEFAULT_FORMAT=s.format.combine(s.format.timestamp(),s.format.printf(({timestamp:e,level:o,message:t})=>`${this.color(r.gray,(0,A.default)(e).format("MM/DD/YYYY HH:mm:ss z"))} ${this.color(this.DEFAULT_COLORS[o==="syslog"?"log":o],this.resolveLevel(o))}: ${t}`));DEFAULT_FILEFORMAT=s.format.combine(s.format.timestamp(),s.format.printf(({timestamp:e,level:o,rawMessage:t})=>JSON.stringify({timestamp:e,level:o,message:t})));DEFAULT_TRANSPORTS=[new s.transports.Console({format:this.DEFAULT_FORMAT}),new s.transports.File({level:"error",format:this.DEFAULT_FILEFORMAT,filename:"logs/errors.log"})];table(e,o){console.log((0,d.table)(e,o))}createTableStream(e){return(0,d.createStream)(e)}progress(e,o){return new B.default(e,o)}color(e,o){return this.colorEnabled?e(o):o}resolveLevel(e){let o=Math.max(...this.options.levels.map(t=>`[${t==="syslog"?"log":t}]`.length));return`[${e==="syslog"?"log":e}]`.padEnd(o," ")}stringifyArg(e){if(e instanceof Error){let o=`${e.name}: ${e.message}`;return e.stack&&(o+=`
${e.stack.replace(`${e.toString()}
`,"")}`),e.cause&&(o+=`
Caused by: ${this.stringifyArg(e.cause)}`),o}return typeof e=="object"?JSON.stringify(e,null,4):Array.isArray(e)?e.map(o=>this.stringifyArg(o)).join(", "):e.toString()}formatArgs(e,o){let t=e.match(h);if(!t)return e;for(let i of t){h.lastIndex=0;let{color:g,modifiers:m}=h.exec(i)?.groups??{};if(!g&&!m)continue;let y=f[g],l=this.stringifyArg(o.shift());y&&(l=this.color(y,l)),m&&(l=m.split(",").map(a=>c[a]).filter((a,u,E)=>E.indexOf(a)===u).reduce((a,u)=>u(a),l)),e=e.replace(i,l)}return e}[Symbol.for("nodejs.util.inspect.custom")](){return`Logger <Color ${this.colorEnabled?"enabled":"disabled"}>`}};0&&(module.exports={Logger,argumentRegex,colorMap,modifiersMap});
if (module.exports.default) {
Object.assign(module.exports.default, module.exports);
module.exports = module.exports.default;
delete module.exports.default;
}
//# sourceMappingURL=index.js.map