Files
cherrypick/examples/postly/lib/di/app_module.dart

25 lines
674 B
Dart
Raw Normal View History

2025-05-17 00:34:56 +03:00
import 'package:cherrypick_annotations/cherrypick_annotations.dart';
2025-05-16 18:09:14 +03:00
import 'package:dio/dio.dart';
import 'package:cherrypick/cherrypick.dart';
import '../data/network/json_placeholder_api.dart';
import '../data/post_repository_impl.dart';
import '../domain/repository/post_repository.dart';
2025-05-17 00:34:56 +03:00
part 'app_module.cherrypick.g.dart';
2025-05-16 18:09:14 +03:00
2025-05-17 00:34:56 +03:00
@module()
abstract class AppModule extends Module {
@singleton()
2025-05-17 22:02:32 +03:00
@named('dio')
2025-05-17 00:34:56 +03:00
Dio dio() => Dio();
2025-05-16 18:09:14 +03:00
2025-05-17 00:34:56 +03:00
@singleton()
2025-05-17 22:02:32 +03:00
@named('api')
JsonPlaceholderApi api(@named('dio') Dio dio) => JsonPlaceholderApi(dio);
2025-05-17 00:34:56 +03:00
2025-05-17 22:02:32 +03:00
@named('repo')
2025-05-17 00:34:56 +03:00
@singleton()
2025-05-17 22:02:32 +03:00
PostRepository repo(@named('api') JsonPlaceholderApi api) =>
PostRepositoryImpl(api);
2025-05-16 18:09:14 +03:00
}