CacheControl/json-rules-engine

Type of `Engine.on()` is wrong

UncleSamSwiss opened this issue · 1 comments

If you register an event handler on a specific event (i.e. Engine.on("my-event", ...)), the first argument of the method will be the params of the Event definition (type: Record<string, any>), not the Event object itself.

I'm not sure if this only the case for specific events or more generally the EventHandler:

export type EventHandler = (
event: Event,
almanac: Almanac,
ruleResult: RuleResult
) => void;

I can't speak for the developer (wherever they are), but I think this is intentional, because if you add a listener for a specific 'known' event, the only data you wouldn't know is the event's params. I could be wildly wrong, but it does feel like it should be that way