ilkersevim_async_lifecycle 0.1.3 copy "ilkersevim_async_lifecycle: ^0.1.3" to clipboard
ilkersevim_async_lifecycle: ^0.1.3 copied to clipboard

Avoid double completion and StreamController add-after-close errors with reusable, dependency-free Dart lifecycle helpers.

ilkersevim_async_lifecycle #

Completer helpers and safe StreamController lifecycle utilities for Dart async code. Dependency-free beyond the Dart SDK (dart:async).

Why use this package? #

  • Centralize completer start, completion, error, and reset state instead of repeating nullable-completer checks.
  • Avoid emitting into null or closed stream controllers during async teardown.
  • Give services one small lifecycle mixin for controller creation and disposal.

License: Apache-2.0. Issues: github.com/redjadet/ilkersevim_async_lifecycle/issues.

Installation #

dependencies:
  ilkersevim_async_lifecycle: ^0.1.3

Requires Dart >=3.12.0.

CompleterHelper #

import 'package:ilkersevim_async_lifecycle/ilkersevim_async_lifecycle.dart';

final helper = CompleterHelper<void>();
final completer = helper.start();
helper.complete();

StreamControllerSafeEmit / StreamControllerLifecycle #

StreamControllerSafeEmit.safeAdd(controller, value);

class MyService with StreamControllerLifecycle<String> {
  MyService() {
    // ignore: discarded_futures
    createController();
  }

  void push(String value) => safeEmit(value);

  Future<void> dispose() => disposeController();
}

Out of scope #

General resource groups such as DisposableBag, SubscriptionManager, and TimerHandleManager belong to ilkersevim_disposables.

API stability #

Public type names and method signatures are a semantic-versioned contract. Breaking changes require a major version bump.

Publishing #

Releases are tagged vX.Y.Z matching pubspec.yaml. Automated publishing uses GitHub Actions OIDC with the protected pub.dev Environment (reviewer: redjadet).

1
likes
160
points
377
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Avoid double completion and StreamController add-after-close errors with reusable, dependency-free Dart lifecycle helpers.

Repository (GitHub)
View/report issues

Topics

#async #streams #dart

License

Apache-2.0 (license)

More

Packages that depend on ilkersevim_async_lifecycle