di library

Dependency injection module.

Provides a simple service locator pattern for registering and retrieving dependencies. Supports both type-based and key-based lookup.

Example:

import 'package:redus/di.dart';

// Register by type
register<ApiService>(ApiService());
final api = get<ApiService>();

// Register by type + key (for multiple instances)
register<Logger>(ConsoleLogger(), key: #console);
register<Logger>(FileLogger(), key: #file);
final consoleLogger = get<Logger>(key: #console);

Classes

ServiceLocator
Service locator for dependency injection.

Functions

get<T extends Object>({Symbol? key}) → T
Get a registered instance or factory result.
isRegistered<T extends Object>({Symbol? key}) bool
Check if a type (and optional key) is registered.
register<T extends Object>(T instance, {Symbol? key}) → void
Register a singleton instance.
registerFactory<T extends Object>(T factory(), {Symbol? key}) → void
Register a factory function.
resetLocator() → void
Reset all registrations.
unregister<T extends Object>({Symbol? key}) → void
Remove a registered instance or factory.