add<T extends LevitTaskMiddleware> static method

T add<T extends LevitTaskMiddleware>(
  1. T middleware, {
  2. Object? token,
})

Registers middleware globally, optionally replacing the same token.

Implementation

static T add<T extends LevitTaskMiddleware>(
  T middleware, {
  Object? token,
}) {
  if (token != null) {
    final previous = _middlewaresByToken[token];
    if (identical(previous, middleware)) return middleware;
    if (previous != null) _middlewares.remove(previous);
    _middlewaresByToken[token] = middleware;
  }
  if (!_middlewares.contains(middleware)) _middlewares.add(middleware);
  return middleware;
}