@sophonz/event-target
v0.0.8
Published
Sophonz Event Target
Readme
@sophonz/event-target
Typed event emitter and listener management for Sophonz RUM (Real User Monitoring) events.
Part of the Sophonz OpenTelemetry suite.
Install
bun add @sophonz/event-target
# or
pnpm add @sophonz/event-target
# or
npm install @sophonz/event-targetUsage
import { InternalEventTarget, RumOtelWebEventTarget } from '@sophonz/event-target';
const eventTarget = new InternalEventTarget();
// Listen for session changes
eventTarget.addEventListener('session-changed', (event) => {
console.log('New session:', event.payload.sessionId);
});
// Listen for attribute changes
eventTarget.addEventListener('global-attributes-changed', (event) => {
console.log('Attributes updated:', event.payload.attributes);
});
// Emit events
eventTarget.emit('session-changed', { sessionId: 'abc123' });
eventTarget.emit('global-attributes-changed', { attributes: { userId: 456 } });
// Remove listeners
eventTarget.removeEventListener('session-changed', listener);API
InternalEventTarget- Core event emitter classRumOtelWebEventTarget- Type definition for public APIaddEventListener<T>(type: T, listener: SophonzEventListener<T>): voidremoveEventListener<T>(type: T, listener: SophonzEventListener<T>): voidemit<T>(type: T, payload: RumOtelWebEventTypes[T]): void
Event Types
session-changed- Fired when RUM session changes- Payload:
{ sessionId: string }
- Payload:
global-attributes-changed- Fired when global trace attributes change- Payload:
{ attributes: Attributes }
- Payload:
screen-attribute-changed- Fired when screen attributes change- Payload:
{ attribute: string }
- Payload:
Peer dependencies
@opentelemetry/api
License
See LICENSE in this package.
Part of sophonz-js.
