get_it 7.0.0 copy "get_it: ^7.0.0" to clipboard
get_it: ^7.0.0 copied to clipboard

outdated

Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App"

[7.0.0] - 02.05.2021 #

This is a breaking change because there were some inconsistencies in the handling of the disposal functions that you can pass when registering an Object, pop a Scope or use unregister() resetLazySingleton()´. Some of accepted a FutureOr method type, others just a void which meant you couldn't use async functions consistently. With this release you can use async functions in all disposal functions which unfortunately also required to change the signatures of the following functions:

  Future<void> reset({bool dispose = true});

  Future<void> resetScope({bool dispose = true});

  Future<void> popScope();

  Future<bool> popScopesTill(String name);

  FutureOr resetLazySingleton<T extends Object>({
    Object? instance,
    String? instanceName,
    FutureOr Function(T)? disposingFunction,
  });

  FutureOr unregister<T extends Object>({
    Object? instance,
    String? instanceName,
    FutureOr Function(T)? disposingFunction,
  });

Basically all functions that can possibly call a disposal functions should be awaited.

Implementing the Disposable interface

Instead of passing a disposing function on registration or when pushing a Scope from V7.0 on your objects onDispose() method will be called if the object that you register implements the Disposable´interface:

abstract class Disposable {
  FutureOr ondDispose();
}

Getting notified about the shadowing state of an object

In some cases it might be helpful to know if an Object gets shadowed by another one e.g. if it has some Stream subscriptions that it want to cancel before the shadowing object creates a new subscription. Also the other way round so that a shadowed Object gets notified when it's "active" again meaning when a shadowing object is removed.

For this a class had to implement the ShadowChangeHandlers interface:

abstract class ShadowChangeHandlers {
  void onGetShadowed(Object shadowing);
  void onLeaveShadow(Object shadowing);
}

When the Object is shadowed its onGetShadowed() method is called with the object that is shadowing it. When this object is removed from GetIt onLeaveShadow() will be called.

[6.1.1] - 13.04.2021 #

  • small fix in getAsync with parameters

[6.1.0] - 12.04.2021 #

[6.0.0] - 15.02.2021 #

  • Official null safety release

[5.0.2] - 08.12.2020 #

[5.0.1] - 23.09.2020 #

  • fixed formatting in readme

[5.0.0-mixin-version] - 17.09.2020 #

  • experimental

[5.0.0] - 15.09.2020 #

  • New scope support for registration
  • optional dispose functions for registered objects
  • Breaking change: reset() now is async and returns a Future because it will call the new optional disposal functions that can be async
  • Breaking change: If you use names to register your objects you now have to provide a type too or at least make sure the compiler can infer the type. With this change it is now possible to use the same name for different types.

[5.0.0-alpha] - 11.09.2020 #

  • alpha version of V5.0

[4.0.4] - 22.07.2020 #

  • fixed linter errors

[4.0.3] - 22.07.2020 #

[4.0.2] - 26.04.2020 #

[4.0.1] - 19.03.2020 #

  • overhauled readme
  • removed unnecessary print statement

[4.0.0] - 26.02.2020 #

  • Added abstract WillSignalReady class

[4.0.0-release-candidate] - 14.02.2020 #

  • Breaking changes in API!!!
  • Release candidate
  • New Async functions
  • Factories with parameters
  • Improved startup synchronisation

[3.0.2] - 23.10.2019 #

  • Bugfix when using named instances

[3.0.1] - 24.09.2019 #

[3.0.0+1] - 07.09.2019 #

  • Small fix to make the analyser happy

[3.0.0] - 07.09.2019 #

  • Overhauled the signalling API because the way it was was not optimal. Now you can either signal globally or by passing the instance of the registered object that shall signal. This way it's ensured that you have to have access to the instance to signal, typically from within the instance with a GetIt.instance.signalReady(this) individual signalling from other places but the instance itself is probably an error.
  • Unregister of singletons /lazysingletons now possible also over a registered instance.
  • Most asserts have bin replaced with throwing Errorobjects.
  • The example now shows the ready signalling.

[2.1.0] - 26.08.2019 #

  • Added handy ready signal to make start-up logic a bit easier
  • Unregister of Objects now possible with optional disposing function

[2.0.3] - 26.08.2019 #

  • Small fix

[2.0.2] - 19.08.2019 #

  • Small fix

[2.0.1] - 19.08.2019 #

  • Small fix

[2.0.0] - 18.08.2019 #

  • Breaking Change with V2.0.0 you no longer can directly create instances of the type GetIt because GetIt is now a singleton please see README

[1.1.0] - 18.08.2019 #

  • added named registration

[1.0.3+2] - 26.06.2019 #

  • updated logo in readme

[1.0.3+1] - 22.05.2019 #

  • updated authors

[1.0.3] - 01.03.2019 #

  • Small fix so that intellisense works now if you use the short calling form without using .get()

[1.0.2] - 22.06.2018 #

[1.0.1] - 20.06.2018 #

  • Added reset()method

[1.0.0] - 22.05.2018 #

  • Initial release
3908
likes
0
pub points
100%
popularity

Publisher

verified publisherfluttercommunity.dev

Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App"

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

async, collection

More

Packages that depend on get_it