Type alias MediatorMiddleware<Context, EventName>

MediatorMiddleware<Context, EventName>: ((context, input, event) => MediatorMiddlewareOutput<Context>)

Represents a middleware function for Mediator events. Middlewares execute before event listeners and can observe, transform, or cancel events.

Type Parameters

  • Context extends MediatorContext

    The type of the MediatorContext.

  • EventName extends string = string

    The type of the event names.

Type declaration

Returns

Either undefined (pass through), modified input data, or a cancel event.

Example

// Logger middleware (observes only)
const logger: MediatorMiddleware<MyContext, string> = (context, input, event) => {
console.log(`Event ${event} triggered`)
// No return - passes through unchanged
}

// Validation middleware (can cancel)
const validator: MediatorMiddleware<MyContext, string> = (context, input, event) => {
if (input.pendingChanges && 'count' in input.pendingChanges && input.pendingChanges.count < 0) {
return { cancel: true } // Stop processing
}
return input // Pass through
}

// Transform middleware (modifies data)
const transformer: MediatorMiddleware<MyContext, string> = (context, input, event) => {
return {
pendingChanges: {
...(input.pendingChanges ?? {}),
timestamp: Date.now()
}
}
}