You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
478 B
28 lines
478 B
'use strict' |
|
|
|
function id (e) { return e } |
|
var prop = require('../util/prop') |
|
var drain = require('./drain') |
|
|
|
module.exports = function find (test, cb) { |
|
var ended = false |
|
if(!cb) |
|
cb = test, test = id |
|
else |
|
test = prop(test) || id |
|
|
|
return drain(function (data) { |
|
if(test(data)) { |
|
ended = true |
|
cb(null, data) |
|
return false |
|
} |
|
}, function (err) { |
|
if(ended) return //already called back |
|
cb(err === true ? null : err, null) |
|
}) |
|
} |
|
|
|
|
|
|
|
|
|
|