0 purchases
bootstrapper
Bootstrapper #
Bootstrapper is a Dart package that allows you to initialize multiple config processes in parallel by grouping them.
Features #
Bootstrapper enables you to group a list of objects that need to be initialized.
Objects that implement the Bootstrapable abstract class can be grouped together and initialized in parallel.
Bootstrapper ensures that objects belonging to the same group are initialized before objects belonging to a different group.
Getting started #
To use Bootstrapper in your project, you should include it in your dependencies in your pubspec.yaml file as follows:
dependencies:
bootstrapper: ^0.1.0
copied to clipboard
Usage #
import 'package:bootstrapper/bootstrapper.dart';
class FooConfig implements Bootstrapable<String> {
FooConfig(this.groupId);
@override
final int groupId;
@override
Future<void> initialize(String property) async {
print('FooConfig($groupId) is started with $property property');
await Future.delayed(const Duration(seconds: 1));
print('FooConfig($groupId) is finished with $property property');
}
}
class BarConfig implements Bootstrapable<String> {
BarConfig(this.groupId);
@override
final int groupId;
@override
Future<void> initialize(String property) async {
print('BarConfig($groupId) is started with $property property');
await Future.delayed(const Duration(seconds: 2));
print('BarConfig($groupId) is finished with $property property');
}
}
class BazConfig implements Bootstrapable<String> {
BazConfig(this.groupId);
@override
final int groupId;
@override
Future<void> initialize(String property) async {
print('BazConfig($groupId) is started with $property property');
await Future.delayed(const Duration(seconds: 3));
print('BazConfig($groupId) is finished with $property property');
}
}
Future<void> main() async {
Bootstrapper bootstrapper = Bootstrapper<String>(
property: 'development',
bootstrapables: [
FooConfig(0),
BarConfig(0),
BarConfig(1),
],
);
await bootstrapper.initialize();
}
copied to clipboard
Additional information #
If you encounter any issues or have any questions, you can file an issue on the official GitHub repository. Contributions are also welcome via pull requests.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.