call method

R call(
  1. K key
)

Returns the existing entry for key or creates it lazily.

Implementation

R call(K key) {
  if (_isDisposed) {
    throw StateError('LxFamily${name == null ? '' : ' "$name"'} is closed.');
  }

  final existing = _entries[key];
  if (existing != null) {
    final reactive = existing.reactive;
    if (reactive is! LxBase || !reactive.isDisposed) {
      return reactive;
    }
    _removeEntry(key, existing, close: false);
  }

  final reactive = _builder(key);
  _assignDiagnosticName(key, reactive);
  final entry = _LxFamilyEntry<R>(reactive);
  _entries[key] = entry;
  _installEviction(key, entry);
  return reactive;
}