plogger-sdk
Version:
Typescript based frontend logging library compatible with multiple transports and JS/TS frameworks
3 lines • 14.6 kB
JavaScript
/*! For license information please see plogger.min.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pLoggerSDK",[],t):"object"==typeof exports?exports.pLoggerSDK=t():e.pLoggerSDK=t()}(self,(()=>(()=>{"use strict";var e={"./src/Logger.ts":(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseLogger=void 0;var r=o("./src/logLevel.ts"),n=function(){function e(){this.logEnums={},this.formatter="[{{levelName}}] {{timestampLocalIso}} {{scope}} : {{rawMessage}}",this.level=r.logLevel.Debug}return e.prototype.setLevel=function(e){this.level=e},e.prototype.getLevel=function(){return this.level},e.prototype.setFormatter=function(e){this.formatter=e},e.prototype.formatLog=function(e){var t=e.getFormatPlaceholders();return(null!=e.formatter?e.formatter:this.formatter).replace(/{{(.+?)}}/g,(function(e,o){return null!=t[o]?t[o]:""}))},e}();t.BaseLogger=n},"./src/console/console-logger.ts":function(e,t,o){var r,n=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)});Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleLogger=void 0;var i=o("./src/Logger.ts"),l=o("./src/logLevel.ts"),s=function(e){function t(){var t=e.call(this)||this;return t.formatter="[{{levelName}}] {{timestampLocalIso}} {{filePathWithLine}} {{scope}} : {{rawMessage}}",t}return n(t,e),t.prototype.log=function(e){var t=this.formatLog(e);switch(e.level){case l.logLevel.Debug:console.debug(t);break;case l.logLevel.Critical:case l.logLevel.Error:console.error(t);break;case l.logLevel.Info:console.info(t);break;case l.logLevel.Warn:console.warn(t);break;case l.logLevel.Trace:console.trace(t);break;default:console.log(t)}},t}(i.BaseLogger);t.ConsoleLogger=s},"./src/helperMethods.ts":(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.jsonStringifyRecursive=void 0;var r=o("./src/logs/errorObj.ts");t.jsonStringifyRecursive=function(e){var t=new Set;return JSON.stringify(e,(function(e,o){return"object"==typeof o&&null!==o&&(t.has(o),t.add(o)),(0,r.isError)(o)?(0,r.stringifyErrorObject)(o):o}))}},"./src/http/http-logger.ts":function(e,t,o){var r,n=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)});Object.defineProperty(t,"__esModule",{value:!0}),t.HttpLogger=void 0;var i=o("./src/Logger.ts"),l=o("./src/helperMethods.ts"),s=o("./src/logLevel.ts"),a=function(e){function t(t){var o=t.serverUrl,r=void 0===o?"api/url":o,n=t.batchOptions,i=void 0===n?null:n,l=t.retryOptions,a=void 0===l?{maxRetries:3,retryDelay:1e3}:l,c=t.highPriority,u=void 0===c?s.logLevel.Critical:c,h=t.setCredentials,f=void 0!==h&&h,g=t.showFormattedLog,p=void 0!==g&&g,v=e.call(this)||this;return v.timeoutRef=null,v.logBucket=[],v.serverUrl=r,v.batchOptions=i,v.retryOptions=a,v.highPriority=u,v.setCredentials=f,v.showFormattedLog=p,v.headers={},v}return n(t,e),t.prototype._buildLogObject=function(e){return{level:s.logLevels[e.level],timestamp:e.timestamp.toISOString(),log:e.log,scope:e.scope,metaData:e.metaData}},t.prototype.setPriorityLog=function(e){this.highPriority=e},t.prototype.setHeaders=function(e){this.headers=e},t.prototype.log=function(e){var t=this,o={logData:this._buildLogObject(e)};this.showFormattedLog&&(o.formattedLog=this.formatLog(e)),null!=this.batchOptions?(s.logLevels[this.highPriority].rank>=o.logData.level.rank?this.sendBatchRequest([o]):this.logBucket.push(o),this.logBucket.length>=this.batchOptions.batchSize&&this.sendBatchRequest(),null==this.timeoutRef&&(this.timeoutRef=setTimeout((function(){clearTimeout(t.timeoutRef),t.timeoutRef=null,t.logBucket.length>0&&t.sendBatchRequest()}),this.batchOptions.debounceTime))):this.sendBatchRequest([o])},t.prototype.sendBatchRequest=function(e){void 0===e&&(e=null);var t=e;null==e&&(t=this.logBucket,this.logBucket=[]);var o={logBuffer:t};this.sendRequest(this.serverUrl,o,this.retryOptions.maxRetries,this.retryOptions.retryDelay,this.setCredentials,this.headers)},t.prototype.sendRequest=function(e,t,o,r,n,i){for(var s=this,a=[408,500,502,503,504,522,404,400,405],c=new Headers({"Content-Type":"application/json"}),u=n?"include":"omit",h=0,f=Object.entries(i);h<f.length;h++){var g=f[h],p=g[0],v=g[1];c.append(p,v)}fetch(e,{method:"POST",credentials:u,headers:c,body:(0,l.jsonStringifyRecursive)(t)}).then((function(l){if(l.ok)return l.json();if(!(o>0&&a.includes(l.status)))throw new Error("Response error occured...".concat(l));setTimeout((function(){return s.sendRequest(e,t,o-1,2*r,n,i)}),r)}))},t}(i.BaseLogger);t.HttpLogger=a},"./src/logLevel.ts":(e,t)=>{var o,r;Object.defineProperty(t,"__esModule",{value:!0}),t.logLevels=t.logLevel=void 0,function(e){e.Critical="Critical",e.Error="Error",e.Warn="Warn",e.Info="Info",e.Trace="Trace",e.Debug="Debug"}(r||(t.logLevel=r={})),t.logLevels=((o={})[r.Critical]={rank:0,name:"CRITICAL"},o[r.Error]={rank:1,name:"ERROR"},o[r.Warn]={rank:2,name:"WARN"},o[r.Info]={rank:3,name:"INFO"},o[r.Trace]={rank:4,name:"TRACE"},o[r.Debug]={rank:5,name:"DEBUG"},o)},"./src/logs/errorObj.ts":(e,t)=>{function o(e){var t,o,n;return null===(n=null===(o=null===(t=null==e?void 0:e.stack)||void 0===t?void 0:t.split("\n"))||void 0===o?void 0:o.filter((function(e){return!e.includes("Error: ")})))||void 0===n?void 0:n.reduce((function(e,t){var o=r(t);return Object.values(o).every((function(e){return void 0===e}))||e.push(o),e}),[])}function r(e){var t=[/^\s?((?:at)\s)?(?:(?<method>[\w.]*)(?:\s|@))?\(?(?:file|https|http|webpack|[^@]+)?(?:file:)?:\/?\/?\w*:?\d*\/(?<fileName>[\w./-]+)\??(?::(?<lineNumber>\d+))?(?::(?<colNumber>\d+))?/,/(?:(?:file|https?|global code|[^@]+)@)?(?:file:)?(?<fileName>(?:\/[^:/]+){2,})(?::(?<lineNumber>\d+))?(?::(?<colNumber>\d+))?/],o=globalThis.location.origin,r={fullFilePath:void 0,fileName:void 0,fileNameWithLine:void 0,fileColumn:void 0,fileLine:void 0,filePath:void 0,filePathWithLine:void 0,method:void 0};if(null!=e)for(var n=0;n<t.length;n++){var i=t[n],l=e.trim().match(i);if(l){var s=l.groups;r.filePath=s.fileName.replace(/\?.*$/,""),r.fullFilePath="".concat(o).concat(r.filePath);var a=r.filePath.split("/");r.fileName=a[a.length-1],r.fileLine=s.lineNumber,r.fileColumn=s.colNumber,r.method=s.method,r.filePathWithLine="".concat(r.filePath,":").concat(r.fileLine),r.fileNameWithLine="".concat(r.fileName,":").concat(r.fileLine);break}}return r}Object.defineProperty(t,"__esModule",{value:!0}),t.getCallerStackFrame=t.toErrorObject=t.stringifyErrorObject=t.isError=void 0,t.isError=function(e){return e instanceof Error},t.stringifyErrorObject=function(e){return Object.getOwnPropertyNames(e).reduce((function(t,o){return t[o]=e[o],t}),{name:e.name})},t.toErrorObject=function(e){var t;return{nativeError:e,name:null!==(t=e.name)&&void 0!==t?t:"Error",message:e.message,stack:o(e)}},t.getCallerStackFrame=function(e,t){var o,n,i;void 0===t&&(t=Error());var l=((null===navigator||void 0===navigator?void 0:navigator.userAgent)||"").match(/.*Firefox.*/)?e-1:e;return r(null===(i=null===(n=null===(o=null==t?void 0:t.stack)||void 0===o?void 0:o.split("\n"))||void 0===n?void 0:n.filter((function(e){return!e.includes("Error: ")})))||void 0===i?void 0:i[l])}},"./src/logs/log-record.ts":function(e,t,o){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++)for(var n in t=arguments[o])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},r.apply(this,arguments)},n=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(o[r[n]]=e[r[n]])}return o};Object.defineProperty(t,"__esModule",{value:!0}),t.logRecord=void 0;var i=o("./src/logLevel.ts"),l=o("./src/helperMethods.ts"),s=o("./src/logs/errorObj.ts"),a=function(){function e(e,t,o,i,l,a,c){this.metaData=null,this.level=e,this.scope=t,this.timestampGenerator?this.timestamp=this.timestampGenerator():this.timestamp=new Date;var u=a,h=null;if((0,s.isError)(o)){var f=(0,s.toErrorObject)(o),g=(f.stack,n(f,["stack"]));this.metaData=f.stack,h=g}else h={message:o};this.log=r(r(r({},h),{staticParams:l}),u),this.rawMessage=o,this.formatter=i}return e.prototype.fetchCallStack=function(e){this.metaData=(0,s.getCallerStackFrame)(e)},e.prototype.generateFormatPlaceholders=function(){var e,t,o,r;this.formatPlaceholders={},this.formatPlaceholders.levelName=i.logLevels[this.level].name,this.formatPlaceholders.levelRank=i.logLevels[this.level].rank,this.formatPlaceholders.timestampEpoch=this.timestamp,this.formatPlaceholders.timestampISO=this.timestamp.toISOString(),this.formatPlaceholders.scope=this.scope,this.formatPlaceholders.message=(0,l.jsonStringifyRecursive)(this.log),this.formatPlaceholders.rawMessage=(0,l.jsonStringifyRecursive)(this.rawMessage),this.formatPlaceholders.timestampLocalIso=new Date(this.timestamp.getTime()-6e4*this.timestamp.getTimezoneOffset()).toISOString();var n=null;n=Array.isArray(this.metaData)?this.metaData[0]:this.metaData,this.formatPlaceholders.fileNameWithLine=null!==(e=null==n?void 0:n.fileNameWithLine)&&void 0!==e?e:"",this.formatPlaceholders.filePathWithLine=null!==(t=null==n?void 0:n.filePathWithLine)&&void 0!==t?t:"",this.formatPlaceholders.fullFilePath=null!==(o=null==n?void 0:n.fullFilePath)&&void 0!==o?o:"",this.formatPlaceholders.method=null!==(r=null==n?void 0:n.method)&&void 0!==r?r:""},e.prototype.getFormatPlaceholders=function(){return void 0===this.formatPlaceholders&&this.generateFormatPlaceholders(),this.formatPlaceholders},e}();t.logRecord=a},"./src/p-logger/p-logger.ts":function(e,t,o){var r,n=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++)for(var n in t=arguments[o])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},i.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.logLevel=t.pLogger=void 0;var l=o("./src/Logger.ts"),s=o("./src/logLevel.ts");Object.defineProperty(t,"logLevel",{enumerable:!0,get:function(){return s.logLevel}});var a=o("./src/logs/log-record.ts"),c=function(e){function t(t){var o=t.name,r=void 0===o?"Root":o,n=t.minLevel,i=void 0===n?null:n,l=t.formatter,s=void 0===l?null:l,a=t.staticParams,c=void 0===a?{}:a,u=t.hideLogPositionForPerformance,h=void 0===u||u,f=t.stackDepth,g=void 0===f?0:f,p=e.call(this)||this;return p.handlers=[],p.level=i,p.formatter=s,p.name=r,p.hideLogPositionForPerformance=h,p.stackDepth=g,p.staticParams=c,p.logEnums={},p.enumMessages={},p.timestampGenerator=null,p}return n(t,e),t.prototype.addHandler=function(e){-1==this.handlers.indexOf(e,0)&&this.handlers.push(e)},t.prototype.removeHandler=function(e){var t=this.handlers.indexOf(e,0);t>-1&&this.handlers.splice(t,1)},t.prototype.checkHandlers=function(){console.trace("pLoggerSDK Handlers: ",this.handlers)},t.prototype.setTimestampGenerator=function(e){this.timestampGenerator=e},t.prototype.verify_log_level=function(e,t){return!(null!=e&&s.logLevels[t].rank>s.logLevels[e].rank)},t.prototype.setLogEnums=function(e){this.logEnums=e},t.prototype.setEnumMessages=function(e){this.enumMessages=e},t.prototype.updateParams=function(e){this.staticParams=e},t.prototype.appendParams=function(e){var t=i(i({},this.staticParams),e);this.staticParams=t},t.prototype.log=function(e){},t.prototype._log=function(e,t,o){var r=this;void 0===o&&(o=null);var n,l,c=this.enumMessages[e];n=c?i({},c):null,l=null!=o?i(i({},this.staticParams),o):this.staticParams;var u=new a.logRecord(t,this.name,e,this.formatter,l,n,this.timestampGenerator);(!this.hideLogPositionForPerformance&&this.stackDepth>0||s.logLevels[t].rank<=s.logLevels[s.logLevel.Error].rank)&&u.fetchCallStack(this.stackDepth),this.verify_log_level(this.level,t)&&this.handlers.forEach((function(e){r.verify_log_level(e.getLevel(),t)&&e.log(u)}))},t.prototype.critical=function(e,t){void 0===t&&(t=null),this._log(e,s.logLevel.Critical,t)},t.prototype.error=function(e,t){void 0===t&&(t=null),this._log(e,s.logLevel.Error,t)},t.prototype.info=function(e,t){void 0===t&&(t=null),this._log(e,s.logLevel.Info,t)},t.prototype.debug=function(e,t){void 0===t&&(t=null),this._log(e,s.logLevel.Debug,t)},t.prototype.warn=function(e,t){void 0===t&&(t=null),this._log(e,s.logLevel.Warn,t)},t.prototype.trace=function(e,t){void 0===t&&(t=null),this._log(e,s.logLevel.Trace,t)},t}(l.BaseLogger);t.pLogger=c}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,o),i.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.pLogger=e.logLevel=e.HttpLogger=e.ConsoleLogger=void 0;var t=o("./src/console/console-logger.ts");Object.defineProperty(e,"ConsoleLogger",{enumerable:!0,get:function(){return t.ConsoleLogger}});var n=o("./src/http/http-logger.ts");Object.defineProperty(e,"HttpLogger",{enumerable:!0,get:function(){return n.HttpLogger}});var i=o("./src/logLevel.ts");Object.defineProperty(e,"logLevel",{enumerable:!0,get:function(){return i.logLevel}});var l=o("./src/p-logger/p-logger.ts");Object.defineProperty(e,"pLogger",{enumerable:!0,get:function(){return l.pLogger}})})(),r})()));
//# sourceMappingURL=plogger.min.js.map