fixed example

This commit is contained in:
Sergey Penkovsky
2021-04-21 08:12:23 +03:00
parent 6a2d86c83c
commit b2b66bdcfd

View File

@@ -4,15 +4,25 @@ import 'package:dart_di/experimental/scope.dart';
import 'package:dart_di/experimental/module.dart';
class AppModule extends Module {
bool isMock;
AppModule({required this.isMock});
@override
void builder(Scope currentScope) {
bind<ApiClient>().withName("apiClient").toInstance(ApiClientMock());
bind<DataRepository>().withName("networkRepo").toProvide(
bind<ApiClient>().withName("apiClientMock").toInstance(ApiClientMock());
bind<ApiClient>().withName("apiClientImpl").toInstance(ApiClientImpl());
bind<DataRepository>()
.withName("networkRepo")
.toProvide(
() => NetworkDataRepository(
currentScope.resolve<ApiClient>(named: "apiClient"),
currentScope.resolve<ApiClient>(
named: isMock ? "apiClientMock" : "apiClientImpl",
),
),
);
// .singeltone();
)
.singeltone();
bind<DataBloc>().toProvide(
() => DataBloc(
currentScope.resolve<DataRepository>(named: "networkRepo"),
@@ -23,7 +33,7 @@ class AppModule extends Module {
void main() async {
final scope = openRootScope().installModules([
AppModule(),
AppModule(isMock: false),
]);
final dataBloc = scope.resolve<DataBloc>();
@@ -77,6 +87,14 @@ class ApiClientMock implements ApiClient {
@override
Future sendRequest(
{@required String? url, String? token, Map? requestBody}) async {
return 'hello world';
return 'Local Data';
}
}
class ApiClientImpl implements ApiClient {
@override
Future sendRequest(
{@required String? url, String? token, Map? requestBody}) async {
return 'Network data';
}
}