UNPKG

apitally

Version:

Simple API monitoring & analytics for REST APIs built with Express, Fastify, NestJS, AdonisJS, Hono, H3, Elysia, and Koa.

63 lines (62 loc) 2.07 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/common/consumerRegistry.ts var consumerFromStringOrObject = /* @__PURE__ */ __name((consumer) => { var _a, _b; if (typeof consumer === "string") { consumer = String(consumer).trim().substring(0, 128); return consumer ? { identifier: consumer } : null; } else { consumer.identifier = String(consumer.identifier).trim().substring(0, 128); consumer.name = (_a = consumer.name) == null ? void 0 : _a.trim().substring(0, 64); consumer.group = (_b = consumer.group) == null ? void 0 : _b.trim().substring(0, 64); return consumer.identifier ? consumer : null; } }, "consumerFromStringOrObject"); var _ConsumerRegistry = class _ConsumerRegistry { consumers; updated; constructor() { this.consumers = /* @__PURE__ */ new Map(); this.updated = /* @__PURE__ */ new Set(); } addOrUpdateConsumer(consumer) { if (!consumer || !consumer.name && !consumer.group) { return; } const existing = this.consumers.get(consumer.identifier); if (!existing) { this.consumers.set(consumer.identifier, consumer); this.updated.add(consumer.identifier); } else { if (consumer.name && consumer.name !== existing.name) { existing.name = consumer.name; this.updated.add(consumer.identifier); } if (consumer.group && consumer.group !== existing.group) { existing.group = consumer.group; this.updated.add(consumer.identifier); } } } getAndResetUpdatedConsumers() { const data = []; this.updated.forEach((identifier) => { const consumer = this.consumers.get(identifier); if (consumer) { data.push(consumer); } }); this.updated.clear(); return data; } }; __name(_ConsumerRegistry, "ConsumerRegistry"); var ConsumerRegistry = _ConsumerRegistry; export { consumerFromStringOrObject, ConsumerRegistry as default }; //# sourceMappingURL=consumerRegistry.js.map