@lyxa.ai/core 1.0.127 → 1.0.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { BaseEvent } from './BaseEvent';
|
|
2
|
-
export declare function initEventBus(rabbitMqUrl
|
|
2
|
+
export declare function initEventBus(rabbitMqUrl?: string): Promise<void>;
|
|
3
3
|
export declare function publishEvent<TPayload extends Record<string, unknown>>(event: BaseEvent<TPayload>): Promise<void>;
|
|
4
4
|
export declare function subscribeToEvent(eventId: string, onMessage: (payload: any) => Promise<void>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":";;;;;AAQA,oCAQC;AAED,oCAYC;AAED,4CAmCC;AAnED,sDAA2B;AAG3B,IAAI,UAA6B,CAAC;AAClC,IAAI,OAAqB,CAAC;AAE1B,MAAM,aAAa,GAAG,aAAa,CAAC;AAE7B,KAAK,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":";;;;;AAQA,oCAQC;AAED,oCAYC;AAED,4CAmCC;AAnED,sDAA2B;AAG3B,IAAI,UAA6B,CAAC;AAClC,IAAI,OAAqB,CAAC;AAE1B,MAAM,aAAa,GAAG,aAAa,CAAC;AAE7B,KAAK,UAAU,YAAY,CAAC,WAAoB;IACtD,MAAM,SAAS,GAAG,WAAW,IAAI,kFAAkF,CAAA;IACnH,UAAU,GAAG,MAAM,iBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;IAE3C,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,YAAY,CACjC,KAA0B;IAE1B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;QAC5D,WAAW,EAAE,kBAAkB;KAC/B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,OAAO,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/E,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACrC,OAAe,EACf,SAA0C;IAE1C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,GAAG,OAAO,QAAQ,CAAC;IAErC,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE;QACpC,OAAO,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAE3D,MAAM,OAAO,CAAC,OAAO,CACpB,SAAS,EACT,KAAK,EAAC,GAAG,EAAC,EAAE;QACX,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;gBAEzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YAEzD,CAAC;QACF,CAAC;IACF,CAAC,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CAChB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,eAAe,SAAS,GAAG,CAAC,CAAC;AACzE,CAAC","sourcesContent":["import amqp from 'amqplib';\nimport { BaseEvent } from './BaseEvent';\n\nlet connection: amqp.ChannelModel;\nlet channel: amqp.Channel;\n\nconst EXCHANGE_NAME = 'lyxa.events';\n\nexport async function initEventBus(rabbitMqUrl?: string) {\n\tconst rabbitUrl = rabbitMqUrl ?? 'amqps://vgyuplrd:wto6vUYnb4zeBI5lntKT4gj7rT8n1vwg@dog.lmq.cloudamqp.com/vgyuplrd'\n\tconnection = await amqp.connect(rabbitUrl);\n\tchannel = await connection.createChannel();\n\n\tawait channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });\n\n\tconsole.log('EventBus initialized and exchange asserted');\n}\n\nexport async function publishEvent<TPayload extends Record<string, unknown>>(\n\tevent: BaseEvent<TPayload>\n): Promise<void> {\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\n\n\tconst messageBuffer = Buffer.from(JSON.stringify(event.payload));\n\n\tchannel.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {\n\t\tcontentType: 'application/json',\n\t});\n\n\tconsole.log(`Published event [${event.eventId}] with payload`, event.payload);\n}\n\nexport async function subscribeToEvent(\n\teventId: string,\n\tonMessage: (payload: any) => Promise<void>\n): Promise<void> {\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\n\n\tconst queueName = `${eventId}-queue`;\n\n\tawait channel.assertQueue(queueName, {\n\t\tdurable: true,\n\t});\n\n\tawait channel.bindQueue(queueName, EXCHANGE_NAME, eventId);\n\n\tawait channel.consume(\n\t\tqueueName,\n\t\tasync msg => {\n\t\t\tif (msg !== null) {\n\t\t\t\tconst payloadString = msg.content.toString();\n\t\t\t\tconst payload = JSON.parse(payloadString);\n\n\t\t\t\ttry {\n\t\t\t\t\tawait onMessage(payload);\n\t\t\t\t\t// Acknowledge the message as processed\n\t\t\t\t\tchannel.ack(msg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(`Error handling event [${eventId}]`, err);\n\t\t\t\t\t// Optional: channel.nack(msg) for requeue\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ noAck: false }\n\t);\n\n\tconsole.log(`Subscribed to event [${eventId}] on queue [${queueName}]`);\n}\n"]}
|