123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict';
- const fs = require('fs');
- const pify = require('pify');
- const withOpenFile = require('with-open-file');
-
- const fsReadP = pify(fs.read, {multiArgs: true});
-
- const readChunk = (filePath, startPosition, length) => {
- const buffer = Buffer.alloc(length);
-
- return withOpenFile(filePath, 'r', fileDescriptor =>
- fsReadP(fileDescriptor, buffer, 0, length, startPosition)
- )
- .then(([bytesRead, buffer]) => {
- if (bytesRead < length) {
- buffer = buffer.slice(0, bytesRead);
- }
-
- return buffer;
- });
- };
-
- module.exports = readChunk;
- // TODO: Remove this for the next major release
- module.exports.default = readChunk;
-
- module.exports.sync = (filePath, startPosition, length) => {
- let buffer = Buffer.alloc(length);
-
- const bytesRead = withOpenFile.sync(filePath, 'r', fileDescriptor =>
- fs.readSync(fileDescriptor, buffer, 0, length, startPosition)
- );
-
- if (bytesRead < length) {
- buffer = buffer.slice(0, bytesRead);
- }
-
- return buffer;
- };
|