add static method

Adds a middleware to the global registry.

Registration is idempotent by instance identity. If token is provided, registration is unique per token: adding another middleware with the same token replaces the previous one.

Implementation

static LevitReactiveMiddleware add(
  LevitReactiveMiddleware middleware, {
  Object? token,
}) {
  if (token == null) return _addUntokened(middleware);

  final existingByToken = _middlewaresByToken[token];
  if (identical(existingByToken, middleware)) return middleware;

  if (existingByToken != null) {
    return _replaceTokenized(token, existingByToken, middleware);
  }

  if (_middlewares.contains(middleware)) {
    return _attachToken(token, middleware);
  }

  return _addTokenized(token, middleware);
}