Skip to content

Commit 748e2b1

Browse files
authored
feat: Introduced auto tab scaffold (#138)
* feat: Introduced auto tab scaffold * feat: Added class modifier to cubit * feat: Added build.yaml for build runner * nit * feat: Added strokeWidth and empty playground screen * nit * nit
1 parent c6fad20 commit 748e2b1

33 files changed

+486
-380
lines changed

build.yaml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
targets:
2+
$default:
3+
builders:
4+
# Serializer
5+
json_serializable:
6+
options:
7+
explicit_to_json: true
8+
# By deafult, field_rename: none, More options —
9+
# snake, kebab, pascal, etc. To use, uncomment this below line —
10+
# field_rename: snake
11+
generate_for:
12+
include:
13+
# data layer:
14+
- lib/data/model/**.dart
15+
- lib/data/response_objects/**.dart
16+
17+
# domain layer:
18+
# Note: We added domain layer? Why? Because sometimes, we may need
19+
# some freezed classes to be saved on storage where toJson() is required.
20+
# We should not allow the entire `/entities` folder here, as entities don't need fromJson(), toJson(), etc.
21+
# Specifying exact file will help build runner to run fast.
22+
- lib/domain/entities/user.dart
23+
24+
# Data Classes, Cloning
25+
freezed:freezed:
26+
generate_for:
27+
include:
28+
# data layer:
29+
- lib/data/model/**.dart
30+
- lib/data/response_objects/**.dart
31+
32+
# domain layer:
33+
- lib/domain/common/**.dart
34+
- lib/domain/entities/**.dart
35+
36+
# presentation layer:
37+
- lib/presentation/features/**_state.dart
38+
39+
# Dependency Injection
40+
injectable_generator:injectable_config_builder:
41+
generate_for:
42+
include:
43+
- lib/injection/injector.dart
44+
45+
injectable_generator:injectable_builder:
46+
generate_for:
47+
include:
48+
- lib/injection/injector.dart
49+
50+
# data
51+
- lib/data/**_config.dart
52+
- lib/data/services/**_service_impl.dart
53+
- lib/data/services/**_remapper.dart
54+
- lib/data/preferences/**_preferences.dart
55+
56+
# domain
57+
- lib/domain/use_cases/**_use_case.dart
58+
59+
# presentation
60+
- lib/presentation/features/**_cubit.dart
61+
62+
# Routing
63+
auto_route_generator:
64+
generate_for:
65+
include:
66+
- lib/presentation/routes/router.dart
67+
- lib/presentation/features/**_screen.dart
68+
- lib/presentation/features/**_page.dart

lib/data/interceptor/auth_interceptor.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import 'package:flutter/foundation.dart';
33
import 'package:flutter_template/data/interceptor/meta_interceptor.dart';
44
import 'package:flutter_template/data/model/auth/auth_tokens.dart';
55
import 'package:flutter_template/data/preferences/auth_preferences.dart';
6+
import 'package:flutter_template/data/response_objects/response_error.dart';
67
import 'package:flutter_template/data/services/http_client/dio_http_client.dart';
78
import 'package:flutter_template/data/services/http_client/http_client.dart';
8-
import 'package:flutter_template/data/services/response_error.dart';
9-
import 'package:flutter_template/data/services/response_objects/tokens_response.dart';
9+
import 'package:flutter_template/data/response_objects/tokens_response.dart';
1010
import 'package:flutter_template/domain/preferences/user_preferences.dart';
1111

1212
class AuthInterceptor extends InterceptorsWrapper {

lib/data/services/response_objects/error_response.dart renamed to lib/data/response_objects/error_response.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:flutter_template/data/services/response_error.dart';
1+
import 'package:flutter_template/data/response_objects/response_error.dart';
22
import 'package:flutter_template/nstack/nstack.dart';
33
import 'package:freezed_annotation/freezed_annotation.dart';
44

lib/data/services/response_error.dart renamed to lib/data/response_objects/response_error.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'dart:io';
22

33
import 'package:dio/dio.dart';
44
import 'package:flutter/foundation.dart';
5-
import 'package:flutter_template/data/services/response_objects/error_response.dart';
5+
import 'package:flutter_template/data/response_objects/error_response.dart';
66
import 'package:flutter_template/nstack/nstack.dart';
77
import 'package:freezed_annotation/freezed_annotation.dart';
88

@@ -13,7 +13,7 @@ part 'response_error.freezed.dart';
1313
///
1414
/// We return those errors to get localized messages to display to the user.
1515
@freezed
16-
class ResponseError<T> with _$ResponseError<T> implements Exception {
16+
sealed class ResponseError<T> with _$ResponseError<T> implements Exception {
1717
const ResponseError._();
1818

1919
const factory ResponseError.noInternetConnection() = _NoInternetConnection;

lib/data/services/http_client/dio_http_client.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:dio/dio.dart';
2+
import 'package:flutter_template/data/response_objects/response_error.dart';
23
import 'package:flutter_template/data/services/http_client/http_client.dart';
3-
import 'package:flutter_template/data/services/response_error.dart';
44
import 'package:injectable/injectable.dart';
55

66
/// Abstraction of the Dio http client class.

lib/data/services/http_profile_service.dart

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import 'package:flutter_template/domain/services/profile/profile_service.dart';
2+
import 'package:injectable/injectable.dart';
3+
4+
@Injectable(as: ProfileService)
5+
class ProfileServiceImpl implements ProfileService {
6+
@override
7+
Future<String?> getProfileName() async {
8+
// TODO: implement getProfileName
9+
await Future.delayed(const Duration(milliseconds: 800));
10+
return 'John Doe';
11+
}
12+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import 'package:flutter_template/data/response_objects/response_error.dart';
2+
import 'package:freezed_annotation/freezed_annotation.dart';
3+
4+
part 'base_status.freezed.dart';
5+
6+
@freezed
7+
sealed class BaseStatus<T> with _$BaseStatus<T> {
8+
const BaseStatus._();
9+
10+
const factory BaseStatus.initial() = Initial<T>;
11+
12+
const factory BaseStatus.loading() = Loading<T>;
13+
14+
const factory BaseStatus.lazyLoading() = LazyLoading<T>;
15+
16+
const factory BaseStatus.success() = Success<T>;
17+
18+
const factory BaseStatus.valid() = Valid<T>;
19+
20+
const factory BaseStatus.invalid() = Invalid<T>;
21+
22+
const factory BaseStatus.failure(ResponseError error) = Failure<T>;
23+
24+
bool get isInitial => this is Initial<T>;
25+
bool get isLoading => this is Loading<T>;
26+
bool get isLazyLoading => this is LazyLoading<T>;
27+
bool get isSuccess => this is Success<T>;
28+
bool get isValid => this is Valid<T>;
29+
bool get isInvalid => this is Invalid<T>;
30+
bool get isFailure => this is Failure<T>;
31+
}

lib/domain/common/use_case.dart

Lines changed: 0 additions & 173 deletions
This file was deleted.

0 commit comments

Comments
 (0)