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