singleton_manager_annotations

Lightweight runtime annotations for the Dart singleton manager framework.

Features

  • @isSingleton - Mark classes that require automatic DI setup generation
  • @isInjected - Mark fields that should be injected by the DI container
  • Zero external dependencies - just annotations

Usage

import 'package:singleton_manager_annotations/singleton_manager_annotations.dart';
import 'package:singleton_manager/singleton_manager.dart';

// Mark a class with @isSingleton
@isSingleton
class MyService {
  // Mark fields with @isInjected
  @isInjected
  late OtherService otherService;

  Future<void> doSomething() async {
    // Use injected service
    await otherService.performAction();
  }
}

// Provide the dependency in SingletonDIAccess
final service = SingletonDIAccess.set<OtherService>(OtherService());

// Use the singleton_manager_generator to create augmentation files
// Then create instances using the generated factory
final myService = MyService.initializeDI();

With singleton_manager_generator

This package is designed to work with singleton_manager_generator, which automatically creates Dart augmentation files that implement ISingletonStandardDI.initializeDI() for all @isSingleton classes.

See singleton_manager_generator documentation for setup instructions.