Files
boc/quixzoom-token-system/api/node_modules/stripe/esm/StripeEmitter.js
T
Bernt 58ca4e68db feat(boc): Complete Business Operations Center v1.0
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics)
- Rust analytics service with parallel report generation
- C runtime with POSIX shared memory IPC
- PostgreSQL schema with 30+ tables, full migrations
- Redis cache, sessions, pub/sub
- Kafka event streaming with Zookeeper
- WebSocket hub for real-time updates
- Automation engine with cron jobs, workflows, event triggers
- JWT authentication, multi-tenant from start
- Docker Compose with all services
- Nginx reverse proxy with rate limiting
- Integration tests passing
- Feature gap analysis against Fortnox/Odoo/Visma

Refs: BOC-001
2026-07-12 12:41:35 +00:00

43 lines
1.3 KiB
JavaScript

/**
* @private
* (For internal use in stripe-node.)
* Wrapper around the Event Web API.
*/
class _StripeEvent extends Event {
constructor(eventName, data) {
super(eventName);
this.data = data;
}
}
/** Minimal EventEmitter wrapper around EventTarget. */
export class StripeEmitter {
constructor() {
this.eventTarget = new EventTarget();
this.listenerMapping = new Map();
}
on(eventName, listener) {
const listenerWrapper = (event) => {
listener(event.data);
};
this.listenerMapping.set(listener, listenerWrapper);
return this.eventTarget.addEventListener(eventName, listenerWrapper);
}
removeListener(eventName, listener) {
const listenerWrapper = this.listenerMapping.get(listener);
this.listenerMapping.delete(listener);
return this.eventTarget.removeEventListener(eventName, listenerWrapper);
}
once(eventName, listener) {
const listenerWrapper = (event) => {
listener(event.data);
};
this.listenerMapping.set(listener, listenerWrapper);
return this.eventTarget.addEventListener(eventName, listenerWrapper, {
once: true,
});
}
emit(eventName, data) {
return this.eventTarget.dispatchEvent(new _StripeEvent(eventName, data));
}
}