£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! var Readable = require('readable-stream').Readable var shift = require('stream-shift') var stream2 = function (stream) { if (stream._readableState) return stream return new Readable({objectMode: true, highWaterMark: 16}).wrap(stream) } module.exports = function (stream) { stream = stream2(stream) var ended = false var data = null var err = null var destroyed = false var fn = null var consume = function (e) { if (e) { destroyed = true if (stream.destroy) stream.destroy(e) return } data = null err = null } var onresult = function () { if (!fn) return var tmp = fn fn = undefined tmp(err, data, consume) } var update = function () { if (!fn) return data = shift(stream) if (data === null && !ended) return onresult() } var onend = function () { ended = true onresult() } stream.on('readable', update) stream.on('error', function (e) { err = e onresult() }) stream.on('close', function () { if (stream._readableState.ended) return onend() }) stream.on('end', onend) return function (callback) { if (destroyed) return if (err) return callback(err, null, consume) if (data) return callback(null, data, consume) if (ended) return callback(null, null, consume) fn = callback update() } }