UNPKG

arvo-core

Version:

The core Arvo package which provides application tier core primitives and contract system for building production-grade event-driven application. Provides ArvoEvent (CloudEvents-compliant), ArvoContract for type-safe service interfaces, event factories, O

40 lines (39 loc) 1.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseArvoEventId = exports.createArvoEventId = exports.ArvoEventIdObjectSchema = void 0; var pako_1 = __importDefault(require("pako")); var uuid_1 = require("uuid"); var zod_1 = require("zod"); exports.ArvoEventIdObjectSchema = zod_1.z.object({ uuid: zod_1.z.string(), value: zod_1.z.string(), }); var createArvoEventId = function (id) { if ((id === null || id === void 0 ? void 0 : id.deduplication) === 'ARVO_MANAGED' && id.value.trim()) { var data = exports.ArvoEventIdObjectSchema.parse({ uuid: (0, uuid_1.v4)(), value: id.value.trim() }); var jsonString = JSON.stringify(data); var compressed = pako_1.default.deflate(new TextEncoder().encode(jsonString)); return Buffer.from(compressed).toString('base64'); } if ((id === null || id === void 0 ? void 0 : id.deduplication) === 'DEVELOPER_MANAGED' && id.value.trim()) { return id.value.trim(); } return (0, uuid_1.v4)(); }; exports.createArvoEventId = createArvoEventId; var parseArvoEventId = function (id) { try { var compressed = Buffer.from(id, 'base64'); var decompressed = pako_1.default.inflate(compressed); var jsonString = new TextDecoder().decode(decompressed); var parsed = JSON.parse(jsonString); return [exports.ArvoEventIdObjectSchema.parse(parsed), null]; } catch (e) { return [id, e]; } }; exports.parseArvoEventId = parseArvoEventId;