From d30b48fc05ee6b58a8d2625f2e173722321322d0 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sat, 15 Feb 2025 13:31:28 +0500 Subject: [PATCH 1/8] Init dart_frog logger --- packages/talker_dart_frog_logger/.gitignore | 7 + packages/talker_dart_frog_logger/CHANGELOG.md | 3 + packages/talker_dart_frog_logger/README.md | 39 ++++++ .../analysis_options.yaml | 30 +++++ .../lib/src/talker_dart_frog_logger_base.dart | 123 ++++++++++++++++++ .../lib/talker_dart_frog_logger.dart | 8 ++ packages/talker_dart_frog_logger/pubspec.yaml | 17 +++ 7 files changed, 227 insertions(+) create mode 100644 packages/talker_dart_frog_logger/.gitignore create mode 100644 packages/talker_dart_frog_logger/CHANGELOG.md create mode 100644 packages/talker_dart_frog_logger/README.md create mode 100644 packages/talker_dart_frog_logger/analysis_options.yaml create mode 100644 packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart create mode 100644 packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart create mode 100644 packages/talker_dart_frog_logger/pubspec.yaml diff --git a/packages/talker_dart_frog_logger/.gitignore b/packages/talker_dart_frog_logger/.gitignore new file mode 100644 index 000000000..3cceda557 --- /dev/null +++ b/packages/talker_dart_frog_logger/.gitignore @@ -0,0 +1,7 @@ +# https://dart.dev/guides/libraries/private-files +# Created by `dart pub` +.dart_tool/ + +# Avoid committing pubspec.lock for library packages; see +# https://dart.dev/guides/libraries/private-files#pubspeclock. +pubspec.lock diff --git a/packages/talker_dart_frog_logger/CHANGELOG.md b/packages/talker_dart_frog_logger/CHANGELOG.md new file mode 100644 index 000000000..effe43c82 --- /dev/null +++ b/packages/talker_dart_frog_logger/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version. diff --git a/packages/talker_dart_frog_logger/README.md b/packages/talker_dart_frog_logger/README.md new file mode 100644 index 000000000..8831761b8 --- /dev/null +++ b/packages/talker_dart_frog_logger/README.md @@ -0,0 +1,39 @@ + + +TODO: Put a short description of the package here that helps potential users +know whether this package might be useful for them. + +## Features + +TODO: List what your package can do. Maybe include images, gifs, or videos. + +## Getting started + +TODO: List prerequisites and provide or point to information on how to +start using the package. + +## Usage + +TODO: Include short and useful examples for package users. Add longer examples +to `/example` folder. + +```dart +const like = 'sample'; +``` + +## Additional information + +TODO: Tell users more about the package: where to find more information, how to +contribute to the package, how to file issues, what response they can expect +from the package authors, and more. diff --git a/packages/talker_dart_frog_logger/analysis_options.yaml b/packages/talker_dart_frog_logger/analysis_options.yaml new file mode 100644 index 000000000..dee8927aa --- /dev/null +++ b/packages/talker_dart_frog_logger/analysis_options.yaml @@ -0,0 +1,30 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart b/packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart new file mode 100644 index 000000000..6fe491dc0 --- /dev/null +++ b/packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart @@ -0,0 +1,123 @@ +import 'package:dart_frog/dart_frog.dart'; +import 'package:talker/talker.dart'; + +class TalkerDartFrogLoggerSettings { + const TalkerDartFrogLoggerSettings({ + this.logRequest = true, + this.logResponse = true, + this.printRequestHeaders = false, + this.printResponseHeaders = false, + this.printResponseBody = false, + }); + + final bool logRequest; + final bool logResponse; + final bool printRequestHeaders; + final bool printResponseHeaders; + final bool printResponseBody; +} + +Handler loggerMiddleware({ + required Handler handler, + TalkerDartFrogLoggerSettings settings = const TalkerDartFrogLoggerSettings(), +}) { + return (context) async { + final talker = context.read(); + + if (settings.logRequest) { + talker.logCustom(RequestLog(context.request, settings: settings)); + } + + final stopwatch = Stopwatch()..start(); + final response = await handler(context); + stopwatch.stop(); + + final time = stopwatch.elapsedMilliseconds; + + if (settings.logResponse) { + talker.logCustom(ResponseLog( + request: context.request, + response: response, + settings: settings, + resTime: time, + )); + } + return response; + }; +} + +class RequestLog extends TalkerLog { + RequestLog(this.request, {required this.settings}) : super('req'); + + final Request request; + final TalkerDartFrogLoggerSettings settings; + + @override + String? get title => 'req'; + + @override + String generateTextMessage({ + TimeFormat timeFormat = TimeFormat.timeAndSeconds, + }) { + final sb = StringBuffer(); + sb.write(' ${displayTitleWithTime(timeFormat: timeFormat)}'); + sb.write('[${request.method.value}]'); + sb.write(' ${request.uri.path}'); + if (request.uri.query.isNotEmpty) { + sb.write('?${request.uri.query}'); + } + if (settings.printRequestHeaders && request.headers.isNotEmpty) { + sb.write('\n'); + for (final entry in request.headers.entries) { + sb.write('${entry.key}: ${entry.value}\n'); + } + } + return sb.toString(); + } +} + +class ResponseLog extends TalkerLog { + ResponseLog({ + required this.response, + required this.request, + required this.settings, + required this.resTime, + }) : super('res'); + + final Request request; + final Response response; + final TalkerDartFrogLoggerSettings settings; + final int resTime; + + @override + String? get title => 'res'; + + @override + String generateTextMessage({ + TimeFormat timeFormat = TimeFormat.timeAndSeconds, + }) { + final sb = StringBuffer(); + + sb.write(' ${displayTitleWithTime(timeFormat: timeFormat)}'); + sb.write('[${request.method.value}]'); + sb.write(' ${request.uri.path}'); + if (request.uri.query.isNotEmpty) { + sb.write('?${request.uri.query}'); + } + sb.write(' | ${response.statusCode}'); + sb.write(' | $resTime ms'); + + if (settings.printResponseHeaders && response.headers.isNotEmpty) { + sb.write('\n'); + for (final entry in response.headers.entries) { + sb.write('${entry.key}: ${entry.value}\n'); + } + } + + if (settings.printResponseBody) { + sb.write('\n'); + sb.write(response.body); + } + return sb.toString(); + } +} diff --git a/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart b/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart new file mode 100644 index 000000000..e1fad9263 --- /dev/null +++ b/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart @@ -0,0 +1,8 @@ +/// Support for doing something awesome. +/// +/// More dartdocs go here. +library; + +export 'src/talker_dart_frog_logger_base.dart'; + +// TODO: Export any libraries intended for clients of this package. diff --git a/packages/talker_dart_frog_logger/pubspec.yaml b/packages/talker_dart_frog_logger/pubspec.yaml new file mode 100644 index 000000000..20bb01d1f --- /dev/null +++ b/packages/talker_dart_frog_logger/pubspec.yaml @@ -0,0 +1,17 @@ +name: talker_dart_frog_logger +description: A starting point for Dart libraries or applications. +version: 1.0.0 +# repository: https://github.com/my_org/my_repo + +environment: + sdk: ^3.6.1 + +# Add regular dependencies here. +dependencies: + dart_frog: ^1.2.0 + talker: ^4.6.11 + # path: ^1.8.0 + +dev_dependencies: + lints: ^5.0.0 + test: ^1.24.0 From c173d454d7ddd356a8b8e175da357b2b14fe85a5 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sat, 15 Feb 2025 13:45:13 +0500 Subject: [PATCH 2/8] [dart_frog] Update dart sdk version --- packages/talker_dart_frog_logger/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/talker_dart_frog_logger/pubspec.yaml b/packages/talker_dart_frog_logger/pubspec.yaml index 20bb01d1f..0dc34cb43 100644 --- a/packages/talker_dart_frog_logger/pubspec.yaml +++ b/packages/talker_dart_frog_logger/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0 # repository: https://github.com/my_org/my_repo environment: - sdk: ^3.6.1 + sdk: ">=2.17.0 <4.0.0" # Add regular dependencies here. dependencies: From 8d68d77db9882cebe22b4b317e868a1cbcd25578 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sat, 15 Feb 2025 14:10:16 +0500 Subject: [PATCH 3/8] [talker_dart_frog_logger] Update dart sdk version --- packages/talker_dart_frog_logger/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/talker_dart_frog_logger/pubspec.yaml b/packages/talker_dart_frog_logger/pubspec.yaml index 0dc34cb43..222200f4d 100644 --- a/packages/talker_dart_frog_logger/pubspec.yaml +++ b/packages/talker_dart_frog_logger/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0 # repository: https://github.com/my_org/my_repo environment: - sdk: ">=2.17.0 <4.0.0" + sdk: ">=2.19.0 <3.0.0" # Add regular dependencies here. dependencies: From 3412795626b0b14bbe36162cacb8371754dfe656 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sat, 15 Feb 2025 17:36:08 +0500 Subject: [PATCH 4/8] [dart_frog] Refactor and decompose code base --- .../lib/src/logger.dart | 36 +++++++++++++++ .../lib/src/settings.dart | 15 +++++++ ...frog_logger_base.dart => talker_logs.dart} | 45 +------------------ .../lib/talker_dart_frog_logger.dart | 8 +--- 4 files changed, 54 insertions(+), 50 deletions(-) create mode 100644 packages/talker_dart_frog_logger/lib/src/logger.dart create mode 100644 packages/talker_dart_frog_logger/lib/src/settings.dart rename packages/talker_dart_frog_logger/lib/src/{talker_dart_frog_logger_base.dart => talker_logs.dart} (64%) diff --git a/packages/talker_dart_frog_logger/lib/src/logger.dart b/packages/talker_dart_frog_logger/lib/src/logger.dart new file mode 100644 index 000000000..89d8eaf0b --- /dev/null +++ b/packages/talker_dart_frog_logger/lib/src/logger.dart @@ -0,0 +1,36 @@ +import 'package:dart_frog/dart_frog.dart'; +import 'package:talker/talker.dart'; + +import 'settings.dart'; +import 'talker_logs.dart'; + +Handler loggerMiddleware({ + required Handler handler, + TalkerDartFrogLoggerSettings settings = const TalkerDartFrogLoggerSettings(), +}) { + return (context) async { + final talker = context.read(); + + if (settings.logRequest) { + final requestLog = RequestLog(context.request, settings: settings); + talker.logCustom(requestLog); + } + + final stopwatch = Stopwatch()..start(); + final response = await handler(context); + stopwatch.stop(); + + final time = stopwatch.elapsedMilliseconds; + + if (settings.logResponse) { + final responseLog = ResponseLog( + request: context.request, + response: response, + settings: settings, + resTime: time, + ); + talker.logCustom(responseLog); + } + return response; + }; +} diff --git a/packages/talker_dart_frog_logger/lib/src/settings.dart b/packages/talker_dart_frog_logger/lib/src/settings.dart new file mode 100644 index 000000000..afc755481 --- /dev/null +++ b/packages/talker_dart_frog_logger/lib/src/settings.dart @@ -0,0 +1,15 @@ +class TalkerDartFrogLoggerSettings { + const TalkerDartFrogLoggerSettings({ + this.logRequest = true, + this.logResponse = true, + this.printRequestHeaders = false, + this.printResponseHeaders = false, + this.printResponseBody = false, + }); + + final bool logRequest; + final bool logResponse; + final bool printRequestHeaders; + final bool printResponseHeaders; + final bool printResponseBody; +} diff --git a/packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart b/packages/talker_dart_frog_logger/lib/src/talker_logs.dart similarity index 64% rename from packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart rename to packages/talker_dart_frog_logger/lib/src/talker_logs.dart index 6fe491dc0..bc7813c25 100644 --- a/packages/talker_dart_frog_logger/lib/src/talker_dart_frog_logger_base.dart +++ b/packages/talker_dart_frog_logger/lib/src/talker_logs.dart @@ -1,50 +1,7 @@ import 'package:dart_frog/dart_frog.dart'; import 'package:talker/talker.dart'; -class TalkerDartFrogLoggerSettings { - const TalkerDartFrogLoggerSettings({ - this.logRequest = true, - this.logResponse = true, - this.printRequestHeaders = false, - this.printResponseHeaders = false, - this.printResponseBody = false, - }); - - final bool logRequest; - final bool logResponse; - final bool printRequestHeaders; - final bool printResponseHeaders; - final bool printResponseBody; -} - -Handler loggerMiddleware({ - required Handler handler, - TalkerDartFrogLoggerSettings settings = const TalkerDartFrogLoggerSettings(), -}) { - return (context) async { - final talker = context.read(); - - if (settings.logRequest) { - talker.logCustom(RequestLog(context.request, settings: settings)); - } - - final stopwatch = Stopwatch()..start(); - final response = await handler(context); - stopwatch.stop(); - - final time = stopwatch.elapsedMilliseconds; - - if (settings.logResponse) { - talker.logCustom(ResponseLog( - request: context.request, - response: response, - settings: settings, - resTime: time, - )); - } - return response; - }; -} +import 'settings.dart'; class RequestLog extends TalkerLog { RequestLog(this.request, {required this.settings}) : super('req'); diff --git a/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart b/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart index e1fad9263..40022b499 100644 --- a/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart +++ b/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart @@ -1,8 +1,4 @@ -/// Support for doing something awesome. -/// -/// More dartdocs go here. library; -export 'src/talker_dart_frog_logger_base.dart'; - -// TODO: Export any libraries intended for clients of this package. +export 'src/logger.dart'; +export 'src/settings.dart'; From 8b757322eced3b81a95c423b398a55f7676902a0 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 18 Feb 2025 17:24:29 +0500 Subject: [PATCH 5/8] Add DartFrogLoggerFormatter --- .../example/router/_middleware.dart | 18 ++++++++++++++++++ .../example/router/pubspec.yaml | 17 +++++++++++++++++ .../lib/src/logger.dart | 3 +-- .../lib/src/logger_formatter.dart | 11 +++++++++++ .../lib/talker_dart_frog_logger.dart | 3 +++ 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 packages/talker_dart_frog_logger/example/router/_middleware.dart create mode 100644 packages/talker_dart_frog_logger/example/router/pubspec.yaml create mode 100644 packages/talker_dart_frog_logger/lib/src/logger_formatter.dart diff --git a/packages/talker_dart_frog_logger/example/router/_middleware.dart b/packages/talker_dart_frog_logger/example/router/_middleware.dart new file mode 100644 index 000000000..8767c8039 --- /dev/null +++ b/packages/talker_dart_frog_logger/example/router/_middleware.dart @@ -0,0 +1,18 @@ +import 'package:dart_frog/dart_frog.dart'; +import 'package:talker_dart_frog_logger/talker_dart_frog_logger.dart'; + +Handler middleware(Handler handler) { + return (context) async { + /// Setup Talker logger only for middleware logs + final talker = Talker( + logger: TalkerLogger( + formatter: DartFrogLoggerFormatter(), + ), + ); + + /// Or you can provide one talker instance via context + // final talker = context.read(); + + return loggerMiddleware(handler: handler, talker: talker)(context); + }; +} diff --git a/packages/talker_dart_frog_logger/example/router/pubspec.yaml b/packages/talker_dart_frog_logger/example/router/pubspec.yaml new file mode 100644 index 000000000..7823c637e --- /dev/null +++ b/packages/talker_dart_frog_logger/example/router/pubspec.yaml @@ -0,0 +1,17 @@ +name: example_api +description: A new Dart Frog application +version: 1.0.0+1 +publish_to: none + +environment: + sdk: ">=3.0.0 <4.0.0" + +dependencies: + dart_frog: 1.2.0 + talker_dart_frog_logger: + path: + ../ + +dev_dependencies: + test: ^1.25.15 + very_good_analysis: ^7.0.0 diff --git a/packages/talker_dart_frog_logger/lib/src/logger.dart b/packages/talker_dart_frog_logger/lib/src/logger.dart index 89d8eaf0b..2dfd60ce7 100644 --- a/packages/talker_dart_frog_logger/lib/src/logger.dart +++ b/packages/talker_dart_frog_logger/lib/src/logger.dart @@ -6,11 +6,10 @@ import 'talker_logs.dart'; Handler loggerMiddleware({ required Handler handler, + required Talker talker, TalkerDartFrogLoggerSettings settings = const TalkerDartFrogLoggerSettings(), }) { return (context) async { - final talker = context.read(); - if (settings.logRequest) { final requestLog = RequestLog(context.request, settings: settings); talker.logCustom(requestLog); diff --git a/packages/talker_dart_frog_logger/lib/src/logger_formatter.dart b/packages/talker_dart_frog_logger/lib/src/logger_formatter.dart new file mode 100644 index 000000000..b4a709a32 --- /dev/null +++ b/packages/talker_dart_frog_logger/lib/src/logger_formatter.dart @@ -0,0 +1,11 @@ +import 'package:talker/talker.dart'; + +class DartFrogLoggerFormatter implements LoggerFormatter { + const DartFrogLoggerFormatter(); + + @override + String fmt(LogDetails details, TalkerLoggerSettings settings) { + final msg = details.message?.toString() ?? ''; + return msg; + } +} diff --git a/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart b/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart index 40022b499..1f87c83af 100644 --- a/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart +++ b/packages/talker_dart_frog_logger/lib/talker_dart_frog_logger.dart @@ -1,4 +1,7 @@ library; +export 'package:talker/talker.dart'; + export 'src/logger.dart'; +export 'src/logger_formatter.dart'; export 'src/settings.dart'; From 0226a82a48ddb6589681c6136a72445617bb7bd7 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 18 Feb 2025 17:27:12 +0500 Subject: [PATCH 6/8] Setup dart_frog example project --- .../example/.vscode/extensions.json | 3 +++ .../example/.vscode/settings.json | 16 ++++++++++++++++ .../example/{router => }/pubspec.yaml | 0 .../example/router/index.dart | 5 +++++ 4 files changed, 24 insertions(+) create mode 100644 packages/talker_dart_frog_logger/example/.vscode/extensions.json create mode 100644 packages/talker_dart_frog_logger/example/.vscode/settings.json rename packages/talker_dart_frog_logger/example/{router => }/pubspec.yaml (100%) create mode 100644 packages/talker_dart_frog_logger/example/router/index.dart diff --git a/packages/talker_dart_frog_logger/example/.vscode/extensions.json b/packages/talker_dart_frog_logger/example/.vscode/extensions.json new file mode 100644 index 000000000..be2e60ea6 --- /dev/null +++ b/packages/talker_dart_frog_logger/example/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["VeryGoodVentures.dart-frog"] +} \ No newline at end of file diff --git a/packages/talker_dart_frog_logger/example/.vscode/settings.json b/packages/talker_dart_frog_logger/example/.vscode/settings.json new file mode 100644 index 000000000..af6542567 --- /dev/null +++ b/packages/talker_dart_frog_logger/example/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "editor.rulers": [ + 80 + ], + "dart.lineLength": 80, + "[dart]": { + "editor.rulers": [ + 80 + ], + }, + "editor.codeActionsOnSave": { + "source.fixAll": "explicit", + "source.organizeImports": "explicit" + }, + "editor.formatOnSave": true, +} \ No newline at end of file diff --git a/packages/talker_dart_frog_logger/example/router/pubspec.yaml b/packages/talker_dart_frog_logger/example/pubspec.yaml similarity index 100% rename from packages/talker_dart_frog_logger/example/router/pubspec.yaml rename to packages/talker_dart_frog_logger/example/pubspec.yaml diff --git a/packages/talker_dart_frog_logger/example/router/index.dart b/packages/talker_dart_frog_logger/example/router/index.dart new file mode 100644 index 000000000..f4a027118 --- /dev/null +++ b/packages/talker_dart_frog_logger/example/router/index.dart @@ -0,0 +1,5 @@ +import 'package:dart_frog/dart_frog.dart'; + +Response onRequest(RequestContext context) { + return Response(body: 'Welcome to dart_frog talker logger example!'); +} From 202e1a94e6ee1e9c3229c9463c2b8fc134e708dd Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 18 Feb 2025 17:41:09 +0500 Subject: [PATCH 7/8] Update dart_frog example --- .../example/.gitignore | 16 ++++++++++++++++ .../example/.vscode/settings.json | 16 ---------------- .../talker_dart_frog_logger/example/README.md | 12 ++++++++++++ .../example/analysis_options.yaml | 9 +++++++++ .../example/pubspec.yaml | 9 +++++---- .../example/router/index.dart | 5 ----- .../{router => routes}/_middleware.dart | 0 .../example/routes/index.dart | 19 +++++++++++++++++++ 8 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 packages/talker_dart_frog_logger/example/.gitignore delete mode 100644 packages/talker_dart_frog_logger/example/.vscode/settings.json create mode 100644 packages/talker_dart_frog_logger/example/README.md create mode 100644 packages/talker_dart_frog_logger/example/analysis_options.yaml delete mode 100644 packages/talker_dart_frog_logger/example/router/index.dart rename packages/talker_dart_frog_logger/example/{router => routes}/_middleware.dart (100%) create mode 100644 packages/talker_dart_frog_logger/example/routes/index.dart diff --git a/packages/talker_dart_frog_logger/example/.gitignore b/packages/talker_dart_frog_logger/example/.gitignore new file mode 100644 index 000000000..67dfe6426 --- /dev/null +++ b/packages/talker_dart_frog_logger/example/.gitignore @@ -0,0 +1,16 @@ +# See https://www.dartlang.org/guides/libraries/private-files + +# Files and directories created by the Operating System +.DS_Store + +# Files and directories created by pub +.dart_tool/ +.packages +pubspec.lock + +# Files and directories created by dart_frog +build/ +.dart_frog + +# Test related files +coverage/ \ No newline at end of file diff --git a/packages/talker_dart_frog_logger/example/.vscode/settings.json b/packages/talker_dart_frog_logger/example/.vscode/settings.json deleted file mode 100644 index af6542567..000000000 --- a/packages/talker_dart_frog_logger/example/.vscode/settings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "editor.rulers": [ - 80 - ], - "dart.lineLength": 80, - "[dart]": { - "editor.rulers": [ - 80 - ], - }, - "editor.codeActionsOnSave": { - "source.fixAll": "explicit", - "source.organizeImports": "explicit" - }, - "editor.formatOnSave": true, -} \ No newline at end of file diff --git a/packages/talker_dart_frog_logger/example/README.md b/packages/talker_dart_frog_logger/example/README.md new file mode 100644 index 000000000..33e11980e --- /dev/null +++ b/packages/talker_dart_frog_logger/example/README.md @@ -0,0 +1,12 @@ +# example + +[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] +[![License: MIT][license_badge]][license_link] +[![Powered by Dart Frog](https://img.shields.io/endpoint?url=https://tinyurl.com/dartfrog-badge)](https://dartfrog.vgv.dev) + +An example application built with dart_frog + +[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg +[license_link]: https://opensource.org/licenses/MIT +[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg +[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis \ No newline at end of file diff --git a/packages/talker_dart_frog_logger/example/analysis_options.yaml b/packages/talker_dart_frog_logger/example/analysis_options.yaml new file mode 100644 index 000000000..b9dcf40fc --- /dev/null +++ b/packages/talker_dart_frog_logger/example/analysis_options.yaml @@ -0,0 +1,9 @@ +include: package:very_good_analysis/analysis_options.5.1.0.yaml +analyzer: + errors: + inference_failure_on_instance_creation: ignore + exclude: + - build/** +linter: + rules: + file_names: false diff --git a/packages/talker_dart_frog_logger/example/pubspec.yaml b/packages/talker_dart_frog_logger/example/pubspec.yaml index 7823c637e..ebe52c5ae 100644 --- a/packages/talker_dart_frog_logger/example/pubspec.yaml +++ b/packages/talker_dart_frog_logger/example/pubspec.yaml @@ -1,4 +1,4 @@ -name: example_api +name: example description: A new Dart Frog application version: 1.0.0+1 publish_to: none @@ -7,11 +7,12 @@ environment: sdk: ">=3.0.0 <4.0.0" dependencies: - dart_frog: 1.2.0 + dart_frog: ^1.1.0 talker_dart_frog_logger: path: ../ dev_dependencies: - test: ^1.25.15 - very_good_analysis: ^7.0.0 + mocktail: ^1.0.3 + test: ^1.25.5 + very_good_analysis: ^5.1.0 diff --git a/packages/talker_dart_frog_logger/example/router/index.dart b/packages/talker_dart_frog_logger/example/router/index.dart deleted file mode 100644 index f4a027118..000000000 --- a/packages/talker_dart_frog_logger/example/router/index.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'package:dart_frog/dart_frog.dart'; - -Response onRequest(RequestContext context) { - return Response(body: 'Welcome to dart_frog talker logger example!'); -} diff --git a/packages/talker_dart_frog_logger/example/router/_middleware.dart b/packages/talker_dart_frog_logger/example/routes/_middleware.dart similarity index 100% rename from packages/talker_dart_frog_logger/example/router/_middleware.dart rename to packages/talker_dart_frog_logger/example/routes/_middleware.dart diff --git a/packages/talker_dart_frog_logger/example/routes/index.dart b/packages/talker_dart_frog_logger/example/routes/index.dart new file mode 100644 index 000000000..7d7710f6e --- /dev/null +++ b/packages/talker_dart_frog_logger/example/routes/index.dart @@ -0,0 +1,19 @@ +import 'dart:math'; + +import 'package:dart_frog/dart_frog.dart'; + +Future onRequest(RequestContext context) async { + await Future.delayed(Duration(milliseconds: Random().nextInt(1500))); + + return Response.json( + body: [ + { + 'name': 'talker_dart_frog_logger', + 'type': 'package', + 'tags': ['error-handler', 'logger', 'logs'], + 'rating': 5, + 'description': 'Best package in the world', + } + ], + ); +} From 9706505cf62042f6676c9d3eb0a41f17e3879154 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 9 Mar 2025 21:03:34 +0500 Subject: [PATCH 8/8] Prepare first dev release --- packages/talker_dart_frog_logger/CHANGELOG.md | 2 +- packages/talker_dart_frog_logger/LICENSE | 21 ++++++++++ packages/talker_dart_frog_logger/README.md | 40 +------------------ .../example/routes/_middleware.dart | 2 +- packages/talker_dart_frog_logger/pubspec.yaml | 12 +++--- 5 files changed, 29 insertions(+), 48 deletions(-) create mode 100644 packages/talker_dart_frog_logger/LICENSE diff --git a/packages/talker_dart_frog_logger/CHANGELOG.md b/packages/talker_dart_frog_logger/CHANGELOG.md index effe43c82..583d1cee3 100644 --- a/packages/talker_dart_frog_logger/CHANGELOG.md +++ b/packages/talker_dart_frog_logger/CHANGELOG.md @@ -1,3 +1,3 @@ -## 1.0.0 +## 0.0.1-dev.1 - Initial version. diff --git a/packages/talker_dart_frog_logger/LICENSE b/packages/talker_dart_frog_logger/LICENSE new file mode 100644 index 000000000..dffa734cc --- /dev/null +++ b/packages/talker_dart_frog_logger/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Stanislav Ilin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/talker_dart_frog_logger/README.md b/packages/talker_dart_frog_logger/README.md index 8831761b8..1fcddfd7d 100644 --- a/packages/talker_dart_frog_logger/README.md +++ b/packages/talker_dart_frog_logger/README.md @@ -1,39 +1 @@ - - -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. - -## Features - -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. - -## Usage - -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. +Soon... \ No newline at end of file diff --git a/packages/talker_dart_frog_logger/example/routes/_middleware.dart b/packages/talker_dart_frog_logger/example/routes/_middleware.dart index 8767c8039..348091730 100644 --- a/packages/talker_dart_frog_logger/example/routes/_middleware.dart +++ b/packages/talker_dart_frog_logger/example/routes/_middleware.dart @@ -6,7 +6,7 @@ Handler middleware(Handler handler) { /// Setup Talker logger only for middleware logs final talker = Talker( logger: TalkerLogger( - formatter: DartFrogLoggerFormatter(), + formatter: const DartFrogLoggerFormatter(), ), ); diff --git a/packages/talker_dart_frog_logger/pubspec.yaml b/packages/talker_dart_frog_logger/pubspec.yaml index 222200f4d..ff74ffdc0 100644 --- a/packages/talker_dart_frog_logger/pubspec.yaml +++ b/packages/talker_dart_frog_logger/pubspec.yaml @@ -1,16 +1,14 @@ name: talker_dart_frog_logger -description: A starting point for Dart libraries or applications. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo +description: Lightweight and customizable dart_frog logger on talker base +version: 0.0.1-dev.1 +repository: https://github.com/Frezyx/talker environment: - sdk: ">=2.19.0 <3.0.0" + sdk: ">=2.19.0 <4.0.0" -# Add regular dependencies here. dependencies: dart_frog: ^1.2.0 - talker: ^4.6.11 - # path: ^1.8.0 + talker: ^4.6.14 dev_dependencies: lints: ^5.0.0