Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions lib/domain/service/base/base_generation_service.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';

abstract interface class BaseGenerationService<T> {
Future<T> generate(BaseGenerationParams params);
abstract interface class BaseGenerationService<R,
T extends BaseGenerationParams> {
Future<R> generate(T params);
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,13 @@ import 'package:onix_flutter_bricks/domain/entity/component/enum_param_component
import 'package:onix_flutter_bricks/domain/entity/component/request_component.dart';
import 'package:onix_flutter_bricks/domain/entity/component/source_component.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/component_generator/params/component_generator_params.dart';
import 'package:recase/recase.dart';

class ComponentGeneratorService implements BaseGenerationService<String> {
class ComponentGeneratorService
implements BaseGenerationService<String, ComponentGeneratorParams> {
@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! ComponentGeneratorParams) {
return 'Incorrect params';
}

Future<String> generate(ComponentGeneratorParams params) async {
try {
final projectLibFolder =
'${params.projectPath}/${params.projectName}/lib';
Expand Down
9 changes: 3 additions & 6 deletions lib/domain/service/docs_service/docs_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import 'dart:io';
import 'package:flutter/services.dart' show rootBundle;
import 'package:onix_flutter_bricks/core/di/app.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/docs_service/enum/document_type.dart';
import 'package:onix_flutter_bricks/domain/service/docs_service/params/docs_generation_params.dart';
import 'package:onix_flutter_bricks/util/extension/codelines_extension.dart';
import 'package:onix_flutter_bricks/util/extension/flavor_extension.dart';
import 'package:recase/recase.dart';

class DocsService implements BaseGenerationService<String> {
class DocsService
implements BaseGenerationService<String, DocsGenerationParams> {
final flavorsTitle =
'* **Flavor** - type of application configuration. Flavored 2 supports following flavors:';
final _appNamePattern = '{app_name}';
Expand All @@ -25,10 +25,7 @@ class DocsService implements BaseGenerationService<String> {
final _flavorizrInstructions = '{flavorizr_instructions}';

@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! DocsGenerationParams) {
return 'Incorrect params';
}
Future<String> generate(DocsGenerationParams params) async {
try {
final projectPath = '${params.projectPath}/${params.projectName}';
//remove existing readme.md
Expand Down
8 changes: 3 additions & 5 deletions lib/domain/service/fastlane_service/fastlane_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import 'dart:io';
import 'package:flutter/services.dart';
import 'package:onix_flutter_bricks/core/di/app.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/fastlane_service/enums/fastlane_assets.dart';
import 'package:onix_flutter_bricks/domain/service/fastlane_service/enums/fastlane_env_vars.dart';
import 'package:onix_flutter_bricks/domain/service/fastlane_service/params/fastlane_generation_params.dart';
Expand All @@ -18,13 +17,12 @@ const _ios = 'ios';
const _androidFastlane = '/android/fastlane/';
const _iosFastlane = '/ios/fastlane/';

class FastlaneService implements BaseGenerationService<String> {
class FastlaneService
implements BaseGenerationService<String, FastlaneGenerationParams> {
const FastlaneService();

@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! FastlaneGenerationParams) return 'Incorrect params';

Future<String> generate(FastlaneGenerationParams params) async {
final platforms = params.platforms
.where((element) => element == _android || element == _ios);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,44 @@ import 'dart:io';

import 'package:onix_flutter_bricks/core/arch/domain/entity/result/result.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/default_screen_route_generator.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/params/default_screen_route_generator_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/params/screen_generator_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/screen_generator.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/signing_generator/params/signing_generator_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/signing_generator/signing_generator.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/styles_generator_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/styles_generator.dart';
import 'package:onix_flutter_bricks/domain/service/output_service/output_service.dart';
import 'package:recase/recase.dart';

class FileGeneratorService {
final OutputService _outputService;

final BaseGenerationService<bool> _screenGenerator = ScreenGenerator();

final BaseGenerationService<bool> _defaultScreenRouteGenerator =
DefaultScreenRouteGenerator();

final BaseGenerationService<bool> _stylesGenerator = StylesGenerator();
late BaseGenerationService<Result<dynamic>> _signingGenerator;
final BaseGenerationService<bool, ScreenGeneratorParams> _screenGenerator =
ScreenGenerator();
final BaseGenerationService<bool, DefaultScreenRouteGeneratorParams>
_defaultScreenRouteGenerator = DefaultScreenRouteGenerator();
final BaseGenerationService<bool, StylesGeneratorParams> _stylesGenerator =
StylesGenerator();
late final BaseGenerationService<Result<int>, SingingGeneratorParams>
_signingGenerator;

FileGeneratorService(
this._outputService,
) {
_signingGenerator = SigningGenerator(_outputService);
}

Future<bool> generateScreen(BaseGenerationParams params) =>
Future<bool> generateScreen(ScreenGeneratorParams params) =>
_screenGenerator.generate(params);

Future<bool> generateDefaultScreenRoute(BaseGenerationParams params) =>
Future<bool> generateDefaultScreenRoute(
DefaultScreenRouteGeneratorParams params,
) =>
_defaultScreenRouteGenerator.generate(params);

Future<bool> generateStyles(BaseGenerationParams params) =>
Future<bool> generateStyles(StylesGeneratorParams params) =>
_stylesGenerator.generate(params);

Future<void> generateEmptySourceComponentFolders({
Expand All @@ -52,6 +58,6 @@ class FileGeneratorService {
.create(recursive: true);
}

Future<Result<dynamic>> generateSigning(BaseGenerationParams params) =>
Future<Result<int>> generateSigning(SingingGeneratorParams params) =>
_signingGenerator.generate(params);
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import 'dart:io';

import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/params/default_screen_route_generator_params.dart';
import 'package:onix_flutter_bricks/util/enum/project_router.dart';

class DefaultScreenRouteGenerator implements BaseGenerationService<bool> {
class DefaultScreenRouteGenerator
implements BaseGenerationService<bool, DefaultScreenRouteGeneratorParams> {
@override
Future<bool> generate(BaseGenerationParams params) async {
if (params is! DefaultScreenRouteGeneratorParams) {
return false;
}

Future<bool> generate(DefaultScreenRouteGeneratorParams params) async {
///Add default configuration to Navigation Router file
await _createDefaultRoute(params);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,17 @@ import 'dart:io';

import 'package:onix_flutter_bricks/domain/entity/screen/screen.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/gen/screen_code_content.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/screen_generators/params/screen_generator_params.dart';
import 'package:onix_flutter_bricks/util/enum/project_router.dart';
import 'package:recase/recase.dart';

class ScreenGenerator implements BaseGenerationService<bool> {
class ScreenGenerator
implements BaseGenerationService<bool, ScreenGeneratorParams> {
final _screenCodeContent = ScreenCodeContent();

@override
Future<bool> generate(BaseGenerationParams params) async {
if (params is! ScreenGeneratorParams) {
return false;
}

Future<bool> generate(ScreenGeneratorParams params) async {
String screenName = params.screen.name.snakeCase;

if (screenName.endsWith('_screen')) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,20 @@ import 'package:onix_flutter_bricks/core/arch/domain/entity/result/result.dart';
import 'package:onix_flutter_bricks/core/di/app.dart';
import 'package:onix_flutter_bricks/domain/entity/failure/signing_failure.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/signing_generator/params/signing_generator_params.dart';
import 'package:onix_flutter_bricks/domain/service/output_service/output_service.dart';
import 'package:onix_flutter_bricks/util/extension/output/output_message_extension.dart';
import 'package:onix_flutter_bricks/util/process_runner.dart';

///This class Generates Android keystore with given credentials and fix Gradle signing configuration
class SigningGenerator implements BaseGenerationService<Result<dynamic>> {
class SigningGenerator
implements BaseGenerationService<Result<int>, SingingGeneratorParams> {
final OutputService _outputService;

SigningGenerator(this._outputService);

@override
Future<Result<dynamic>> generate(BaseGenerationParams params) async {
if (params is! SingingGeneratorParams) {
return Result.error(
failure: SigningFailure(SigningFailureType.invalidParams),
);
}
Future<Result<int>> generate(SingingGeneratorParams params) async {
try {
_outputService
.add('Keystore password: ${params.signingPassword}'.toInfoMessage());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
import 'dart:io';

import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/gen/app_colors_file_content.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/colors_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/colors_generator_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/parser/colors_parser.dart';

class ColorsGenerator implements BaseGenerationService<bool> {
class ColorsGenerator
implements BaseGenerationService<bool, ColorsGeneratorParams> {
final _colorParser = ColorsParser();
final _appColorsGenerator = AppColorsFileContent();

@override
Future<bool> generate(BaseGenerationParams params) async {
if (params is! ColorsGeneratorParams) {
return false;
}
Future<bool> generate(ColorsGeneratorParams params) async {
var themeColorsFile = await File(
'${params.projectPath}/${params.projectName}/lib/presentation/style/app_colors.dart')
.create(recursive: true);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_color_style.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/colors_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/style_generator_const.dart';
import 'package:onix_flutter_bricks/util/extension/codelines_extension.dart';

class AppColorsFileContent implements BaseGenerationService<String> {
class AppColorsFileContent
implements BaseGenerationService<String, ColorsGenerationParams> {
@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! ColorsGenerationParams) {
return '';
}
Future<String> generate(ColorsGenerationParams params) async {
return _generateInternal(params.colors);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_color_style.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/theme_colors_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/style_generator_const.dart';
import 'package:onix_flutter_bricks/util/extension/codelines_extension.dart';
import 'package:onix_flutter_bricks/util/extension/swagger_extensions.dart';
import 'package:recase/recase.dart';

class ThemeColorsFileContent implements BaseGenerationService<String> {
class ThemeColorsFileContent
implements BaseGenerationService<String, ThemeColorsGenerationParams> {
@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! ThemeColorsGenerationParams) {
return '';
}

Future<String> generate(ThemeColorsGenerationParams params) async {
return _generateInternal(
colors: params.colors,
projectName: params.projectName,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_color_style.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/theme_colors_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/style_generator_const.dart';
import 'package:onix_flutter_bricks/util/extension/swagger_extensions.dart';

class ThemeColorsFileContentTailor implements BaseGenerationService<String> {
class ThemeColorsFileContentTailor
implements BaseGenerationService<String, ThemeColorsGenerationParams> {
@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! ThemeColorsGenerationParams) {
return '';
}

Future<String> generate(ThemeColorsGenerationParams params) async {
return _generateInternal(
colors: params.colors,
projectName: params.projectName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,14 @@ import 'package:collection/collection.dart';
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_color_style.dart';
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_text_style.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/theme_text_style_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/style_generator_const.dart';
import 'package:onix_flutter_bricks/util/extension/codelines_extension.dart';

class ThemeTextStylesFileContent implements BaseGenerationService<String> {
class ThemeTextStylesFileContent
implements BaseGenerationService<String, ThemeTextStyleGenerationParams> {
@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! ThemeTextStyleGenerationParams) {
return '';
}
Future<String> generate(ThemeTextStyleGenerationParams params) async {
return _generateInternal(
textStyles: params.textStyles,
colors: params.colors,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,12 @@ import 'package:collection/collection.dart';
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_color_style.dart';
import 'package:onix_flutter_bricks/domain/entity/app_styles/app_text_style.dart';
import 'package:onix_flutter_bricks/domain/service/base/base_generation_service.dart';
import 'package:onix_flutter_bricks/domain/service/base/params/base_generation_params.dart';
import 'package:onix_flutter_bricks/domain/service/file_generator_service/style_generator/params/theme_text_style_generation_params.dart';

class ThemeTextStylesFileContentTailor
implements BaseGenerationService<String> {
implements BaseGenerationService<String, ThemeTextStyleGenerationParams> {
@override
Future<String> generate(BaseGenerationParams params) async {
if (params is! ThemeTextStyleGenerationParams) {
return '';
}
Future<String> generate(ThemeTextStyleGenerationParams params) async {
return _generateInternal(
textStyles: params.textStyles,
colors: params.colors,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
abstract final class StyleGeneratorConst {
class StyleGeneratorConst {
static const lightColorsKey = 'light';
static const darkColorsKey = 'dark';
static const lightColorSuffix = 'Light';
static const darkColorSuffix = 'Dark';

const StyleGeneratorConst._();
}
Loading