@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
68 lines • 2.25 kB
JavaScript
;
/**
* Event Bus Adapter for SDK Security
* Adapts the actual EventBus to match our SecurityEventBusContract
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventsAdapter = void 0;
class EventsAdapter {
constructor(eventBus) {
this.eventBus = eventBus;
}
/**
* Emit adapter - converts (event, data) to Event object and handles Promise
*/
emit(event, data) {
// Create Event object as expected by sdk-events
const eventObject = {
id: `${event}-${Date.now()}-${Math.random()}`, // Generate unique ID
type: event,
data: data, // sdk-events expects JsonValue
metadata: {
timestamp: Date.now(),
version: '1.0.0',
source: 'sdk-security'
}
};
// Fire and forget the Promise since security expects void
this.eventBus.emit(eventObject).catch(error => {
console.error(`Failed to emit event ${event}:`, error);
});
}
/**
* On adapter - wraps handler to extract data from Event object
*/
on(event, handler) {
// Create wrapper that extracts data from Event object
const wrappedHandler = (eventData) => {
// Handle both direct data and Event object formats
if (eventData && typeof eventData === 'object' && 'data' in eventData) {
handler(eventData.data);
}
else {
handler(eventData);
}
};
this.eventBus.on(event, wrappedHandler);
}
/**
* Off adapter - not implemented as sdk-events has different signature
*/
off(event, handler) {
// This would need the exact same handler reference
// For now, we can use removeAllListeners if available
if ('removeAllListeners' in this.eventBus) {
this.eventBus.removeAllListeners(event);
}
}
/**
* Initialize if the event bus supports it
*/
async initialize() {
if (this.eventBus.initialize) {
return this.eventBus.initialize();
}
}
}
exports.EventsAdapter = EventsAdapter;
//# sourceMappingURL=events.adapter.js.map