bloc_concurrency

v0.2.5

Custom event transformers inspired by ember concurrency. Built to be used with the bloc state management package.

Package archive: https://pubdev.letsnova.ru/api/archives/bloc_concurrency/0.2.5.tar.gz

Installdart pub add bloc_concurrency

Readme

Bloc Concurrency

Pub build codecov Star on Github Flutter Website Awesome Flutter Flutter Samples License: MIT Discord Bloc Library


A Dart package that exposes custom event transformers inspired by ember concurrency. Built to work with bloc.

Learn more at bloclibrary.dev!


Sponsors

Our top sponsors are shown below! [Become a Sponsor]


Event Transformers

Event Transformers

bloc_concurrency provides an opinionated set of event transformers:

  • concurrent - process events concurrently
  • sequential - process events sequentially
  • droppable - ignore any events added while an event is processing
  • restartable - process only the latest event and cancel previous event handlers

Usage

import 'package:bloc/bloc.dart';
                import 'package:bloc_concurrency/bloc_concurrency.dart';
                
                sealed class CounterEvent {}
                
                final class CounterIncrementPressed extends CounterEvent {}
                
                class CounterBloc extends Bloc<CounterEvent, int> {
                  CounterBloc() : super(0) {
                    on<CounterIncrementPressed>(
                      (event, emit) async {
                        await Future.delayed(Duration(seconds: 1));
                        emit(state + 1);
                      },
                      /// Specify a custom event transformer from `package:bloc_concurrency`
                      /// in this case events will be processed sequentially.
                      transformer: sequential(),
                    );
                  }
                }
                

Dart Versions

  • Dart 2: >= 2.12

Maintainers

Changelog

0.2.5

  • docs: improve diagrams
  • chore: update copyright year
  • chore: update sponsors

0.2.4

  • chore: update sponsors

0.2.3

  • chore: fix require_trailing_commas
  • chore(deps): upgrade to package:mocktail v1.0.0
  • chore: add topics to pubspec.yaml

0.2.2

  • docs: upgrade to Dart 3
  • refactor: standardize analysis_options

0.2.1

  • chore: add screenshots to pubspec.yaml
  • refactor: upgrade to Dart 2.19
    • deps: upgrade to very_good_analysis 3.1.0
  • docs: update example to follow naming conventions

0.2.0

  • feat: upgrade to bloc: ^8.0.0

0.2.0-dev.2

  • feat: upgrade to bloc: ^8.0.0-dev.5

0.2.0-dev.1

  • feat: upgrade to bloc: ^8.0.0-dev.3

0.1.0

  • feat: upgrade to bloc: ^7.2.0

0.1.0-dev.2

  • feat: upgrade to bloc: ^7.2.0-dev.2

0.1.0-dev.1

  • feat: initial development release
    • includes EventTransformer options:
      • concurrent: process events concurrently
      • sequential: process events sequentially
      • droppable: ignore any events added while an event is processing
      • restartable: process only the latest event and cancel previous handlers