flutter_execution_utilities 0.1.0+1 flutter_execution_utilities: ^0.1.0+1 copied to clipboard
A collection of execution control utilities for Flutter and Dart, including debounce, throttle, memoization, retry mechanisms, and more
Flutter Execution Utilities #
A collection of execution control utilities for Flutter and Dart, including debounce, throttle, memoization, retry mechanisms, and more
โจ Features #
- ๐ Debounce: Delay function execution until a specified time has elapsed since the last call.
- โก Throttle: Limit the number of times a function can be called over time.
- ๐ง Memoization: Cache function results based on input arguments.
- ๐ Retry Mechanism: Retry failed asynchronous operations with configurable retries and delays.
- ๐ฆ Batcher: Batch multiple function calls into a single execution.
- ๐ฆ Rate Limiter: Control the rate of function execution.
- ๐ Circuit Breaker: Prevent repeated failures by halting function execution when errors exceed a threshold.
- ๐ก Supports both synchronous and asynchronous functions.
- ๐ Easy integration with Flutter applications.
Installation ๐ป #
โ In order to start using Flutter Execution Utilities you must have the Dart SDK installed on your machine.
Install via dart pub add
:
dart pub add flutter_execution_utilities
Continuous Integration ๐ค #
Flutter Execution Utilities comes with a built-in GitHub Actions workflow powered by Very Good Workflows but you can also add your preferred CI/CD solution.
Out of the box, on each pull request and push, the CI formats
, lints
, and tests
the code. This ensures the code remains consistent and behaves correctly as you add functionality or make changes. The project uses Very Good Analysis for a strict set of analysis options used by our team. Code coverage is enforced using the Very Good Workflows.
Running Tests ๐งช #
To run all unit tests:
dart pub global activate coverage 1.2.0
dart test --coverage=coverage
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
To view the generated coverage report you can use lcov.
# Generate Coverage Report
genhtml coverage/lcov.info -o coverage/
# Open Coverage Report
open coverage/index.html