Neanderthals Paint Mammals

    eventuate-once

    1.1.0 • Public • Published

    eventuate-once

    NPM version Build Status Coverage Status

    Act once upon the next occurrence of an eventuate. Optionally act upon only the next matching occurrence.

    example

    var eventuate = require('eventuate'),
        once      = require('eventuate-once')
     
    var request = eventuate()
     
    // once cb
    once(request, function (req) {
        console.log(req)
    })
    request.produce({ url: '/index.html' })
     
    // once promise
    once(request).then(console.log)
    request.produce({ url: '/README.md' })
     
    // will result in no actions because consumers are gone
    // (use "requireConsumers" to make this an error condition)
    request.produce({ url: '/LICENSE' })

    api

    var once = require('eventuate-once')

    once(eventuate [, cb])

    Execute the optional cb (if provided) one time on the next data payload from the eventuate. This is like eventuate(cb) except that it only happens once. In addition, returns a Promise that resolves to the eventuate data payload.

    once.match(eventuate, filter [, cb])

    Execute the optional cb (if provided) one time on the next data payload from the eventuate, for which a truthy value is returned from the filter function. In addition, returns a Promise that resolves to the matched eventuate data payload.

    The filter argument should be a function with signature function (data). It will be passed all events produced by the eventuate, and it should return a falsey value or truthy value. Upon returning a truthy value, no more events will be provided, and the callbacks/promise will be resolved.

    testing

    npm test [--dot | --spec] [--grep=pattern]

    Specifying --dot or --spec will change the output from the default TAP style. Specifying --grep will only run the test files that match the given pattern.

    coverage

    npm run coverage [--html]

    This will output a textual coverage report. Including --html will also open an HTML coverage report in the default browser.

    Install

    npm i eventuate-once

    DownloadsWeekly Downloads

    1

    Version

    1.1.0

    License

    MIT

    Last publish

    Collaborators

    • jasonpincin