@busy-hour/blaze
Version:
<h1 align='center'>🔥 Blaze</h1> <div align='center'> An event driven framework for 🔥 Hono.js </div>
43 lines (42 loc) • 1.08 kB
JavaScript
// src/loader/event.ts
import { eventHandler } from "../handler/index.js";
import { BlazeContext } from "../internal/context/index.js";
import { BlazeEvent } from "../internal/event-emitter/instance.js";
import { RESERVED_KEYWORD } from "../utils/constant/index.js";
var BlazeServiceEvent = class {
serviceName;
eventName;
event;
validator;
constructor(options) {
this.serviceName = options.serviceName;
this.eventName = [
RESERVED_KEYWORD.PREFIX.EVENT,
this.serviceName,
options.eventAlias
].join(".");
this.event = options.event;
this.validator = {
body: this.event.validator
};
BlazeEvent.on(this.eventName, this.eventHandler.bind(this));
}
async eventHandler(body) {
const ctx = await BlazeContext.create({
honoCtx: null,
body,
params: null,
headers: null,
query: null,
validator: this.validator ?? null,
meta: null
});
const options = {
handler: this.event.handler
};
return eventHandler(options, ctx);
}
};
export {
BlazeServiceEvent
};