Skip to content

Commit

Permalink
Merge pull request #25 from borlnov/5-add-firebase-authentication
Browse files Browse the repository at this point in the history
Add new package for supporting firebase.
  • Loading branch information
borlnov authored Jan 8, 2025
2 parents 71c23e0 + 571e622 commit 7cfa96d
Show file tree
Hide file tree
Showing 90 changed files with 2,027 additions and 245 deletions.
60 changes: 54 additions & 6 deletions .github/workflows/dart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,16 @@ jobs:
- name: mono_repo self validate
run: dart pub global run mono_repo generate --validate
job_002:
name: "analyze; PKGS: bro_abstract_logger, bro_abstract_manager, bro_config_manager, bro_file_utility, bro_global_manager, bro_list_utility, bro_logger_manager, bro_types_utility, bro_yaml_utility; `flutter analyze --fatal-infos .`, `dart pub global activate pana && pana --line-length 100 .`"
name: "analyze; PKGS: bro_abstract_logger, bro_abstract_manager, bro_config_manager, bro_file_utility, bro_firebase_core, bro_firebase_crashlytics, bro_global_manager, bro_list_utility, bro_logger_manager, bro_platform_utility, bro_types_utility, bro_yaml_utility; `flutter analyze --fatal-infos .`, `dart pub global activate pana && pana --line-length 100 .`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_global_manager-bro_list_utility-bro_logger_manager-bro_types_utility-bro_yaml_utility;commands:analyze-command"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_firebase_core-bro_firebase_crashlytics-bro_global_manager-bro_list_utility-bro_logger_manager-bro_platform_utility-bro_types_utility-bro_yaml_utility;commands:analyze-command"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_global_manager-bro_list_utility-bro_logger_manager-bro_types_utility-bro_yaml_utility
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_firebase_core-bro_firebase_crashlytics-bro_global_manager-bro_list_utility-bro_logger_manager-bro_platform_utility-bro_types_utility-bro_yaml_utility
os:ubuntu-latest;pub-cache-hosted;sdk:stable
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
Expand Down Expand Up @@ -112,6 +112,32 @@ jobs:
run: "dart pub global activate pana && pana --line-length 100 ."
if: "always() && steps.bro_file_utility_pub_upgrade.conclusion == 'success'"
working-directory: bro_file_utility
- id: bro_firebase_core_pub_upgrade
name: bro_firebase_core; flutter pub upgrade
run: flutter pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: bro_firebase_core
- name: "bro_firebase_core; flutter analyze --fatal-infos ."
run: flutter analyze --fatal-infos .
if: "always() && steps.bro_firebase_core_pub_upgrade.conclusion == 'success'"
working-directory: bro_firebase_core
- name: "bro_firebase_core; dart pub global activate pana && pana --line-length 100 ."
run: "dart pub global activate pana && pana --line-length 100 ."
if: "always() && steps.bro_firebase_core_pub_upgrade.conclusion == 'success'"
working-directory: bro_firebase_core
- id: bro_firebase_crashlytics_pub_upgrade
name: bro_firebase_crashlytics; flutter pub upgrade
run: flutter pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: bro_firebase_crashlytics
- name: "bro_firebase_crashlytics; flutter analyze --fatal-infos ."
run: flutter analyze --fatal-infos .
if: "always() && steps.bro_firebase_crashlytics_pub_upgrade.conclusion == 'success'"
working-directory: bro_firebase_crashlytics
- name: "bro_firebase_crashlytics; dart pub global activate pana && pana --line-length 100 ."
run: "dart pub global activate pana && pana --line-length 100 ."
if: "always() && steps.bro_firebase_crashlytics_pub_upgrade.conclusion == 'success'"
working-directory: bro_firebase_crashlytics
- id: bro_global_manager_pub_upgrade
name: bro_global_manager; flutter pub upgrade
run: flutter pub upgrade
Expand Down Expand Up @@ -151,6 +177,19 @@ jobs:
run: "dart pub global activate pana && pana --line-length 100 ."
if: "always() && steps.bro_logger_manager_pub_upgrade.conclusion == 'success'"
working-directory: bro_logger_manager
- id: bro_platform_utility_pub_upgrade
name: bro_platform_utility; flutter pub upgrade
run: flutter pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: bro_platform_utility
- name: "bro_platform_utility; flutter analyze --fatal-infos ."
run: flutter analyze --fatal-infos .
if: "always() && steps.bro_platform_utility_pub_upgrade.conclusion == 'success'"
working-directory: bro_platform_utility
- name: "bro_platform_utility; dart pub global activate pana && pana --line-length 100 ."
run: "dart pub global activate pana && pana --line-length 100 ."
if: "always() && steps.bro_platform_utility_pub_upgrade.conclusion == 'success'"
working-directory: bro_platform_utility
- id: bro_types_utility_pub_upgrade
name: bro_types_utility; flutter pub upgrade
run: flutter pub upgrade
Expand Down Expand Up @@ -178,16 +217,16 @@ jobs:
if: "always() && steps.bro_yaml_utility_pub_upgrade.conclusion == 'success'"
working-directory: bro_yaml_utility
job_003:
name: "unit_test; PKGS: bro_abstract_logger, bro_abstract_manager, bro_config_manager, bro_file_utility, bro_global_manager, bro_list_utility, bro_logger_manager, bro_types_utility, bro_yaml_utility; `flutter test --flavor test .`"
name: "unit_test; PKGS: bro_abstract_logger, bro_abstract_manager, bro_config_manager, bro_file_utility, bro_global_manager, bro_list_utility, bro_logger_manager, bro_platform_utility, bro_types_utility, bro_yaml_utility; `flutter test --flavor test .`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_global_manager-bro_list_utility-bro_logger_manager-bro_types_utility-bro_yaml_utility;commands:test"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_global_manager-bro_list_utility-bro_logger_manager-bro_platform_utility-bro_types_utility-bro_yaml_utility;commands:test"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_global_manager-bro_list_utility-bro_logger_manager-bro_types_utility-bro_yaml_utility
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:bro_abstract_logger-bro_abstract_manager-bro_config_manager-bro_file_utility-bro_global_manager-bro_list_utility-bro_logger_manager-bro_platform_utility-bro_types_utility-bro_yaml_utility
os:ubuntu-latest;pub-cache-hosted;sdk:stable
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
Expand Down Expand Up @@ -261,6 +300,15 @@ jobs:
run: flutter test --flavor test .
if: "always() && steps.bro_logger_manager_pub_upgrade.conclusion == 'success'"
working-directory: bro_logger_manager
- id: bro_platform_utility_pub_upgrade
name: bro_platform_utility; flutter pub upgrade
run: flutter pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: bro_platform_utility
- name: "bro_platform_utility; flutter test --flavor test ."
run: flutter test --flavor test .
if: "always() && steps.bro_platform_utility_pub_upgrade.conclusion == 'success'"
working-directory: bro_platform_utility
- id: bro_types_utility_pub_upgrade
name: bro_types_utility; flutter pub upgrade
run: flutter pub upgrade
Expand Down
1 change: 1 addition & 0 deletions bro_abstract_logger/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ SPDX-License-Identifier: MIT

- Add log level parsing from string.
- Add flutter error management to the abstract manager.
- Add log format utility class to offer a way to format the log message.

## 1.0.1

Expand Down
1 change: 1 addition & 0 deletions bro_abstract_logger/lib/bro_abstract_logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ export 'src/services/abstract_logger_manager.dart';
export 'src/services/abstract_multi_logger_manager.dart';
export 'src/services/void_logger_manager.dart';
export 'src/types/logs_level.dart';
export 'src/utilities/log_format_utility.dart';
20 changes: 0 additions & 20 deletions bro_abstract_logger/lib/src/helpers/default_logger_helper.dart

This file was deleted.

47 changes: 13 additions & 34 deletions bro_abstract_logger/lib/src/helpers/default_print_logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
//
// SPDX-License-Identifier: MIT

import 'package:bro_abstract_logger/src/mixins/mixin_external_logger.dart';
import 'package:bro_abstract_logger/src/types/logs_level.dart';
import 'package:bro_abstract_logger/bro_abstract_logger.dart';
import 'package:flutter/foundation.dart';

/// A default logger that print logs to the console.
Expand All @@ -22,9 +21,6 @@ class DefaultPrintLogger with MixinExternalLogger {
return _instance!;
}

/// This is the default separator used to separate categories in the log message.
static const String _defaultCategorySeparator = "/";

/// This is the default prefix used to add a category to the log message.
///
/// This is used to see when we use the [DefaultPrintLogger].
Expand All @@ -48,9 +44,10 @@ class DefaultPrintLogger with MixinExternalLogger {
return;
}

_debugPrint(_formatMessage(
_debugPrint(LogFormatUtility.formatLogMessages(
time: DateTime.now(),
level: level,
categories: categories,
categories: [_defaultCategoryPrefix, ...categories],
message: message,
));
}
Expand All @@ -70,42 +67,24 @@ class DefaultPrintLogger with MixinExternalLogger {
return;
}

_debugPrint(_formatMessage(
_debugPrint(LogFormatUtility.formatLogMessages(
time: DateTime.now(),
level: isFatal ? LogsLevel.fatal : LogsLevel.error,
categories: categories,
message: exception,
categories: [_defaultCategoryPrefix, ...categories],
exception: exception,
stackTrace: stackTrace,
));
if (stackTrace != null) {
_debugPrint(_formatMessage(
level: isFatal ? LogsLevel.fatal : LogsLevel.error,
categories: categories,
message: stackTrace,
));
}
}

/// This method tests if a log is loggable thanks to the [minLevel].
bool _testIfLoggable(LogsLevel level) => level.index >= minLevel.index;

/// This method formats a log message with the provided [level], [categories] and [message].
///
/// It adds a timestamp to the log message.
String _formatMessage({
required LogsLevel level,
required List<String> categories,
// We use dynamic here to be able to log any type of exception
// ignore: avoid_annotating_with_dynamic
required dynamic message,
}) =>
"${DateTime.now().toUtc().toIso8601String()} - [${level.name.toLowerCase()}] [${[
_defaultCategoryPrefix,
...categories,
].join(_defaultCategorySeparator)}]: $message";

/// This uses the `print` function to log messages, only in debug mode.
void _debugPrint(Object? message) {
void _debugPrint(List<String> messages) {
if (kDebugMode) {
print(message);
for (final message in messages) {
print(message);
}
}
}

Expand Down
13 changes: 13 additions & 0 deletions bro_abstract_logger/lib/src/helpers/logger_helper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
//
// SPDX-License-Identifier: MIT

import 'package:bro_abstract_logger/src/helpers/default_print_logger.dart';
import 'package:bro_abstract_logger/src/helpers/sub_logger_helper.dart';
import 'package:bro_abstract_logger/src/helpers/void_print_logger.dart';
import 'package:bro_abstract_logger/src/mixins/mixin_external_logger.dart';
import 'package:bro_abstract_logger/src/types/logs_level.dart';
import 'package:flutter/foundation.dart';
Expand Down Expand Up @@ -48,6 +50,17 @@ class LoggerHelper {
],
_logger = logger;

/// Create a default logger helper.
///
/// If [printLogs] is true, the logger will use [DefaultPrintLogger.instance].
/// Otherwise, it will use [VoidPrintLogger.instance] (which print nothing).
factory LoggerHelper.initWithDefaultLogger({
bool printLogs = true,
}) =>
LoggerHelper(
logger: printLogs ? DefaultPrintLogger.instance : VoidPrintLogger.instance,
);

/// This is the constructor for the sub-logger.
///
/// [categories] has to contain the parent categories.
Expand Down
38 changes: 5 additions & 33 deletions bro_abstract_logger/lib/src/helpers/multi_logger_helper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,45 +3,17 @@
// SPDX-License-Identifier: MIT

import 'package:bro_abstract_logger/src/helpers/logger_helper.dart';
import 'package:bro_abstract_logger/src/types/logs_level.dart';
import 'package:bro_abstract_logger/src/helpers/multi_print_logger.dart';

/// A [LoggerHelper] that logs to multiple [LoggerHelper]s.
class MultiLoggerHelper extends LoggerHelper {
/// The list of [LoggerHelper]s to log to.
final List<LoggerHelper> _loggers;
final List<LoggerHelper> loggers;

/// Create a [MultiLoggerHelper] with multiple [LoggerHelper]s.
MultiLoggerHelper({
required List<LoggerHelper> loggers,
}) : _loggers = loggers,
super.subLogger(
categories: [],
minLevel: null,
required this.loggers,
}) : super(
logger: MultiPrintLogger(loggers: loggers),
);

/// {@macro bro_abstract_logger.LoggerHelper.log}
@override
void log(LogsLevel level, String message) {
for (final logger in _loggers) {
logger.log(level, message);
}
}

/// {@macro bro_abstract_logger.LoggerHelper.logErrorWithException}
@override
void logErrorWithException(
// We use dynamic here to be able to log any type of exception
// ignore: avoid_annotating_with_dynamic
dynamic exception, {
bool isFatal = false,
StackTrace? stackTrace,
}) {
for (final logger in _loggers) {
logger.logErrorWithException(
exception,
isFatal: isFatal,
stackTrace: stackTrace,
);
}
}
}
51 changes: 51 additions & 0 deletions bro_abstract_logger/lib/src/helpers/multi_print_logger.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// SPDX-FileCopyrightText: 2025 Benoit Rolandeau <[email protected]>
//
// SPDX-License-Identifier: MIT

import 'package:bro_abstract_logger/bro_abstract_logger.dart';

/// This printer allows to print to multiple [LoggerHelper]s.
class MultiPrintLogger with MixinExternalLogger {
/// The list of [LoggerHelper]s to log to.
final List<LoggerHelper> _otherLoggers;

/// Create a [MultiPrintLogger] with multiple [LoggerHelper]s.
MultiPrintLogger({
required List<LoggerHelper> loggers,
}) : _otherLoggers = loggers;

/// {@macro bro_abstract_logger.MixinExternalLogger.log}
@override
void log(
LogsLevel level,
String message, {
List<String> categories = const [],
}) {
for (final logger in _otherLoggers) {
logger.log(level, message);
}
}

/// {@macro bro_abstract_logger.MixinExternalLogger.logErrorWithException}
@override
void logErrorWithException(
// We use dynamic here to be able to log any type of exception
// ignore: avoid_annotating_with_dynamic
dynamic exception, {
StackTrace? stackTrace,
bool isFatal = false,
List<String> categories = const [],
}) {
for (final logger in _otherLoggers) {
logger.logErrorWithException(
exception,
stackTrace: stackTrace,
isFatal: isFatal,
);
}
}

/// {@macro bro_abstract_logger.MixinExternalLogger.dispose}
@override
Future<void> dispose() async {}
}
Loading

0 comments on commit 7cfa96d

Please sign in to comment.