disposer 0.0.6 copy "disposer: ^0.0.6" to clipboard
disposer: ^0.0.6 copied to clipboard

outdated

It's a simple interface to manage all instances that needs to been disposed. Pagacke can generate feature module with `Disposable`

Welcome to the Disposable package #

It's a simple interface to manage all instances that needs to been disposed.

Example #

import 'dart:async';
import 'package:disposer/disposer.dart';

class DataSource with Disposable {
    final streamController = StreamController.broadcast();
    
    @override
    void dispose() {
        streamController.close();
    }
}

Multilevel dependencies example: #

import 'dart:async';
import 'package:disposer/disposer.dart';


void main() {
  final LocalDataSource localDataSource = LocalDataSource();
  final RemoteDataSource remoteDataSource = RemoteDataSource();
  final DataRepository dataRepository = DataRepository(
    localDataSource: localDataSource,
    remoteDataSource: remoteDataSource,
  );
  final DataUsecase dataUsecase = DataUsecase(repository: dataRepository);
  dataUsecase.dispose();

  // Output:
  /*
    [log] LocalDataSource Disposed
    [log] RemoteDataSource Disposed
    [log] DataRepository Disposed
    [log] DataUsecase Disposed
  */
}

class LocalDataSource with Disposable {
  final streamController = StreamController.broadcast();

  @override
  void dispose() {
    streamController.close();
    super.dispose();
  }
}

class RemoteDataSource with Disposable {
  final streamController = StreamController.broadcast();

  @override
  void dispose() {
    streamController.close();
    super.dispose();
  }
}

class DataRepository with Disposable {
  DataRepository({
    required this.localDataSource,
    required this.remoteDataSource,
  });

  @override
  List<Disposable> get disposables => [
        localDataSource,
        remoteDataSource,
      ];

  final LocalDataSource localDataSource;
  final RemoteDataSource remoteDataSource;
}

class DataUsecase with Disposable {
  DataUsecase({
    required this.repository,
  });

  @override
  List<Disposable> get disposables => [
        repository,
      ];

  final DataRepository repository;
}

Feature generator #

Example:

    foo@bar:~$ flutter pub run disposer --name NewFeature --output lib/src/features

Feature naming convention:

    -n example
    --name example
    -n Example
    --name Example
    -n ExampleFeature
    --name ExampleFeature

Output parameter is optional. Default path is: lib/features.

Example:

    -o lib/src/features
    --output lib/src/features
4
likes
0
pub points
75%
popularity

Publisher

unverified uploader

It's a simple interface to manage all instances that needs to been disposed. Pagacke can generate feature module with `Disposable`

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

args, flutter

More

Packages that depend on disposer