From b761de5f84637a11dc60f5eb2fdfb88e8c6c30b2 Mon Sep 17 00:00:00 2001 From: Kishor Mainali Date: Thu, 9 Nov 2023 08:15:44 +0545 Subject: [PATCH] feat: added LoggerMixin and isCsv extension --- .dart_tool/package_config.json | 10 ++++----- .dart_tool/package_config_subset | 16 +++++++------- .flutter-plugins | 2 +- .flutter-plugins-dependencies | 2 +- CHANGELOG.md | 4 ++++ lib/src/extensions/file_extension.dart | 9 +++++++- lib/src/extensions/string_extension.dart | 10 +++++++++ lib/src/logger/logger.dart | 27 ++++++++++++++++++++++-- pubspec.lock | 16 +++++++------- pubspec.yaml | 12 +++++------ 10 files changed, 76 insertions(+), 32 deletions(-) diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index edf1a9e..d2b887b 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -153,7 +153,7 @@ }, { "name": "file_picker", - "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0", + "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1", "packageUri": "lib/", "languageVersion": "2.19" }, @@ -195,7 +195,7 @@ }, { "name": "flutter_lints", - "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_lints-3.0.0", + "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_lints-3.0.1", "packageUri": "lib/", "languageVersion": "3.0" }, @@ -207,7 +207,7 @@ }, { "name": "flutter_svg", - "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_svg-2.0.8", + "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9", "packageUri": "lib/", "languageVersion": "2.19" }, @@ -525,7 +525,7 @@ }, { "name": "uuid", - "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/uuid-4.1.0", + "rootUri": "file:///Users/kishor/.pub-cache/hosted/pub.dev/uuid-4.2.1", "packageUri": "lib/", "languageVersion": "2.14" }, @@ -596,7 +596,7 @@ "languageVersion": "3.0" } ], - "generated": "2023-11-04T10:19:34.629658Z", + "generated": "2023-11-09T02:29:01.311250Z", "generator": "pub", "generatorVersion": "3.1.5" } diff --git a/.dart_tool/package_config_subset b/.dart_tool/package_config_subset index 000ec85..d4a87ca 100644 --- a/.dart_tool/package_config_subset +++ b/.dart_tool/package_config_subset @@ -100,8 +100,8 @@ file:///Users/kishor/.pub-cache/hosted/pub.dev/file-7.0.0/ file:///Users/kishor/.pub-cache/hosted/pub.dev/file-7.0.0/lib/ file_picker 2.19 -file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/ -file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/lib/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1/lib/ file_selector_linux 2.18 file:///Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/ @@ -124,16 +124,16 @@ file:///Users/kishor/.pub-cache/hosted/pub.dev/fixnum-1.1.0/ file:///Users/kishor/.pub-cache/hosted/pub.dev/fixnum-1.1.0/lib/ flutter_lints 3.0 -file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_lints-3.0.0/ -file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_lints-3.0.0/lib/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_lints-3.0.1/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_lints-3.0.1/lib/ flutter_plugin_android_lifecycle 2.18 file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/ file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/lib/ flutter_svg 2.19 -file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_svg-2.0.8/ -file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_svg-2.0.8/lib/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/flutter_svg-2.0.9/lib/ freezed 2.17 file:///Users/kishor/.pub-cache/hosted/pub.dev/freezed-2.4.5/ @@ -336,8 +336,8 @@ file:///Users/kishor/.pub-cache/hosted/pub.dev/typed_data-1.3.2/ file:///Users/kishor/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/ uuid 2.14 -file:///Users/kishor/.pub-cache/hosted/pub.dev/uuid-4.1.0/ -file:///Users/kishor/.pub-cache/hosted/pub.dev/uuid-4.1.0/lib/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/uuid-4.2.1/ +file:///Users/kishor/.pub-cache/hosted/pub.dev/uuid-4.2.1/lib/ vector_graphics 2.17 file:///Users/kishor/.pub-cache/hosted/pub.dev/vector_graphics-1.1.9+1/ diff --git a/.flutter-plugins b/.flutter-plugins index b4f536a..be7864a 100644 --- a/.flutter-plugins +++ b/.flutter-plugins @@ -1,5 +1,5 @@ # This is a generated file; do not edit or check into version control. -file_picker=/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/ +file_picker=/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1/ file_selector_linux=/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/ file_selector_macos=/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+1/ file_selector_windows=/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3/ diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index ffebae1..e9c0925 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.8/","native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/kishor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.7+4/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]}],"macos":[{"name":"file_selector_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1/","native_build":false,"dependencies":["file_selector_macos"]}],"linux":[{"name":"file_selector_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1/","native_build":false,"dependencies":["file_selector_linux"]}],"windows":[{"name":"file_selector_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1/","native_build":false,"dependencies":["file_selector_windows"]}],"web":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.0.0/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.0/","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]}],"date_created":"2023-11-04 16:04:34.703542","version":"3.13.9"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.8/","native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/kishor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.7+4/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]}],"macos":[{"name":"file_selector_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1/","native_build":false,"dependencies":["file_selector_macos"]}],"linux":[{"name":"file_selector_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1/","native_build":false,"dependencies":["file_selector_linux"]}],"windows":[{"name":"file_selector_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1/","native_build":false,"dependencies":["file_selector_windows"]}],"web":[{"name":"file_picker","path":"/Users/kishor/.pub-cache/hosted/pub.dev/file_picker-6.1.1/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/kishor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.0/","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]}],"date_created":"2023-11-09 08:14:01.391896","version":"3.13.9"} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d14387..a146946 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 2.1.2 +- added `LoggerMixin` +- added `isCsv` extension on String and file + # 2.1.1 - added `TagsInputField` widget - added `uuid` helper class diff --git a/lib/src/extensions/file_extension.dart b/lib/src/extensions/file_extension.dart index 74d8960..13bee8d 100644 --- a/lib/src/extensions/file_extension.dart +++ b/lib/src/extensions/file_extension.dart @@ -77,8 +77,15 @@ extension FileExtensionX on File { return mimeType?.startsWith('image/svg+xml') ?? extension.isSvg; } + /// check whether file is csv + bool get isCsv { + return mimeType?.startsWith('text/csv') ?? + mimeType?.startsWith('text/comma-separated-values') ?? + extension.isCsv; + } + /// checks whether given file is docx,pdf,xls,ppt or txt - bool get isFile => isDocx || isPdf || isXls || isPpt || isTxt; + bool get isFile => isDocx || isPdf || isXls || isPpt || isTxt || isCsv; /// get file size in mb double get sizeInMb { diff --git a/lib/src/extensions/string_extension.dart b/lib/src/extensions/string_extension.dart index be0e776..a7f0ff0 100644 --- a/lib/src/extensions/string_extension.dart +++ b/lib/src/extensions/string_extension.dart @@ -254,6 +254,15 @@ extension StringX on String { return ext == '.svg'; } + /// checks whether string is csv + bool get isCsv { + final ext = extension(this); + if (ext.isBlank) { + return false; + } + return ext == '.csv'; + } + /// checks whether string is xml bool get isXml { final ext = extension(this); @@ -297,6 +306,7 @@ final _xlsTypes = ['.xls', '.xlsx']; final _txtTypes = ['.txt', '.rtf']; /// use to convert string into different cases +/// class _ReCase { final RegExp _upperAlphaRegex = RegExp(r'[A-Z]'); diff --git a/lib/src/logger/logger.dart b/lib/src/logger/logger.dart index a27deb3..b07ab62 100644 --- a/lib/src/logger/logger.dart +++ b/lib/src/logger/logger.dart @@ -5,7 +5,7 @@ import 'package:logger/logger.dart'; export 'package:logger/logger.dart'; final logger = Logger( - printer: PrettyPrinter( + printer: PrefixPrinter(PrettyPrinter( methodCount: 3, // number of method calls to be displayed errorMethodCount: 8, @@ -28,5 +28,28 @@ final logger = Logger( Level.error: '🚨', Level.fatal: '🤷‍♂️', }, - ), + )), ); + +mixin LoggerMixin { + /// Log a message at level [Level.info]. + void logInfo(dynamic message) => logger.i(message); + + /// Log a message at level [Level.error]. + void logError( + dynamic message, { + Object? error, + StackTrace? stackTrace, + }) => + logger.e( + message, + error: error, + stackTrace: stackTrace, + ); + + /// Log a message at level [Level.warning]. + void logWarning(dynamic message) => logger.w(message); + + /// Log a message at level [Level.debug]. + void logDebug(dynamic message) => logger.d(message); +} diff --git a/pubspec.lock b/pubspec.lock index 3370224..4ec8035 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -205,10 +205,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "903dd4ba13eae7cef64acc480e91bf54c3ddd23b5b90b639c170f3911e489620" + sha256: "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "6.1.1" file_selector_linux: dependency: transitive description: @@ -258,10 +258,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: ad76540d21c066228ee3f9d1dad64a9f7e46530e8bb7c85011a88bc1fd874bc5 + sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -274,10 +274,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: bfc7cc3c75fe1282e8ce2e056d8fd1533f1a6848b65c379b4a5e7a9b623d3371 + sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c url: "https://pub.dev" source: hosted - version: "2.0.8" + version: "2.0.9" flutter_web_plugins: dependency: transitive description: flutter @@ -692,10 +692,10 @@ packages: dependency: "direct main" description: name: uuid - sha256: b715b8d3858b6fa9f68f87d20d98830283628014750c2b09b6f516c1da4af2a7 + sha256: df5a4d8f22ee4ccd77f8839ac7cb274ebc11ef9adcce8b92be14b797fe889921 url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.1" vector_graphics: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 44a0e50..e3036dc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,9 +1,9 @@ name: fp_util description: Utilities and Extensions for num,BuildContext,EdgeInsets,File,String. constants for horizontal and vertical spacing. -version: 2.1.1 +version: 2.1.2 homepage: https://mkcli.kishormainali.com/ repository: https://github.com/kishormainali/fp_util -topics: ['flutter', 'dart', 'utility', 'extensions', 'spacing', 'constants', 'num', 'buildcontext', 'edgeinsets', 'file', 'string','tags_input_field'] +topics: ['flutter','utility', 'extensions', 'spacing','tagsinputfield'] environment: sdk: ">=3.0.0 <4.0.0" @@ -18,10 +18,10 @@ dependencies: image_picker: ">=1.0.0 <2.0.0" # file picker - file_picker: ^6.0.0 + file_picker: ^6.1.1 # svg - flutter_svg: ^2.0.8 + flutter_svg: ^2.0.9 freezed_annotation: ^2.4.1 @@ -35,11 +35,11 @@ dependencies: gap: ^3.0.1 - uuid: ^4.1.0 + uuid: ^4.2.1 dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^3.0.1 freezed: ^2.4.5 build_runner: ">=2.4.0 <=3.0.0"