Skip to content

Commit

Permalink
Added `Utils.filestreamer(filename, onbuffer(buffer, next), onend, [b…
Browse files Browse the repository at this point in the history
…uffer_size])`.
  • Loading branch information
petersirka committed Aug 14, 2024
1 parent a9dae8e commit 7170b1b
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
- fixed partial validation
- fixed permissions error handling in actions
- added `Image` global variable
- added `Utils.filestreamer(filename, onbuffer(buffer, next), onend, [buffer_size])`

========================
0.0.5
Expand Down
28 changes: 28 additions & 0 deletions utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -1556,6 +1556,34 @@ exports.streamer2 = function(beg, end, callback, skip, stream) {
return exports.streamer(beg, end, callback, skip, stream, true);
};

exports.filestreamer = function(filename, onbuffer, onend, size) {

if (typeof(onend) === 'number') {
size = onend;
onend = null;
}

var Fd = null;

var read = function(offset) {
var buffer = Buffer.alloc(size || (1024 * 16));
Total.Fs.read(Fd, buffer, 0, buffer.length, offset, function(err, bytes) {
if (err || !bytes) {
onend && onend(err);
Total.Fs.close(Fd, NOOP);
} else {
onbuffer(buffer.length !== read ? buffer.slice(0, bytes) : buffer, next => read(offset + bytes));
}
});
};

Total.Fs.open(filename, function(err, fd) {
Fd = fd;
read(0);
});

};

exports.parseInt = function(obj, def) {
if (obj == null || obj === '')
return def === undefined ? 0 : def;
Expand Down

0 comments on commit 7170b1b

Please sign in to comment.