get_it_injector 0.7.0 copy "get_it_injector: ^0.7.0" to clipboard
get_it_injector: ^0.7.0 copied to clipboard

Automate class registration for dependency injection using `get_it`, Simplify and manage dependencies effortlessly in Dart projects.

Pub Package

Get It Injector #

Annotation package for automated dependency injection with get_it

This package provides the core annotations used by get_it_injector_gen to automatically generate dependency injection code for your Dart and Flutter projects.

Installation #

dependencies:
  get_it_injector: ^0.6.0

dev_dependencies:
  get_it_injector_gen: ^0.6.0
  build_runner: ^2.4.0

Available Annotations #

Registration Types #

Annotation Description Usage
@singleton Single instance shared across the app @singleton class ApiService {}
@factory New instance created each time @factory class UserModel {}
@lazySingleton Singleton created on first access @lazySingleton class DatabaseService {}

Control Annotations #

Annotation Description Usage
@setup Marks the dependency setup function @setup Future<void> configure() => getIt.init();
@ignore Excludes class from registration @ignore class TestHelper {}
@use Specifies which constructor to use @use MyClass.named()

Priority & Grouping #

Annotation Description Usage
@Priority(value) Controls registration order @Priority(100) @singleton class CoreService {}
@Group('name') Groups related dependencies @Group('database') @singleton class UserRepo {}

Pre-defined Priorities #

@lowPriority     // Priority(0) - registered last
@mediumPriority  // Priority(50) - registered middle  
@highPriority    // Priority(100) - registered first

Quick Examples #

Basic Registration #

import 'package:get_it_injector/get_it_injector.dart';

@singleton
class ApiService {
  void fetchData() => print('Fetching...');
}

@factory
class UserRepository {
  final ApiService _api;
  UserRepository(this._api);
}

Interface Implementation #

abstract class Logger {
  void log(String message);
}

@singleton
class ConsoleLogger implements Logger {
  @override
  void log(String message) => print(message);
}

// Usage: getIt<Logger>() returns ConsoleLogger instance

Priority Control #

@highPriority
@singleton
class CoreService {} // Registered first

@mediumPriority  
@singleton
class FeatureService {} // Registered second

@lowPriority
@singleton  
class OptionalService {} // Registered last

Grouping #

@Group('database')
@singleton
class UserRepository {}

@Group('database')
@singleton
class ProductRepository {}

@Group('services')
@singleton
class NotificationService {}

Setup Function #

import 'package:get_it/get_it.dart';
import 'package:get_it_injector/get_it_injector.dart';
import 'injection.config.dart'; // Generated file

final getIt = GetIt.instance;

@setup
Future<void> configureDependencies() => getIt.init();

Code Generation #

This package only provides annotations. To generate the actual registration code, you need:

  1. Add get_it_injector_gen to your dev_dependencies
  2. Run the build runner: dart run build_runner build
  3. Import and call your setup function

For detailed configuration options and advanced usage, see the get_it_injector_gen documentation.

License #

License This software is released under the Apache 2.0 license. https://www.apache.org/licenses/LICENSE-2.0

1
likes
150
points
817
downloads

Publisher

verified publishermrgnhnt.com

Weekly Downloads

Automate class registration for dependency injection using `get_it`, Simplify and manage dependencies effortlessly in Dart projects.

Repository (GitHub)
View/report issues
Contributing

Topics

#dependency-injection #get-it #code-generation

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

meta

More

Packages that depend on get_it_injector