UNPKG

universal-queues

Version:

Factory universal para mensageria (RabbitMQ, Kafka, SQS) para sistemas distribuídos.

41 lines 1.49 kB
"use strict"; // src/handlers/outbox.ts var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.saveToOutbox = saveToOutbox; exports.processOutbox = processOutbox; const promises_1 = __importDefault(require("fs/promises")); const OUTBOX_PATH = './outbox-events.json'; async function saveToOutbox(event) { let outbox = []; try { const file = await promises_1.default.readFile(OUTBOX_PATH, 'utf-8'); outbox = JSON.parse(file); } catch (e) { /* arquivo não existe ou está vazio */ } outbox.push(event); await promises_1.default.writeFile(OUTBOX_PATH, JSON.stringify(outbox, null, 2)); } async function processOutbox(sendFn) { try { const file = await promises_1.default.readFile(OUTBOX_PATH, 'utf-8'); const outbox = JSON.parse(file); for (const event of outbox) { try { await sendFn(event); // Se enviado com sucesso, pode remover ou marcar como enviado } catch (e) { // log de erro, mantém no outbox para próxima tentativa } } // Após processar, zere o arquivo (ou use lógica mais robusta de update) await promises_1.default.writeFile(OUTBOX_PATH, '[]'); } catch (e) { // nada a processar } } //# sourceMappingURL=outbox.js.map