createMiddleware

Optional factory for creating a middleware provided by this module.

When a module provides a middleware factory, the middleware will be created and automatically registered with the Store during initialization. Module middlewares are applied after explicitly registered middlewares (closer to the reducer in the chain).

The middleware can use storeAccessor.selectLogic<T>() to access Logic, which will suspend until Logic is initialized.

Example usage:

class DevToolsModule(config: DevToolsConfig, scope: CoroutineScope)
: ModuleWithLogic<DevToolsState, DevToolsAction, DevToolsLogic> {

override val createMiddleware: (() -> Middleware) = {
DevToolsMiddleware(config, scope).middleware
}
}