UNPKG

woltage

Version:

A CQRS and Event-Sourcing Framework

24 lines (23 loc) 832 B
import Event from "./Event.js"; import { z } from 'zod/v4'; const eventMap = {}; export const registerEventClasses = (eventClasses) => { eventClasses.forEach(EventClass => { eventMap[EventClass.type] ??= {}; if (eventMap[EventClass.type][EventClass.version]) throw new Error(`Duplicate event class found. Event '${EventClass.type}@${EventClass.version}' already exists.`); eventMap[EventClass.type][EventClass.version] = EventClass; }); }; export const getEventClass = (eventType, version) => { var _a; return eventMap[eventType]?.[version] ?? (_a = class UnknownEvent extends Event { static toString() { return eventType; } }, _a.version = version, _a.schema = z.unknown(), _a); }; export default eventMap;