register method

  1. @override
void register(
  1. ContainerInterface container
)
override

Called when the provider is registered in the container.

Implementation

@override
void register(ContainerInterface container) {
  // Minimal config and logging

  final configPath = _resolveConfigPath();

  container.lazySingleton<EnvInterface>((c) => EnvSystem());
  container.singleton<ConfigInterface>(
    (c) => ConfigSystem(
      configPath: configPath,
      environment:
          c.resolve<EnvInterface>().getOrDefault('APP_ENV', 'development'),
    ),
  );

  container.lazySingleton<Logger>(
    (c) => Logger()..addHandler(ConsoleLogHandler()),
  );

  // Optional: Database + Migrator + Seeder (only CLI tools)
  container.lazySingleton<DatabaseManager>(
    (c) => DatabaseManager(c.resolve<ConfigInterface>()),
  );
  container
      .lazySingleton<Migrator>((c) => Migrator(c.resolve<DatabaseManager>()));
  container.lazySingleton<SeederManager>((c) => SeederManager());
  container.lazySingleton<QueueManager>(
    (c) => QueueManager(c.resolve<ConfigInterface>()),
  );
}