register<T extends Object?> method

bool register<T extends Object?>({
  1. required ContextBuilder<T> builder,
  2. String? id,
})

Registers a builder function into to _instancesByKey to allows to create the instance with get.

Returns true when instance has been registered.

Implementation

bool register<T extends Object?>({
  required ContextBuilder<T> builder,
  String? id,
}) {
  final instanceKey = ReactterInstance.generateKey<T?>(id);
  var reactterInstance = _instancesByKey[instanceKey];

  if (reactterInstance?._builder != null) {
    Reactter.log('Instance "$reactterInstance" already registered.');
    return false;
  }

  reactterInstance =
      _instancesByKey[instanceKey] = ReactterInstance<T>(id, builder);

  Reactter.emit(reactterInstance, Lifecycle.registered);
  Reactter.log('Instance "$reactterInstance" has been registered.');
  return true;
}