Skip to content

funcwareFromMiddleware

funcwareFromMiddleware<E>(middleware: MiddlewareFunc<E>): Funcware<(change: E) => void>

Defined in: ext/funcware/from-middleware.ts:71

Converts a classic middleware function into funcware (middleware for functional composition).

Use cases:

  • Adapting middleware patterns to funcware-based systems
  • Composing event handlers or state machine transitions with middleware logic
Type ParameterDescription
EThe event or change type handled by the middleware
ParameterTypeDescription
middlewareMiddlewareFunc<E>A classic middleware function accepting (event, next)

Funcware<(change: E) => void>

A funcware function that wraps the next handler with the middleware logic

// Convert classic middleware to funcware
const logger = (ev, next) => { console.log(ev); next(ev); };
const funcwareLogger = funcwareFromMiddleware(logger);
const handler = (ev) => console.log('Handled:', ev);
funcwareLogger(handler)('event'); // Logs 'event' and 'Handled: event'

This function is useful for integrating traditional middleware patterns into systems that use functional composition (funcware), such as state machines, event-driven architectures, or custom handler pipelines. It allows you to reuse existing middleware logic in a more composable way.

export function funcwareFromMiddleware<E>(
middleware: MiddlewareFunc<E>
): Funcware<(change: E) => void> {
return (next) => (ev) => {
return middleware(ev, next);
};
}