// ─── NoopEventBus ─────────────────────────────────────────────────
/**
 * 什么都不做的实现 —— 用于 CLI / 单元测试。
 * 保证 Service 层即使没接 real bus 也能跑。
 */
export class NoopEventBus {
    emit(_event) {
        /* swallow */
    }
    subscribe(_handler) {
        return () => {
            /* no-op */
        };
    }
}
// ─── InMemoryEventBus ─────────────────────────────────────────────
/**
 * 进程内同步广播 —— 用于测试和 CLI 的 journal 用途。
 * 订阅者顺序执行，handler 内抛错被吞只记 console.warn（不阻塞 publisher）。
 */
export class InMemoryEventBus {
    handlers = new Set();
    emit(event) {
        for (const h of this.handlers) {
            try {
                h(event);
            }
            catch (err) {
                console.warn('[DomainEventBus] handler threw:', err);
            }
        }
    }
    subscribe(handler) {
        this.handlers.add(handler);
        return () => {
            this.handlers.delete(handler);
        };
    }
}
//# sourceMappingURL=domainEvents.js.map