@mqueue/rhea
Version:
MQueue adapter for rhea AMQP v1.0
2 lines • 1.78 kB
JavaScript
import {Connection}from'rhea-promise';var t=class{constructor(o){this.connection=o;}type="rhea";receiver;static async connect(o,{source:e}){let n=new Connection({reconnect:true,port:5672,...o,receiver_options:{source:e}});return await n.open(),new this(n)}async healthcheck(){if(!this.receiver?.isOpen())throw new Error("AMQPv1.0 Receiver unexpectedly disconnected")}async close(){await this.receiver?.close(),await this.receiver?.connection.close();}async consume(o){this.receiver=await this.connection.createReceiver({autoaccept:false,credit_window:500,onMessage:e=>{let n=e.message;if(n===void 0)return;let i=e.delivery;if(i===void 0)return;let a=Buffer.from(n.body);o({accept:async()=>{i.accept();},reject:async()=>{i.reject();},transport:{name:e.receiver?.source?.address??""},message:{isRedelivered:(n.delivery_count??0)>0,headers:n.application_properties??{},body:a}});},onSessionError:e=>{let n=e.session&&e.session.error;n&&console.error(n);},onError:e=>{console.error(e);}}),console.info("Starting Queue Consumption...");}};var r=class{constructor(o){this.sender=o;}type="rhea";static async connect(o,{target:e}){let n=new Connection({reconnect:true,port:5672,...o});await n.open();let i=await n.createSender({target:e});return new this(i)}async healthcheck(){if(!this.sender.isOpen())throw new Error("AMQPv1.0 Sender unexpectedly disconnected")}async close(){await this.sender.close(),await this.sender.connection.close();}async sendMessage(o){let e=this.sender.send({body:o.body,application_properties:o.headers});console.info("[Queue-Message] Delivery ID:"+e.id);}};var c=class{constructor(){}static Outgoing=r;static Incoming=t};export{t as RheaIncomingQueue,r as RheaOutgoingQueue,c as RheaQueue};//# sourceMappingURL=index.js.map
//# sourceMappingURL=index.js.map