Neutron Polarization Manipulator

    widjet-disposables

    1.1.0 • Public • Published

    widjet-disposables Build Status codecov

    Lightweight disposable pattern implementation.

    Installation

    npm install --save widjet-disposables

    Usage

    import {Disposable, CompositeDisposable, DisposableEvent} from 'widjet-disposables'

    Disposable

    The Disposable class is the most basic class of the package. It takes a function as the sole argument when created. This function will be called when the dispose method of the disposable is called.

    function subscribeToSomEvent () {
      // subscribe to some event
     
      // ...
     
      // return a new disposable that will perform the unsubscription
      return new Disposable(() => {
        // unsubscribe from the events
      })
    }

    CompositeDisposable

    The CompositeDisposable class is a Disposable that composes other disposables. It can be created with an array of disposables.

    // creates a composite with an array of existing disposables
    const composite = new CompositeDisposable(disposables)
     
    const disposable = new Disposable(() => {})
     
    // adds a new disposable in the composite
    composite.add(disposable)
     
    // removes the added disposable from the composite
    composite.remove(disposable)

    DisposableEvent

    The DisposableEvent is a specific disposable aimed to ease the registration of event listener. It handles either objects with addEventListener/removeEventListener methods or objects with on/off methods.

    // creating a disposable event automatically registers the event listener
    const subscription = new DisposableEvent(source, 'event', (event) => {})
     
    // disposing the subscription automatically unregisters the event listener
    subscription.dispose()

    Install

    npm i widjet-disposables

    DownloadsWeekly Downloads

    17

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    59.3 kB

    Total Files

    23

    Last publish

    Collaborators

    • abe33