/
oh-my-console.min.js
1 lines (1 loc) · 2.95 KB
/
oh-my-console.min.js
1
"use strict";(function(){function getEnv(){var ret={DEBUG:"",ENV:""};if(typeof process!=="undefined"){ret.DEBUG=process.env.DEBUG;ret.ENV="shell"}else if(typeof window!=="undefined"){ret.DEBUG=window.DEBUG;ret.ENV="browser"}return ret}var browserColors={reset:"color: black",gray:"color: gray",green:"color: green",red:"color: red",cyan:"color: cyan",yellow:"color: #8a8a14"};var ansiColors={reset:"[0m",gray:"[37m",green:"[32m",red:"[31m",cyan:"[36m",yellow:"[33m"};function Logger(id){if(!isString(id)){throw new Error("invalid logger id: "+id)}var debugEnabled=match(getEnv().DEBUG,id);return{debug:debugEnabled?createInstance("debug","red",id,"log"):function(x){return false},log:createInstance("log","reset",id),warn:createInstance("warn","yellow",id),error:createInstance("error","red",id),info:createInstance("info","cyan",id)}}function isString(obj){return typeof obj==="string"||obj instanceof String}function match(root,path){if(!root)return false;root=String(root).split(":").filter(function(x){return x.length});path=(path||"").split(":").filter(function(x){return x.length});for(var i=0;i<root.length;i++){if(path[i]!=root[i])return false}return true}function createInstance(level,color,id,origin){origin=origin||level;var output=console[origin].bind(console);if(getEnv().ENV==="browser"){return function(){var str=format.apply(null,arguments);output("%c["+timestamp()+"]%c["+id+"]%c["+level+"] "+str,browserColors.gray,browserColors.green,browserColors[color]);return"["+timestamp()+"]["+id+"]["+level+"] "+str}}else if(getEnv().ENV==="shell"){return function(){var str=format.apply(null,arguments);output("%s["+timestamp()+"]%s["+id+"]%s["+level+"] "+str+"%s",ansiColors.gray,ansiColors.green,ansiColors[color],ansiColors.reset);return"["+timestamp()+"]["+id+"]["+level+"] "+str}}else{return function(){var str=format.apply(null,arguments);output("["+timestamp()+"]["+id+"]["+level+"] "+str);return"["+timestamp()+"]["+id+"]["+level+"] "+str}}}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date;var date=[pad(d.getFullYear()),pad(d.getMonth()+1),pad(d.getDate())].join("/");var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return date+"-"+time}var formatRegExp=/%[sdjJ%]/g;function format(f){var i=0;var args=arguments;var len=args.length;var str="";if(isString(f)){i++;str+=String(f).replace(formatRegExp,function(x){if(i>=len)return x;switch(x){case"%%":return"%";case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}break;case"%J":try{return"\n"+JSON.stringify(args[i++],null,4)+"\n"}catch(_){return"\n[Circular]\n"}break;default:return x}})}for(var x=args[i];i<len;x=args[++i]){str+=" "+x}return str}if(typeof module!=="undefined"&&typeof module.exports!=="undefined"){module.exports=Logger}else if(typeof define==="function"&&define.amd){define("OhMyConsole",[],function(){return Logger})}else{window.OhMyConsole=Logger}})();