UNPKG

@interopio/gateway

Version:

[![npm version](https://img.shields.io/npm/v/@interopio/gateway.svg)](https://www.npmjs.com/package/@interopio/gateway)

3 lines (2 loc) 6.93 kB
var G=Object.defineProperty;var y=(e,r)=>()=>(e&&(r=e(e=0)),r);var E=(e,r)=>{for(var t in r)G(e,t,{get:r[t],enumerable:!0})};var N={};E(N,{ROOT_LOGGER_NAME:()=>p,configure:()=>_,getLogger:()=>d,logEvent:()=>R});function R(e){let{name:r,level:t}=e;I(r),A(t,r)&&w(e)}function x(e,r,t,...o){this.enabledFor(r)&&w({time:new Date,level:r,name:e,message:t,data:o})}function A(e,r){let t=u[e];return g[r]>=t}function K(e){I(e);let r=function(o,n,...i){x.call(r,e,o,n,...i)};function t(o){return isNaN(Number(o))}for(let o of Object.keys(u).filter(t))r[o]=function(n,...i){x.call(r,e,o,n,...i)};return r.enabledFor=function(o){return A(o,e)},r.child=function(o){return d(`${e}.${o}`)},r}function I(e){if(!e.startsWith(p))throw new Error(`Logger name must start with ${p}`);if(!g[e]){let r=Object.entries(g).sort(([o],[n])=>n.localeCompare(o)),[,t]=r.find(([o])=>e.startsWith(o));g[e]=t}}function d(e){let r=T[e];return r===void 0&&(r=K(e),T[e]=r),r}function _(e){function r(o,n){for(let i of Object.keys(g).filter(f=>f.startsWith(o)))g[i]=u[n];g[o]===void 0&&(g[o]=u[n])}let t=e.level;if(typeof t=="string")g[p]=u[t],r(p,t);else if(typeof t=="object"){let o=Object.entries(t).sort(([n],[i])=>n.localeCompare(i));for(let[n,i]of o)r(n,i)}w=e.appender??w}var u,T,g,p,w,k=y(()=>{"use strict";u=(s=>(s[s.off=0]="off",s[s.error=200]="error",s[s.warn=300]="warn",s[s.info=400]="info",s[s.debug=500]="debug",s[s.trace=600]="trace",s[s.all=Number.MAX_SAFE_INTEGER]="all",s))(u||{}),T=Object.create(null),g={},p="gateway";g[p]=600;w=e=>{console[e.level](`${e.time.toISOString()} ${e.level.toUpperCase()} [${e.name}] - ${e.message}`,...e.data)}});function O(e){let{name:r}=e;if(b.has(r))throw new Error(`The error constructor "${r}" is already known.`);try{new e}catch(t){throw new Error(`The error constructor "${r}" is not compatible`,{cause:t})}b.set(r,e)}var J,b,L=y(()=>{J=[Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(Boolean).map(e=>[e.name,e]),b=new Map(J)});var W={};E(W,{NonError:()=>h,addKnownErrorConstructor:()=>O,deserializeError:()=>z,isErrorLike:()=>v,serializeError:()=>B});function B(e,r={}){let{maxDepth:t=Number.POSITIVE_INFINITY,useToJSON:o=!0}=r;return typeof e=="object"&&e!==null?C({from:e,seen:[],forceEnumerable:!0,maxDepth:t,depth:0,useToJSON:o,serialize:!0}):typeof e=="function"?`[Function: ${e.name||"anonymous"}]`:e}function z(e,r={}){let{maxDepth:t=Number.POSITIVE_INFINITY}=r;return e instanceof Error?e:D(e)?C({from:e,seen:[],to:S(e.name),maxDepth:t,depth:0,serialize:!1}):new h(e)}function v(e){return!!e&&typeof e=="object"&&typeof e.name=="string"&&typeof e.message=="string"&&typeof e.stack=="string"}function D(e){return!!e&&typeof e=="object"&&typeof e.message=="string"&&!Array.isArray(e)}var h,F,P,U,S,C,j=y(()=>{L();L();h=class e extends Error{name="NonError";constructor(r){super(e._prepareSuperMessage(r))}static _prepareSuperMessage(r){try{return JSON.stringify(r)}catch{return String(r)}}},F=[{property:"name",enumerable:!1},{property:"message",enumerable:!1},{property:"stack",enumerable:!1},{property:"code",enumerable:!0},{property:"cause",enumerable:!1},{property:"errors",enumerable:!1}],P=new WeakSet,U=e=>{P.add(e);let r=e.toJSON();return P.delete(e),r},S=e=>{let r=b.get(e)??Error;return r===AggregateError?new r([]):new r},C=({from:e,seen:r,to:t,forceEnumerable:o,maxDepth:n,depth:i,useToJSON:f,serialize:s})=>{if(t||(Array.isArray(e)?t=[]:!s&&v(e)?t=S(e.name):t={}),r.push(e),i>=n)return t;if(f&&typeof e.toJSON=="function"&&!P.has(e))return U(e);let m=a=>C({from:a,seen:[...r],forceEnumerable:o,maxDepth:n,depth:i,useToJSON:f,serialize:s});for(let[a,l]of Object.entries(e)){if(l&&l instanceof Uint8Array&&l.constructor.name==="Buffer"){t[a]="[object Buffer]";continue}if(l!==null&&typeof l=="object"&&typeof l.pipe=="function"){t[a]="[object Stream]";continue}if(typeof l!="function"){if(!l||typeof l!="object"){try{t[a]=l}catch{}continue}if(!r.includes(e[a])){i++,t[a]=m(e[a]);continue}t[a]="[Circular]"}}if(s||t instanceof Error)for(let{property:a,enumerable:l}of F)e[a]!==void 0&&e[a]!==null&&Object.defineProperty(t,a,{value:v(e[a])||Array.isArray(e[a])?m(e[a]):e[a],enumerable:o?!0:l,configurable:!0,writable:!0});return t}});var M={};E(M,{default:()=>V});var c,V,$=y(()=>{"use strict";c={send:()=>{},on:()=>{},onmessage:null,onerror:null,exit:()=>{},findParameter(e){let r=new URLSearchParams(globalThis.location?.search).get(e);if(!r){let t=globalThis.process?.argv.filter(o=>o.startsWith("--")).map(o=>{let n=o.slice(2).split("=");return[n[0],n[1]]}).find(([o,n])=>o===e);t&&([,r]=t)}return r},async streamLogs(e="trace"){let r=t=>{c.send({log:{time:t.time.getTime(),level:t.level,name:t.name,message:t.message,data:t.data}})};(await Promise.resolve().then(()=>(k(),N))).configure({level:e,appender:r})},async importModule(e){return await import(e)}};if(typeof self<"u"&&typeof postMessage=="function"&&typeof addEventListener=="function")c.on=(e,r)=>{addEventListener(e,t=>{r(t)})},c.send=e=>{postMessage(e)},typeof close=="function"&&(c.exit=close);else if(typeof process<"u"){globalThis.self=c,c.on=process.on.bind(process);let e=process.send?.bind(process);e&&(c.send=r=>{e(JSON.stringify({type:"message",data:r}))}),c.on("disconnect",()=>{process.exit(1)}),process.on("uncaughtException",r=>{e&&e(JSON.stringify({type:"error",message:`Uncaught Error: ${r.message}`}))}),c.exit=process.exit.bind(process)}c.on("message",e=>{c.onmessage&&c.onmessage(e)});c.on("error",e=>{c.onerror&&c.onerror(e)});V=c});k();async function H(e,r){try{let t=await import(r);if(typeof t=="function")return await t();if(typeof t.default=="function")return await t.default()}catch(t){e.error("failed to load preload",t)}}async function q(e,r,t){e.debug(`loading publisher from ${r}`);let o=await import(r);return typeof o.default=="object"&&(o=o.default),await o.create(t,d(`gateway.metrics.publisher.${o.name??r}`))}async function Y(e){let r=e.findParameter("logLevel");if(r?.startsWith('"'))try{r=JSON.parse(r)}catch{r=null}await e.streamLogs(r??"info")}async function X(e,r){let{publishFn:t,cfg:o}=r;if(o?.preload){let f=await H(e,o.preload);if(typeof f=="object")for(let s in f)o[s]=f[s]}let n;typeof t=="function"?n=t:n=await q(e,t,o);let i=await n("start");return[n,i]}async function Q(e,r,t){let o=await r("stop");typeof o=="function"&&await o(t)}function Z(e){let r,t;e.onmessage=async o=>{let n=d("gateway.metrics.worker"),{id:i,cmd:f,arg:s}=o.data;try{switch(f){case"start":{[r,t]=await X(n,s);break}case"stop":{await Q(n,r,t);break}case"update":{await r(s);break}}e.send({id:i,result:"ok"})}catch(m){let{serializeError:a}=await Promise.resolve().then(()=>(j(),W)),l=a(m);e.send({id:i,error:l})}}}Promise.resolve().then(()=>($(),M)).then(e=>e.default).then(async e=>{await Y(e),Z(e),e.send({ready:!0})}).catch(e=>console.error(e)); //# sourceMappingURL=worker.js.map