Skip to content
Please note that GitHub no longer supports Internet Explorer.

We recommend upgrading to the latest Microsoft Edge, Google Chrome, or Firefox.

Learn more
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time. Cannot retrieve contributors at this time
49 lines (42 sloc) 1.22 KB
'use strict'
module.exports = function pull (a) {
var length = arguments.length
if (typeof a === 'function' && a.length === 1) {
var args = new Array(length)
for(var i = 0; i < length; i++)
args[i] = arguments[i]
return function (read) {
if (args == null) {
throw new TypeError("partial sink should only be called once!")
}
// Grab the reference after the check, because it's always an array now
// (engines like that kind of consistency).
var ref = args
args = null
// Prioritize common case of small number of pulls.
switch (length) {
case 1: return pull(read, ref[0])
case 2: return pull(read, ref[0], ref[1])
case 3: return pull(read, ref[0], ref[1], ref[2])
case 4: return pull(read, ref[0], ref[1], ref[2], ref[3])
default:
ref.unshift(read)
return pull.apply(null, ref)
}
}
}
var read = a
if (read && typeof read.source === 'function') {
read = read.source
}
for (var i = 1; i < length; i++) {
var s = arguments[i]
if (typeof s === 'function') {
read = s(read)
} else if (s && typeof s === 'object') {
s.sink(read)
read = s.source
}
}
return read
}
You can’t perform that action at this time.