Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
| '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 | |
| } |