hud-sdk
Version:
Hud's Node SDK
2 lines • 6.65 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(global,(()=>(()=>{"use strict";var e={857:e=>{e.exports=require("os")},1019:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(o(5809));n(o(5809),t),t.default=i.default},1620:e=>{e.exports=require("winston-transport")},5124:e=>{e.exports=require("winston")},5809:e=>{e.exports=require("./config")},6768:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&r(t,e,o);return n(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.worker_logger=t.instrument_logger=t.app_logger=t.customer_logger=t.formatLogMessage=t.SafeLogger=t.renewFileTransports=t.getSavedLogs=t.getLogPath=t.WorkerPortTransport=void 0;const a=s(o(857)),l=s(o(6928)),f=s(o(5124)),u=s(o(9896)),c=s(o(6982)),g=o(1019),d=i(o(1620)),p={...process.env.HUD_DEBUG?g.hudConfig.logger.debug:g.hudConfig.logger.default,console:!!process.env.HUD_VERBOSE};class m extends d.default{_messeagesToSend=[];messagesLimit=g.hudConfig.loggerWorkerPortSizeLimit;messageDropCount=0;getMessagesToSend(){if(!this._messeagesToSend.length)return!1;const e=this._messeagesToSend;this.clearMessagesToSend();const t=this.messageDropCount;return this.messageDropCount=0,{logsBuf:this.formatMessagesToSend(e),messageDropCount:t}}clearMessagesToSend(){this._messeagesToSend=[]}formatMessagesToSend(e){return e.map((e=>JSON.stringify(e))).join("\n")}log(e,t){this._messeagesToSend.length>=this.messagesLimit?this.messageDropCount++:this._messeagesToSend.push(e),t()}}t.WorkerPortTransport=m;const h=f.format.combine(f.format.timestamp({format:"HH:mm:ss.SSS"}),f.format.printf((({level:e,message:t,timestamp:o,label:r,...n})=>{try{const s=Object.keys(n).length;let i;if(s)if(1===s){const e=Object.keys(n)[0];i=`${t} ${e}: ${JSON.stringify(n[e],null,2)}`}else i=`${t}\n${JSON.stringify(n,null,2)}`;else i=t;const a=f.format.colorize().colorize(e,e.toUpperCase());return`[${o}]${(r?`(${r})`:"").padEnd(8," ")} ${a}: ${i}`}catch(e){return t}})));function _(e){return f.format.combine(f.format.label({label:e}),f.format.timestamp({format:()=>(new Date).toISOString()}),f.format.json())}function b(e){return{filename:S(),level:p.levels[e],format:_(e),lazy:!1}}function v(){if(g.hudConfig.logDirectory)return g.hudConfig.logDirectory;const e=a.homedir();switch(a.platform()){case"darwin":return l.join(e,"Library","Logs","hud");case"win32":return l.join(e,"AppData","hud","Logs");default:return l.join(e,".hud","logs")}}let y;function S(){return y??=l.join(v(),`${c.randomUUID()}.log`)}t.getLogPath=S,t.getSavedLogs=function(){const e=[];for(const[t,o]of Object.entries(w))for(const t of o.transports)try{if(t instanceof m){const r=t.getMessagesToSend();if(!r)continue;const{logsBuf:n,messageDropCount:s}=r;s&&o.info(`Dropped ${s} messages`),e.push(n)}}catch(e){o.error("Failed to get saved logs",e)}return e},t.renewFileTransports=function(){const e=new Date,t=new Set;for(const[o,r]of Object.entries(w)){const o=[],n=[];for(const s of r.transports)if(s instanceof f.transports.File){o.push(s),n.push(new f.transports.File({level:s.level,format:s.format,filename:l.join(s.dirname,s.filename),lazy:!1}));const r=l.join(v(),`${c.randomUUID()}-${e.toISOString().replaceAll(":","")}.log`);u.existsSync(l.join(s.dirname,s.filename))&&(u.renameSync(l.join(s.dirname,s.filename),r),t.add(r))}for(const e of o)r.remove(e),e.close&&e.close();for(const e of n)r.add(e)}return t};const w={};class j{name;logger;constructor(e){this.name=e;try{this.logger=function(e){const t=[];p.console&&t.push(new f.transports.Console({format:f.format.combine(f.format.label({label:e}),h)}));let o=!1;if(!g.hudConfig.fileless)try{t.push(function(e){const t=b(e),o=l.dirname(t.filename);return u.mkdirSync(o,{recursive:!0}),u.writeFileSync(t.filename,"",{flag:"w"}),new f.transports.File(t)}(e))}catch{o=!0}(g.hudConfig.fileless||o)&&t.push(function(e){const t=_(e);return new m({format:t})}(e));const r=f.createLogger({level:p.levels[e],transports:t});return w[e]=r,o&&r.info("Could not create file transport, fallback succesfully to worker port"),g.hudConfig.fileless&&r.info("Fileless mode is enabled"),r}(e)}catch(e){this.logger=void 0}}isValid(){return!!this.logger}log(e,t,...o){if(this.logger)try{this.logger.log(e,t,...o)}catch{}}error(e,...t){this.log("error",e,...t)}warn(e,...t){this.log("warn",e,...t)}info(e,...t){this.log("info",e,...t)}http(e,...t){this.log("http",e,...t)}verbose(e,...t){this.log("verbose",e,...t)}debug(e,...t){this.log("debug",e,...t)}silly(e,...t){this.log("silly",e,...t)}}function O(e,t,o){let r=`Hud: ${e}`;return o&&(r+=" For more information visit https://docs.hud.io/docs/node-sdk-ie."),void 0!==t&&(r+=` ${t}`),r}t.SafeLogger=j,t.formatLogMessage=O,t.customer_logger=f.createLogger({level:g.hudConfig.customerLoggerLevel,transports:[new f.transports.Console({})],format:f.format.printf((({message:e,errCode:t,moreInfo:o})=>{try{return O(e,t,o)}catch(t){return e}}))}),t.app_logger=new j("app"),t.instrument_logger=new j("instrument"),t.worker_logger=new j("worker")},6928:e=>{e.exports=require("path")},6982:e=>{e.exports=require("crypto")},9896:e=>{e.exports=require("fs")}},t={};return function o(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,o),s.exports}(6768)})()));
//# sourceMappingURL=logger.js.map