UNPKG

@busy-hour/blaze

Version:

<h1 align='center'>🔥 Blaze</h1> <div align='center'> An event driven framework for 🔥 Hono.js </div>

36 lines (35 loc) • 1.03 kB
// src/internal/broker/index.ts import { RESERVED_KEYWORD } from "../../utils/constant/index.js"; import { BlazeError } from "../errors/index.js"; import { BlazeEvent } from "../event-emitter/instance.js"; var BlazeBroker = class { hasListener(eventName) { return BlazeEvent.listenerCount(eventName) > 0; } validateEventName(eventName) { if (this.hasListener(eventName)) return; throw new BlazeError({ status: 500, errors: { message: `No listener for event ${eventName}` }, message: "No listener for event" }); } async call(actionName, ...values) { this.validateEventName(actionName); const results = await BlazeEvent.emitAsync(actionName, ...values); return results[0]; } emit(actionName, ...values) { return BlazeEvent.emit(actionName, ...values); } event(eventName, ...values) { const $eventName = [RESERVED_KEYWORD.PREFIX.EVENT, eventName].join("."); return BlazeEvent.emit($eventName, ...values); } }; export { BlazeBroker };