refactor(app_services): Удалить пример с web

This commit is contained in:
PetrovY
2025-05-28 16:44:42 +03:00
parent 8692757da7
commit 988e293899
10 changed files with 2 additions and 226 deletions

View File

@@ -1,29 +0,0 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
/pubspec.lock
**/doc/api/
.dart_tool/
build/

View File

@@ -1,10 +0,0 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: "7482962148e8d758338d8a28f589f317e1e42ba4"
channel: "stable"
project_type: package

View File

@@ -1 +0,0 @@
# Базовые сервисы для приложения

View File

@@ -1,89 +0,0 @@
include: package:flutter_lints/flutter.yaml
# Включает правила из:
# - package:lints/core.yaml: основные правила критических проблем
# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода
# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter
analyzer:
exclude:
- "android/**"
- "assets/**"
- "build/**"
- "config/**"
- "core/**"
- "res/**"
- "ios/**"
- "**/*.g.dart"
- "**/*.config.dart"
- "**/*.gen.dart"
- "**/*.freezed.dart"
- "**/generated/*"
- "**/*.gr.dart"
- "**/*.yaml"
- "app_services/aurora/**"
- "/app_services/aurora/**"
- "**/app_services/aurora/**"
- "**/*.lock.dart"
errors:
# Переопределения уровней ошибок (error/warning/info)
avoid_dynamic_calls: error # Запрещает использование dynamic для вызовов методов
avoid_returning_null_for_future: error # Запрещает возврат null вместо Future
avoid_slow_async_io: warning # Предупреждает о медленных асинхронных операциях ввода/вывода
avoid_type_to_string: warning # Предупреждает о неправильном использовании toString() для типов
cancel_subscriptions: error # Требует отмены подписок, предотвращает утечки памяти
close_sinks: error # Требует закрытия sink-ов, предотвращает утечки ресурсов
comment_references: warning # Проверяет корректность ссылок в комментариях
always_declare_return_types: error # Требует явного указания возвращаемых типов методов
always_require_non_null_named_parameters: warning # Требует использования @required для ненулевых параметров
avoid_bool_literals_in_conditional_expressions: warning # Запрещает избыточные булевы литералы в условных выражениях
avoid_return_types_on_setters: warning # Запрещает возвращаемые типы для сеттеров
avoid_returning_null: error # Запрещает возврат null
avoid_setters_without_getters: error # Требует создания геттера при наличии сеттера
avoid_void_async: error # Запрещает использование void для асинхронных функций
constant_identifier_names: error # Проверяет правильность именования констант
unnecessary_new: warning # Запрещает избыточное использование ключевого слова new
use_decorated_box: warning # Рекомендует использовать DecoratedBox вместо Container
use_colored_box: warning # Рекомендует использовать ColoredBox вместо Container с цветом
linter:
rules:
# Нестандартные правила или правила с измененными значениями
always_put_required_named_parameters_first: true # Требовать размещать обязательные именованные параметры первыми
avoid_catches_without_on_clauses: true # Избегать catch без указания типа исключения
avoid_catching_errors: true # Избегать перехвата ошибок типа Error
avoid_equals_and_hash_code_on_mutable_classes: true # Избегать equals и hashCode в изменяемых классах
avoid_escaping_inner_quotes: true # Избегать экранирования внутренних кавычек
avoid_field_initializers_in_const_classes: true # Избегать инициализаторов полей в константных классах
avoid_implementing_value_types: true # Избегать реализации интерфейсов значимых типов
avoid_multiple_declarations_per_line: false # Разрешать несколько объявлений в одной строке
avoid_positional_boolean_parameters: true # Избегать позиционных булевых параметров
avoid_private_typedef_functions: true # Избегать приватных typedef-функций
avoid_redundant_argument_values: true # Избегать избыточных значений аргументов
avoid_returning_this: true # Избегать возврата this
cascade_invocations: true # Использовать каскадные вызовы
deprecated_consistency: true # Поддерживать согласованность устаревших элементов
do_not_use_environment: false # Разрешить использование Environment
leading_newlines_in_multiline_strings: true # Начинать многострочные строки с новой строки
no_runtimeType_toString: true # Не использовать runtimeType.toString()
one_member_abstracts: false # Разрешать абстрактные классы с одним методом
only_throw_errors: true # Выбрасывать только объекты Error
parameter_assignments: true # Запрещать присваивание значений параметрам
prefer_asserts_with_message: true # Использовать сообщения с assert
prefer_constructors_over_static_methods: true # Предпочитать конструкторы статическим методам
prefer_final_in_for_each: true # Использовать final в for-each циклах
prefer_final_locals: true # Использовать final для локальных переменных
public_member_api_docs: false # Не требовать документацию для всех публичных членов
require_trailing_commas: true # Требовать запятые в конце для улучшения форматирования
sort_constructors_first: true # Требовать размещать конструкторы первыми
sort_pub_dependencies: false # Не требовать сортировки зависимостей в pubspec
sort_unnamed_constructors_first: false # Не требовать размещать безымянные конструкторы первыми
use_is_even_rather_than_modulo: true # Использовать isEven вместо % 2 == 0
use_late_for_private_fields_and_variables: false # Не требовать late для приватных полей
use_setters_to_change_properties: true # Использовать сеттеры для изменения свойств
use_string_buffers: true # Использовать StringBuffer для сложной конкатенации
use_to_and_as_if_applicable: true # Использовать методы to и as при применимости
no_literal_bool_comparisons: true # Запрещать сравнения с литералами true/false
use_key_in_widget_constructors: true # Обязательное указание ключа для stateful/stateless widgets
always_use_package_imports: true # Всегда использовать package: импорты

View File

@@ -1,4 +0,0 @@
library;
export 'src/app_path_provider.dart';
export 'src/app_secure_storage.dart';

View File

@@ -1,19 +0,0 @@
import 'package:i_app_services/i_app_services.dart';
/// {@template app_path_provider}
/// Класс для WEB реализации сервиса работы с путями
/// {@endtemplate}
class AppPathProvider implements IPathProvider {
/// {@macro app_path_provider}
const AppPathProvider();
/// Наименование сервиса
static const name = 'WebAppPathProvider';
@override
Future<String?> getAppDocumentsDirectoryPath() async {
// В веб у нас нет доступа к файловой системе.
// Возвращаем null, так как не можем предоставить путь к директории.
return null;
}
}

View File

@@ -1,47 +0,0 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:i_app_services/i_app_services.dart';
/// {@template app_secure_storage}
/// Класс для Aurora реализации сервис по работе с защищенным хранилищем
/// [secretKey] - ключ для шифрования данных, если нужен
/// {@endtemplate}
final class AppSecureStorage implements ISecureStorage {
/// @macro app_secure_storage
AppSecureStorage({this.secretKey});
@override
final String? secretKey;
static const name = 'WebAppSecureStorage';
/// Экземпляр хранилища данных
final _box = const FlutterSecureStorage();
@override
Future<void> deleteAll() async {
await _box.deleteAll();
}
@override
Future<void> delete(String key) async {
await _box.delete(key: key);
}
@override
Future<bool> containsKey(String key) {
return _box.containsKey(key: key);
}
@override
Future<String?> read(String key) async {
return _box.read(key: key);
}
@override
Future<void> write(String key, String value) async {
await _box.write(key: key, value: value);
}
@override
String get nameImpl => AppSecureStorage.name;
}

View File

@@ -1,24 +0,0 @@
name: app_services
description: "Базовые сервисы для приложения"
version: 0.0.1
publish_to: none
environment:
sdk: ^3.8.0
dependencies:
flutter:
sdk: flutter
# Зависимости для сервиса защищенного хранилища
flutter_secure_storage: 9.2.4
# Зависимости для сервиса незащищенного хранилища
shared_preferences: 2.3.5
# Обязательные интерфейсы
i_app_services:
path: ../../i_app_services
dev_dependencies:
flutter_lints: 6.0.0

View File

@@ -33,7 +33,7 @@ packages:
app_services:
dependency: "direct main"
description:
path: "app_services/web/app_services"
path: "app_services/base/app_services"
relative: true
source: path
version: "0.0.1"

View File

@@ -39,9 +39,8 @@ dependencies:
### реализация сервисов ###
### В зависимости от платформы ###
app_services:
#path: app_services/base/app_services ### Базовая реализация ###
path: app_services/base/app_services ### Базовая реализация ###
#path: app_services/aurora/app_services ### Аврора реализация ###
path: app_services/web/app_services ### Web реализация ###
dev_dependencies:
flutter_test: