@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
JavaScript
// 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
};