GT2/GT2-Android/node_modules/read-chunk/index.js

45 lines
914 B
JavaScript
Raw Normal View History

'use strict';
const fs = require('fs');
const pify = require('pify');
const Buffer = require('safe-buffer').Buffer;
const fsP = pify(fs);
const fsReadP = pify(fs.read, {multiArgs: true});
module.exports = (filepath, pos, len) => {
const buf = Buffer.alloc(len);
return fsP.open(filepath, 'r')
.then(fd =>
fsReadP(fd, buf, 0, len, pos)
.then(readArgs => fsP.close(fd)
.then(() => readArgs))
)
.then(readArgs => {
// TODO: Use destructuring when Node.js 6 is target
const bytesRead = readArgs[0];
let buf = readArgs[1];
if (bytesRead < len) {
buf = buf.slice(0, bytesRead);
}
return buf;
});
};
module.exports.sync = (filepath, pos, len) => {
let buf = Buffer.alloc(len);
const fd = fs.openSync(filepath, 'r');
const bytesRead = fs.readSync(fd, buf, 0, len, pos);
fs.closeSync(fd);
if (bytesRead < len) {
buf = buf.slice(0, bytesRead);
}
return buf;
};