bootstrapper 0.1.0 copy "bootstrapper: ^0.1.0" to clipboard
bootstrapper: ^0.1.0 copied to clipboard

Bootstrapper is a package to initialize multiple config in parallel by grouping them.

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

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();
}

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.

0
likes
130
pub points
10%
popularity

Publisher

unverified uploader

Bootstrapper is a package to initialize multiple config in parallel by grouping them.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

meta

More

Packages that depend on bootstrapper