Skip to content

Commit 0c2d80a

Browse files
Merge pull request #96 from rootstrap/enhancement/modules_circular_dependency_fix
Enhancement: Removed circular dependency
2 parents b2c4f39 + ffa9681 commit 0c2d80a

File tree

15 files changed

+51
-50
lines changed

15 files changed

+51
-50
lines changed

.idea/flutter-base.iml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/lib/main/init.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import 'package:app/main/app.dart';
22
import 'package:common/init.dart';
3+
import 'package:data/init.dart';
34
import 'package:domain/init.dart';
45
import 'package:example_domain/init.dart';
6+
import 'package:example_data/init.dart';
57
import 'package:flutter/material.dart';
68
import 'package:get_it/get_it.dart';
79
import 'package:url_strategy/url_strategy.dart';
@@ -17,6 +19,10 @@ final getIt = GetIt.instance;
1719

1820
Future<void> initialize() async {
1921
await CommonInit.initialize(getIt);
22+
await DataInit.initialize(getIt);
2023
await DomainInit.initialize(getIt);
24+
25+
// Example Module init
2126
await ExampleDomainInit.initialize(getIt);
27+
await ExampleDataInit.initialize(getIt);
2228
}

app/pubspec.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ dependencies:
4545
path: ../modules/domain
4646
common:
4747
path: ../modules/common
48+
data:
49+
path: ../modules/data
50+
51+
example_data:
52+
path: ../example/example_data
4853
example_domain:
4954
path: ../example/example_domain
5055
example_presentation:

example/example_data/lib/models/product_entity.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'package:example_domain/models/product.dart';
2+
13
class ProductEntity {
24
final int id;
35
final String title;
@@ -24,3 +26,14 @@ class ProductEntity {
2426
);
2527
}
2628
}
29+
30+
extension ProductEntityExtension on ProductEntity {
31+
Product toProduct() {
32+
return Product(
33+
id,
34+
title,
35+
description,
36+
thumbnail,
37+
);
38+
}
39+
}

example/example_data/lib/repositories/product_repository_impl.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:example_domain/repositories/product_repository.dart';
44

55
import '../data_sources/remote/abstract/product_data_source.dart';
66
import 'package:example_domain/models/product.dart';
7+
import 'package:example_data/models/product_entity.dart';
78

89
class ProductRepositoryImpl implements ProductRepository {
910
final ProductDataSource _productDataSource;
@@ -14,7 +15,7 @@ class ProductRepositoryImpl implements ProductRepository {
1415
Future<ResultType<List<Product>, Failure>> getProducts() async {
1516
final productResult = await _productDataSource.getProducts();
1617
return productResult.mapSuccess(
17-
(products) => products.map((e) => Product.fromEntity(e)).toList(),
18+
(products) => products.map((e) => e.toProduct()).toList(),
1819
);
1920
}
2021
}

example/example_domain/lib/init.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import 'package:example_domain/services/ProductService.dart';
22
import 'package:get_it/get_it.dart';
3-
import 'package:example_data/init.dart';
43
import 'bloc/get_products/get_products_cubit.dart';
54

65
class ExampleDomainInit {
76
static Future<void> initialize(GetIt getIt) async {
8-
await ExampleDataInit.initialize(getIt);
9-
107
getIt.registerSingleton(GetProductsCubit());
118

129
//Services
Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
1-
import 'package:example_data/models/product_entity.dart';
2-
31
class Product {
42
final int id;
53
final String title;
64
final String description;
75
final String thumbnail;
86

97
Product(this.id, this.title, this.description, this.thumbnail);
10-
11-
static Product fromEntity(ProductEntity entity) {
12-
return Product(
13-
entity.id,
14-
entity.title,
15-
entity.description,
16-
entity.thumbnail,
17-
);
18-
}
198
}

example/example_domain/pubspec.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ environment:
1010
dependencies:
1111
flutter:
1212
sdk: flutter
13-
example_data:
14-
path: ../example_data
1513
common:
1614
path: ../../modules/common
1715
flutter_bloc: ^8.1.2

example/example_presentation/pubspec.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ dependencies:
1212
sdk: flutter
1313
example_domain:
1414
path: ../example_domain
15+
example_data:
16+
path: ../example_data
1517

1618
dev_dependencies:
1719
flutter_test:

modules/data/.flutter-plugins

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# This is a generated file; do not edit or check into version control.
2-
package_info_plus=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
3-
path_provider_linux=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
4-
path_provider_windows=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/
5-
permission_handler=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/permission_handler-10.4.5/
6-
permission_handler_android=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/permission_handler_android-10.3.6/
7-
permission_handler_apple=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/permission_handler_apple-9.1.4/
8-
permission_handler_windows=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/permission_handler_windows-0.1.3/
9-
shared_preferences=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/shared_preferences-2.2.3/
10-
shared_preferences_android=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.2/
11-
shared_preferences_foundation=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/
12-
shared_preferences_linux=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/
13-
shared_preferences_web=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/shared_preferences_web-2.3.0/
14-
shared_preferences_windows=/Users/fabianvalencia/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/
2+
package_info_plus=/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/
3+
path_provider_linux=/Users/usuario/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.0/
4+
path_provider_windows=/Users/usuario/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.0/
5+
permission_handler=/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler-10.4.3/
6+
permission_handler_android=/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_android-10.3.3/
7+
permission_handler_apple=/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_apple-9.1.4/
8+
permission_handler_windows=/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_windows-0.1.3/
9+
shared_preferences=/Users/usuario/.pub-cache/hosted/pub.dev/shared_preferences-2.2.0/
10+
shared_preferences_android=/Users/usuario/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.0/
11+
shared_preferences_foundation=/Users/usuario/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.3/
12+
shared_preferences_linux=/Users/usuario/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.0/
13+
shared_preferences_web=/Users/usuario/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.0/
14+
shared_preferences_windows=/Users/usuario/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.0/

0 commit comments

Comments
 (0)