hud-sdk
Version:
Hud's Node SDK
2 lines • 6.26 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")},1620:e=>{e.exports=require("winston-transport")},4275:function(e,t,o){var r,n=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]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(r=function(e){return r=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},r(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=r(e),i=0;i<o.length;i++)"default"!==o[i]&&n(t,e,o[i]);return s(t,e),t}),a=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.SafeLogger=t.WorkerPortTransport=void 0,t.getLogPath=w,t.getSavedLogs=function(){const e=[];for(const[t,o]of Object.entries(j))for(const t of o.transports)try{if(t instanceof h){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(j)){const o=[],n=[];for(const s of r.transports)if(s instanceof m.transports.File){o.push(s),n.push(new m.transports.File({level:s.level,format:s.format,filename:g.join(s.dirname,s.filename),lazy:!1}));const r=g.join(S(),`${f.randomUUID()}-${e.toISOString().replaceAll(":","")}.log`);u.existsSync(g.join(s.dirname,s.filename))&&(u.renameSync(g.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},t.formatLogMessage=O;const l=o(5809),f=i(o(6982)),u=i(o(9896)),c=i(o(857)),g=i(o(6928)),m=i(o(5124)),d=a(o(1620)),p={...process.env.HUD_DEBUG?l.hudConfig.logger.debug:l.hudConfig.logger.default,console:!!process.env.HUD_VERBOSE};class h extends d.default{_messeagesToSend=[];messagesLimit=l.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=h;const v=m.format.combine(m.format.timestamp({format:"HH:mm:ss.SSS"}),m.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=m.format.colorize().colorize(e,e.toUpperCase());return`[${o}]${(r?`(${r})`:"").padEnd(8," ")} ${a}: ${i}`}catch{return t}}));function b(e){return"customer"===e?m.format.printf(({message:e,errCode:t,moreInfo:o})=>{try{return O(e,t,o)}catch{return e}}):m.format.combine(m.format.label({label:e}),m.format.timestamp({format:()=>(new Date).toISOString()}),m.format.json())}function y(e){return"customer"===e?l.hudConfig.customerLoggerLevel:p.levels[e]}function S(){if(l.hudConfig.logDirectory)return l.hudConfig.logDirectory;const e=c.homedir();switch(c.platform()){case"darwin":return g.join(e,"Library","Logs","hud");case"win32":return g.join(e,"AppData","hud","Logs");default:return g.join(e,".hud","logs")}}let _;function w(){return _??=g.join(S(),`${f.randomUUID()}.log`)}const j={};class L{name;logger;constructor(e){this.name=e;try{this.logger=function(e){const t="customer"===e,o=[];(p.console||t)&&o.push(function(e){return"customer"===e?new m.transports.Console({format:b(e)}):new m.transports.Console({format:m.format.combine(m.format.label({label:e}),v)})}(e));let r=!1;if(!l.hudConfig.fileless)try{o.push(function(e){const t=function(e){return{filename:w(),level:y(e),format:b(e),lazy:!1}}(e),o=g.dirname(t.filename);return u.mkdirSync(o,{recursive:!0}),u.writeFileSync(t.filename,"",{flag:"w"}),new m.transports.File(t)}(e))}catch{r=!0}(l.hudConfig.fileless||r)&&o.push(function(e){const t=b(e);return new h({format:t})}(e));const n=m.createLogger({level:y(e),transports:o});return j[e]=n,r&&!t&&n.info("Could not create file transport, fallback succesfully to worker port"),l.hudConfig.fileless&&!t&&n.info("Fileless mode is enabled"),n}(e)}catch{this.logger=void 0}}isValid(){return!!this.logger}log(e){if(this.logger)try{this.logger.log(e)}catch{}}logLevel(e,t,...o){if(this.logger)try{this.logger.log(e,t,...o)}catch{}}error(e,...t){this.logLevel("error",e,...t)}warn(e,...t){this.logLevel("warn",e,...t)}info(e,...t){this.logLevel("info",e,...t)}http(e,...t){this.logLevel("http",e,...t)}verbose(e,...t){this.logLevel("verbose",e,...t)}debug(e,...t){this.logLevel("debug",e,...t)}silly(e,...t){this.logLevel("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=L,t.customer_logger=new L("customer"),t.app_logger=new L("app"),t.instrument_logger=new L("instrument"),t.worker_logger=new L("worker")},5124:e=>{e.exports=require("winston")},5809:e=>{e.exports=require("./config")},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}(4275)})());
//# sourceMappingURL=logger.js.map