random-access-file-promises
Version:
TypeScript wrapper of random-access-file library with added Promise support
101 lines (71 loc) • 3.44 kB
Markdown
This is a TypeScript wrapper of JS [random-access-file](https://github.com/random-access-storage/random-access-file) library that wraps its callback-based API in Promises.
```js
import {RandomAccessFile} from 'random-access-file-promises';
const file = new RandomAccessFile('path/to/file');
try {
const buffer = await file.read(42, 10);
console.log(buffer);
await file.write(42, Buffer.from('Hello, world!'));
} finally {
await file.close();
}
```
For convenience, there is also a `withFile` function that automatically closes the file when the callback returns:
```js
import {withFile} from 'random-access-file-promises';
await withFile('path/to/file', async (file) => {
const buffer = await file.read(42, 10);
console.log(buffer);
await file.write(42, Buffer.from('Hello, world!'));
});
```
Creates a new instance of `RandomAccessFile` class.
Reads `size` bytes from the file at the given `offset`.
Writes `buffer` to the file at the given `offset`.
Returns the file stats, currently only `size` is supported.
Truncates the file to the given `length`.
Deletes `length` bytes from the file at the given `offset`.
Closes the file.
Unlinks the file, removes the directories up to `opts.directory` if `opts.rmdir` is set to `true`
Creates a new `Pool` instance of size `maxSize`.
Opens the file, calls the callback with the file instance and closes the file when the callback returns or errors out.
Options for `RandomAccessFile` class.
Initial size of the file.
Specifies if the file should be truncated if `opts.size` is not provided.
Directory to resolve the file in. Also acts as root directory if `opts.rmdir` is set to `true`.
Specifies if the file should be opened in read mode.
Both `readable` and `writable` set to `true` results in `RW` mode.
Both `readable` and `writable` set to `false` results in `W` mode.
Specifies if the file should be opened in write mode.
Both `readable` and `writable` set to `true` results in `RW` mode.
Both `readable` and `writable` set to `false` results in `W` mode.
Specify the pool to which this file belongs. Pool cam be created with `createPool` function.
Specifies if the directory should be removed when the file is unlinked.
Specifies if a process-level lock should be acquired on the file. Files open in readonly mode provide a `shared` flag to `flock`.
Specifies if the file should be marked as a sparse file. May be required for `del` operation.
Buffer allocation function.`Buffer.allocUnsafe` is used by default.