autotel
Version:
Write Once, Observe Anywhere
33 lines (31 loc) • 1.02 kB
JavaScript
;
// src/correlated-events.ts
function sanitizeEventKey(input) {
return input.replaceAll(/[^a-zA-Z0-9_.-]/g, "_");
}
var sequenceByTarget = /* @__PURE__ */ new WeakMap();
function nextSequence(target) {
const n = (sequenceByTarget.get(target) ?? 0) + 1;
sequenceByTarget.set(target, n);
return n;
}
function emitCorrelatedEvent(ctx, name, attrs = {}) {
const eventName = sanitizeEventKey(name);
if (typeof ctx.addEvent === "function") {
ctx.addEvent.call(ctx, eventName, attrs);
return;
}
const seq = nextSequence(ctx);
const prefix = `autotel.event.${seq}.${eventName}`;
const flattened = {
[`${prefix}.name`]: eventName,
[`${prefix}.ts`]: (/* @__PURE__ */ new Date()).toISOString()
};
for (const [k, v] of Object.entries(attrs)) {
flattened[`${prefix}.${sanitizeEventKey(k)}`] = v;
}
ctx.setAttributes(flattened);
}
exports.emitCorrelatedEvent = emitCorrelatedEvent;
//# sourceMappingURL=chunk-4P6ZOARG.cjs.map
//# sourceMappingURL=chunk-4P6ZOARG.cjs.map