reset method
Deletes all non-permanent dependencies in this specific scope.
Parameters:
force: Iftrue, also deletes permanent dependencies.
Implementation
void reset({bool force = false}) {
final keysToRemove = <String>[];
for (final entry in _registry.entries) {
final info = entry.value;
if (info.permanent && !force) continue;
if (info.isInstantiated && info.instance is LevitScopeDisposable) {
(info.instance as LevitScopeDisposable).onClose();
}
_notifyDelete(entry.key, info, 'reset');
keysToRemove.add(entry.key);
}
for (final key in keysToRemove) {
_registry.remove(key);
_pendingInit.remove(key);
if (_resolutionCache.isNotEmpty) {
_resolutionCache.remove(key);
}
}
// Clear fast-path registries
_typeRegistry.clear();
_typeResolutionCache.clear();
_instanceCache.clear();
}