refactor(pipe) create: add range

This commit is contained in:
coderaiser 2014-04-07 10:32:32 -04:00
parent 5a085a38d1
commit 598505fa62

View file

@ -35,12 +35,19 @@
function create(params) {
var gzip, read, write, isFsWrite,
p = params,
func = Util.retExec(p.callback);
func = Util.retExec(p.callback),
options = {
bufferSize: 4 * 1024
};
if (p) {
read = p.read || fs.createReadStream(p.from, {
bufferSize: 4 * 1024
});
if (p.range)
options = {
start : p.range.start,
end : p.range.end,
};
read = p.read || fs.createReadStream(p.from, options);
if (p.write)
write = p.write;
@ -63,16 +70,11 @@
read.on('error', func);
Util.ifExec(!isFsWrite, function() {
read.on('data', function(data) {
write.write(data);
read.pipe(write, {
end: !p.notEnd
});
read.on('end', function() {
if (!p.notEnd)
write.end();
func();
});
read.on('end', func);
}, function(callback) {
write.on('open', callback);
});