registerQuery<TQuery extends IQuery<TResult>, TResult> method

void registerQuery<TQuery extends IQuery<TResult>, TResult>(
  1. IQueryHandler<TQuery, TResult> handler
)

Registers an IQueryHandler for a custom IQuery type.

Only a single handler can be registered for a specific IQuery type, if you try to register multiple handlers then a StateError will be thrown.

Implementation

void registerQuery<TQuery extends IQuery<TResult>, TResult>(
  IQueryHandler<TQuery, TResult> handler,
) {
  dynamic existing = _queryHandlers[TQuery];
  if (existing != null) {
    throw StateError(
      "A query handler has already been registered for the $TQuery type.",
    );
  }

  _queryHandlers[TQuery] = handler;
}