Last updated:
0 purchases
ever cache
🚀 EverCache
A simple dart package which extends the functionality of Dart's built-in `late` keyword to provide a more robust and flexible way to handle lazy initialization. It closesly resembles the `Lazy
✨ Key Features #
🚀 Lazy Initialization: Compute the cache entry only when it is accessed for the first time. (or trigger the compute manually!)
⏳ TTL Support: Automatically purge cache entries after a set duration.
📡 Events: Monitor the state of the cache based on delegates invoked from the instance.
🔧 Placeholder: Provide placeholder data to be returned when cache is being computed.
🔍 Access Locking: Control acess to the computed value by using lock functionality.
🚀 Getting Started #
Integrate ever_cache into your project effortlessly. Just sprinkle this into your pubspec.yaml:
dependencies:
ever_cache: ^0.0.8
copied to clipboard
then run pub get or flutter pub get.
🌟 Usage #
import 'package:ever_cache/ever_cache.dart';
final cache = EverCache<String>(
() async {
// Your computation
return 'Hello, World!';
},
// set a placeholder if you wish to return a default value when the computation is in progress.
placeholder: () => 'placeholder',
// set a TTL (Time To Live) for the cache entry.
ttl: EverTTL.seconds(5),
// if you want to monitor different events emitted from the cache.
events: EverEvents(
onComputing: () => print('Conjuring...'),
onComputed: () => print('Voila!'),
onInvalidated: () => print('Poof! Gone!'),
onError: (e, stackTrace) => print('Oops! Computation failed: $e'),
),
// if you want the cache to be computed as soon as this constructor is called in the background
earlyCompute: true,
);
// access the computed value
// cache.value
// or to safely access it, cache.state
copied to clipboard
📚 Additional Methods #
compute(): Manually compute the cache entryin async.
computeSync(): Manually compute the cache entry in sync.
lock(): Lock the cache entry to prevent further access till the provided callback is executed.
invalidate(): Invalidate the cache entry.
dispose(): Dispose of the cache entry.
Note #
EverCache is an open-source project and contributions are welcome! If you encounter any issues or have feature requests, please file them on the project's issue tracker.
For more detailed documentation, please refer to the source code and comments within the lib/ directory.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.