diff --git a/CHANGELOG.md b/CHANGELOG.md index 7adba58..d2be1a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.7.4 +- Update packages +- Add new asTOr and asT safe json convert functions. + ## 0.7.2-0.7.3 - Enhance logging methods in `PlayxCore` to use the new `PlayxLogger` system. diff --git a/README.md b/README.md index 5b73c13..83d39dd 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Add `playx_core` to your `pubspec.yaml` dependencies: ```yaml dependencies: - playx_core: ^0.6.2 + playx_core: ^0.7.4 ``` ## Usage diff --git a/example/pubspec.lock b/example/pubspec.lock index afbbc59..04305af 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -98,10 +98,10 @@ packages: dependency: transitive description: name: flutter_dotenv - sha256: b7c7be5cd9f6ef7a78429cabd2774d3c4af50e79cb2b7593e3d5d763ef95c61b + sha256: d4130c4a43e0b13fefc593bc3961f2cb46e30cb79e253d4a526b1b5d24ae1ce4 url: "https://pub.dev" source: hosted - version: "5.2.1" + version: "6.0.0" flutter_lints: dependency: "direct dev" description: @@ -172,10 +172,10 @@ packages: dependency: transitive description: name: get_it - sha256: f126a3e286b7f5b578bf436d5592968706c4c1de28a228b870ce375d9f743103 + sha256: "84792561b731b6463d053e9761a5236da967c369da10b134b8585a5e18429956" url: "https://pub.dev" source: hosted - version: "8.0.3" + version: "9.0.5" js: dependency: transitive description: @@ -188,26 +188,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -310,7 +310,7 @@ packages: path: ".." relative: true source: path - version: "0.7.3" + version: "0.7.4" plugin_platform_interface: dependency: transitive description: @@ -424,10 +424,10 @@ packages: dependency: transitive description: name: talker_logger - sha256: f1755d517e5ca8b119b65ad2fc1079746a8d03bd565e75d6b9d5aedf5c1d5b15 + sha256: "8218836d871ea5ab1ec616cffe3cdae84e8fb44022d5cc04c95d7b220572b8fb" url: "https://pub.dev" source: hosted - version: "4.9.1" + version: "5.0.2" term_glyph: dependency: transitive description: @@ -440,18 +440,18 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: @@ -480,10 +480,10 @@ packages: dependency: transitive description: name: worker_manager - sha256: af3db5e6c6c8a74ab8f72e25e9d305f8ff60984ca55551397e3c8828ebf30509 + sha256: "1bce9f894a0c187856f5fc0e150e7fe1facce326f048ca6172947754dac3d4f3" url: "https://pub.dev" source: hosted - version: "7.2.6" + version: "7.2.7" xdg_directories: dependency: transitive description: @@ -493,5 +493,5 @@ packages: source: hosted version: "1.0.3" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.8.0-0 <4.0.0" flutter: ">=3.27.0" diff --git a/lib/src/logger/base_logger.dart b/lib/src/logger/base_logger.dart index 86d313a..888445b 100644 --- a/lib/src/logger/base_logger.dart +++ b/lib/src/logger/base_logger.dart @@ -40,8 +40,8 @@ abstract class PlayxBaseLogger { /// Alias for [error] void e(dynamic message, - {Object? error, StackTrace? stackTrace, String? tag}) => this.error(message, - error: error, stackTrace: stackTrace, tag: tag); + {Object? error, StackTrace? stackTrace, String? tag}) => + this.error(message, error: error, stackTrace: stackTrace, tag: tag); /// Alias for [critical] void c(dynamic message, {String? tag}) => critical(message, tag: tag); diff --git a/lib/src/logger/playx_logger.dart b/lib/src/logger/playx_logger.dart index 16c1940..d64b803 100644 --- a/lib/src/logger/playx_logger.dart +++ b/lib/src/logger/playx_logger.dart @@ -9,7 +9,7 @@ class DefaultColoredLoggerFormatter implements LoggerFormatter { String fmt(LogDetails details, TalkerLoggerSettings settings) { final msg = details.message?.toString() ?? ''; final coloredMsg = - msg.split('\n').map((e) => details.pen.write(e)).toList().join('\n'); + msg.split('\n').map((e) => details.pen.write(e)).toList().join('\n'); return coloredMsg; } } @@ -55,9 +55,13 @@ class PlayxLogger { bool useColoredFormatter = false, }) { final logger = TalkerPlayxLogger( - settings: settings ?? PlayxLoggerSettings( - formatter: useColoredFormatter? DefaultColoredLoggerFormatter() : ExtendedLoggerFormatter(), - ), name: name); + settings: settings ?? + PlayxLoggerSettings( + formatter: useColoredFormatter + ? DefaultColoredLoggerFormatter() + : ExtendedLoggerFormatter(), + ), + name: name); name ??= 'PLAYX LOGGER'; _loggers[name] = logger; @@ -67,8 +71,6 @@ class PlayxLogger { return logger; } - - /// Retrieves a logger instance by its [name]. /// /// Returns `null` if no logger exists with the given name. diff --git a/lib/src/utils/safe_json_convert.dart b/lib/src/utils/safe_json_convert.dart index 98c7335..9ff9468 100644 --- a/lib/src/utils/safe_json_convert.dart +++ b/lib/src/utils/safe_json_convert.dart @@ -304,3 +304,13 @@ T? asTOrNull(dynamic json, String key, } return null; } + +T asTOr(dynamic json, String key, + {T Function(dynamic json)? fromJson, required T fallback}) { + return asTOrNull(json, key, fromJson: fromJson) ?? fallback; +} + +T asT(dynamic json, String key, {T Function(dynamic json)? fromJson}) { + return asTOrNull(json, key, fromJson: fromJson) ?? + (throw FormatException('Invalid <$T> value for key: $key')); +} diff --git a/pubspec.lock b/pubspec.lock index cc03ebf..4ab9fab 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -90,10 +90,10 @@ packages: dependency: "direct main" description: name: flutter_dotenv - sha256: b7c7be5cd9f6ef7a78429cabd2774d3c4af50e79cb2b7593e3d5d763ef95c61b + sha256: d4130c4a43e0b13fefc593bc3961f2cb46e30cb79e253d4a526b1b5d24ae1ce4 url: "https://pub.dev" source: hosted - version: "5.2.1" + version: "6.0.0" flutter_lints: dependency: "direct dev" description: @@ -164,10 +164,10 @@ packages: dependency: "direct main" description: name: get_it - sha256: f126a3e286b7f5b578bf436d5592968706c4c1de28a228b870ce375d9f743103 + sha256: "84792561b731b6463d053e9761a5236da967c369da10b134b8585a5e18429956" url: "https://pub.dev" source: hosted - version: "8.0.3" + version: "9.0.5" js: dependency: transitive description: @@ -180,26 +180,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: "direct dev" description: @@ -409,10 +409,10 @@ packages: dependency: "direct main" description: name: talker_logger - sha256: f1755d517e5ca8b119b65ad2fc1079746a8d03bd565e75d6b9d5aedf5c1d5b15 + sha256: "8218836d871ea5ab1ec616cffe3cdae84e8fb44022d5cc04c95d7b220572b8fb" url: "https://pub.dev" source: hosted - version: "4.9.1" + version: "5.0.2" term_glyph: dependency: transitive description: @@ -425,18 +425,18 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: @@ -465,10 +465,10 @@ packages: dependency: "direct main" description: name: worker_manager - sha256: af3db5e6c6c8a74ab8f72e25e9d305f8ff60984ca55551397e3c8828ebf30509 + sha256: "1bce9f894a0c187856f5fc0e150e7fe1facce326f048ca6172947754dac3d4f3" url: "https://pub.dev" source: hosted - version: "7.2.6" + version: "7.2.7" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 08179ca..4694576 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: playx_core description: Core package for playx eco system contains shared classes and utilities. -version: 0.7.3 +version: 0.7.4 homepage: https://sourcya.io/ repository: https://github.com/playx-flutter/playx_core issue_tracker: https://github.com/playx-flutter/playx_core/issues @@ -22,10 +22,10 @@ dependencies: equatable: ^2.0.7 sprintf: ^7.0.0 flutter_secure_storage: ^9.2.4 - flutter_dotenv: ^5.2.1 - get_it: ^8.0.3 - worker_manager: ^7.2.6 - talker_logger: ^4.9.1 + flutter_dotenv: ^6.0.0 + get_it: ^9.0.5 + worker_manager: ^7.2.7 + talker_logger: ^5.0.2 web: ^1.1.1 dev_dependencies: diff --git a/test/extensions/context/colors_test.dart b/test/extensions/context/colors_test.dart index 7fde903..882b3c6 100644 --- a/test/extensions/context/colors_test.dart +++ b/test/extensions/context/colors_test.dart @@ -97,7 +97,8 @@ void main() { await tester.pumpWidget( MaterialApp( theme: ThemeData( - bottomAppBarTheme: const BottomAppBarTheme(color: Color(0xFF00FF00)), + bottomAppBarTheme: + const BottomAppBarThemeData(color: Color(0xFF00FF00)), ), home: Builder( builder: (context) {