app-tracker 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app-tracker.service.js +1 -1
- package/package.json +1 -1
package/app-tracker.service.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,s,o,t){return new(o||(o=Promise))((function(i,n){function r(e){try{g(t.next(e))}catch(e){n(e)}}function l(e){try{g(t.throw(e))}catch(e){n(e)}}function g(e){var s;e.done?i(e.value):(s=e.value,s instanceof o?s:new o((function(e){e(s)}))).then(r,l)}g((t=t.apply(e,s||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const log_1=require("./log"),cross_fetch_1=require("cross-fetch");class AppTrackerService{constructor(){this.sendLogsInDevelopment=!1,this.logInConsole=!1,this.endpointUrl="https://api-app-tracker.azurewebsites.net/",this.apiKey="",this.logs=[],this.sendTries=0,this.maxSendTries=5,this.isSending=!1,this.maxLogsCount=10,this.userAgent="",this.logLevel=[log_1.LogType.error],this.sendLogsByTypesImmediately=[log_1.LogType.error,log_1.LogType.critical],this.isNode=!1,this.isRunningLocal=!0,this.ident=""}init(e,s){var o,t,i;this.apiKey=e,s&&(s.endpointUrl&&(this.endpointUrl=s.endpointUrl),s.maxLogsCount&&(this.maxLogsCount=s.maxLogsCount),s.maxSendTries&&(this.maxSendTries=s.maxSendTries),s.sendLogsInDevelopment&&(this.sendLogsInDevelopment=s.sendLogsInDevelopment),s.logInConsole&&(this.logInConsole=s.logInConsole),s.logLevel&&(this.logLevel=s.logLevel),s.sendLogsByTypesImmediately&&(this.sendLogsByTypesImmediately=s.sendLogsByTypesImmediately)),this.isNode="[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),this.isNode?(this.os=null===(t=s)||void 0===t?void 0:t.userAgentOrOs,this.userAgent=this.setUserAgentFromOs()):(this.userAgent=null===(o=s)||void 0===o?void 0:o.userAgentOrOs,this.ident=this.getIdent()),this.isRunningLocal=this.isNode?(i=process.env.NODE_ENV,null!=i?i:"").indexOf("development")>-1:window.location.href.indexOf("localhost")>-1,""==e||this.isNode||this.isRunningLocal||window.addEventListener("beforeunload",(e=>{if(e.preventDefault(),e.returnValue="",!this.isSending){const e=this.logs;this.isSending=!0,this.logs=[],this.sendLogsToServerCore(e)}}))}getIdent(){var e;let s=null===(e=localStorage)||void 0===e?void 0:e.getItem("App-Tracker.device-ident");return s||(s=this.createUUID(),localStorage.setItem("App-Tracker.device-ident",s)),s}debug(e,...s){this.addLog(log_1.LogType.debug,e,...s)}info(e,...s){this.addLog(log_1.LogType.info,e,...s)}log(e,...s){this.addLog(log_1.LogType.log,e,...s)}warn(e,...s){this.addLog(log_1.LogType.warn,e,...s)}error(e,...s){this.addLog(log_1.LogType.error,e,...s)}critical(e,...s){this.addLog(log_1.LogType.critical,e,...s)}addLog(e,s,...o){this.checkLogType(e)?this.isRunningLocal&&!this.sendLogsInDevelopment?this.logToConsole(e,s,...o):this.sendLogsToServer(e,s,...o):this.logToConsole(e,s,...o)}logToConsole(e,s,...o){if(this.logInConsole)switch(e){case log_1.LogType.debug:console.debug(s,...o);break;case log_1.LogType.critical:case log_1.LogType.error:console.error(s,...o);break;case log_1.LogType.info:console.info(s,...o);break;case log_1.LogType.log:console.log(s,...o);break;case log_1.LogType.warn:console.warn(s,...o);break;default:console.warn("Unkown LogType: ",e)}}sendLogsToServer(e,s,...o){var t;const i={logType:e,message:s,optionalParams:[],createdAt:new Date,ident:this.ident};if(o.forEach((e=>
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,s,o,t){return new(o||(o=Promise))((function(i,n){function r(e){try{g(t.next(e))}catch(e){n(e)}}function l(e){try{g(t.throw(e))}catch(e){n(e)}}function g(e){var s;e.done?i(e.value):(s=e.value,s instanceof o?s:new o((function(e){e(s)}))).then(r,l)}g((t=t.apply(e,s||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const log_1=require("./log"),cross_fetch_1=require("cross-fetch");class AppTrackerService{constructor(){this.sendLogsInDevelopment=!1,this.logInConsole=!1,this.endpointUrl="https://api-app-tracker.azurewebsites.net/",this.apiKey="",this.logs=[],this.sendTries=0,this.maxSendTries=5,this.isSending=!1,this.maxLogsCount=10,this.userAgent="",this.logLevel=[log_1.LogType.error],this.sendLogsByTypesImmediately=[log_1.LogType.error,log_1.LogType.critical],this.isNode=!1,this.isRunningLocal=!0,this.ident=""}init(e,s){var o,t,i;this.apiKey=e,s&&(s.endpointUrl&&(this.endpointUrl=s.endpointUrl),s.maxLogsCount&&(this.maxLogsCount=s.maxLogsCount),s.maxSendTries&&(this.maxSendTries=s.maxSendTries),s.sendLogsInDevelopment&&(this.sendLogsInDevelopment=s.sendLogsInDevelopment),s.logInConsole&&(this.logInConsole=s.logInConsole),s.logLevel&&(this.logLevel=s.logLevel),s.sendLogsByTypesImmediately&&(this.sendLogsByTypesImmediately=s.sendLogsByTypesImmediately)),this.isNode="[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),this.isNode?(this.os=null===(t=s)||void 0===t?void 0:t.userAgentOrOs,this.userAgent=this.setUserAgentFromOs()):(this.userAgent=null===(o=s)||void 0===o?void 0:o.userAgentOrOs,this.ident=this.getIdent()),this.isRunningLocal=this.isNode?(i=process.env.NODE_ENV,null!=i?i:"").indexOf("development")>-1:window.location.href.indexOf("localhost")>-1,""==e||this.isNode||this.isRunningLocal||window.addEventListener("beforeunload",(e=>{if(e.preventDefault(),e.returnValue="",!this.isSending){const e=this.logs;this.isSending=!0,this.logs=[],this.sendLogsToServerCore(e)}}))}getIdent(){var e;let s=null===(e=localStorage)||void 0===e?void 0:e.getItem("App-Tracker.device-ident");return s||(s=this.createUUID(),localStorage.setItem("App-Tracker.device-ident",s)),s}debug(e,...s){this.addLog(log_1.LogType.debug,e,...s)}info(e,...s){this.addLog(log_1.LogType.info,e,...s)}log(e,...s){this.addLog(log_1.LogType.log,e,...s)}warn(e,...s){this.addLog(log_1.LogType.warn,e,...s)}error(e,...s){this.addLog(log_1.LogType.error,e,...s)}critical(e,...s){this.addLog(log_1.LogType.critical,e,...s)}addLog(e,s,...o){this.checkLogType(e)?this.isRunningLocal&&!this.sendLogsInDevelopment?this.logToConsole(e,s,...o):this.sendLogsToServer(e,s,...o):this.logToConsole(e,s,...o)}logToConsole(e,s,...o){if(this.logInConsole)switch(e){case log_1.LogType.debug:console.debug(s,...o);break;case log_1.LogType.critical:case log_1.LogType.error:console.error(s,...o);break;case log_1.LogType.info:console.info(s,...o);break;case log_1.LogType.log:console.log(s,...o);break;case log_1.LogType.warn:console.warn(s,...o);break;default:console.warn("Unkown LogType: ",e)}}sendLogsToServer(e,s,...o){var t;const i={logType:e,message:s,optionalParams:[],createdAt:new Date,ident:this.ident};if(o.forEach((e=>i.optionalParams.push(e))),this.logs.push(i),this.logs.length>=this.maxLogsCount&&!this.isSending||null!=((null===(t=this.sendLogsByTypesImmediately)||void 0===t?void 0:t.find((s=>s==e)))||e==log_1.LogType.critical)&&!this.isSending){const e=this.logs;this.logs=[],this.isSending=!0,this.sendLogsToServerCore(e)}}checkLogType(e){return null!=this.logLevel.find((s=>s===e))||e===log_1.LogType.critical}sendLogsToServerCore(e){return __awaiter(this,void 0,void 0,(function*(){if(this.sendTries<this.maxSendTries)try{const s=this.endpointUrl.charAt(this.endpointUrl.length-1);yield cross_fetch_1.default(`${this.endpointUrl}${"/"===s?"logs/createLog":"/logs/createLog"}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","X-Auth-Key":this.apiKey},body:JSON.stringify({logs:e,userAgent:this.userAgent},((e,s)=>{if(s instanceof Error){let e={};return Object.getOwnPropertyNames(s).forEach((function(o){e[o]=s[o]})),e}return s}))});e=[],this.isSending=!1}catch(s){console.error(`AppLogger: Could not send Logs to Server try ${this.sendTries}`,s),this.sendTries++,setTimeout((()=>{this.sendLogsToServerCore(e)}),1e4)}else this.sendTries=0,this.isSending=!1,console.error("AppLogger: Could not send Logs to Server finally")}))}setUserAgentFromOs(){const e={arch:this.os.arch(),cpus:this.os.cpus(),endianness:this.os.endianness(),freemem:this.os.freemem(),homedir:this.os.homedir(),hostname:this.os.hostname(),loadavg:this.os.loadavg(),networkInterfaces:this.os.networkInterfaces(),platform:this.os.platform(),release:this.os.release(),tmpdir:this.os.tmpdir(),totalmem:this.os.totalmem(),type:this.os.type(),uptime:this.os.uptime(),userInfo:this.os.userInfo(),version:this.os.version()};return JSON.stringify(e)}createUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var s=16*Math.random()|0;return("x"==e?s:3&s|8).toString(16)}))}}exports.AppTrackerService=AppTrackerService;
|