Spaces:
Sleeping
Sleeping
| const EventEmitter = require('bare-events') | |
| const fs = require('.') | |
| class FileHandle extends EventEmitter { | |
| constructor(fd) { | |
| super() | |
| this.fd = fd | |
| } | |
| async close() { | |
| await fs.close(this.fd) | |
| this.fd = -1 | |
| this.emit('close') | |
| } | |
| async read(buffer, ...args) { | |
| return { | |
| bytesRead: await fs.read(this.fd, buffer, ...args), | |
| buffer | |
| } | |
| } | |
| async readv(buffers, ...args) { | |
| return { | |
| bytesRead: await fs.readv(this.fd, buffers, ...args), | |
| buffers | |
| } | |
| } | |
| async write(buffer, ...args) { | |
| return { | |
| bytesWritten: await fs.write(this.fd, buffer, ...args), | |
| buffer | |
| } | |
| } | |
| async writev(buffers, ...args) { | |
| return { | |
| bytesWritten: await fs.writev(this.fd, buffers, ...args), | |
| buffers | |
| } | |
| } | |
| async stat() { | |
| return fs.fstat(this.fd) | |
| } | |
| async chmod(mode) { | |
| await fs.fchmod(this.fd, mode) | |
| } | |
| async chown(uid, gid) { | |
| await fs.fchown(this.fd, uid, gid) | |
| } | |
| async datasync() { | |
| return fs.fdatasync(this.fd) | |
| } | |
| async sync() { | |
| return fs.fsync(this.fd) | |
| } | |
| async truncate(len) { | |
| await fs.ftruncate(this.fd, len) | |
| } | |
| async utimes(atime, mtime) { | |
| await fs.futimes(this.fd, atime, mtime) | |
| } | |
| createReadStream(opts) { | |
| return fs.createReadStream(null, { ...opts, fd: this.fd }) | |
| } | |
| createWriteStream(opts) { | |
| return fs.createWriteStream(null, { ...opts, fd: this.fd }) | |
| } | |
| async [Symbol.asyncDispose]() { | |
| await this.close() | |
| } | |
| } | |
| exports.open = async function open(filepath, flags, mode) { | |
| return new FileHandle(await fs.open(filepath, flags, mode)) | |
| } | |
| exports.access = fs.access | |
| exports.appendFile = fs.appendFile | |
| exports.chmod = fs.chmod | |
| exports.chown = fs.chown | |
| exports.constants = fs.constants | |
| exports.copyFile = fs.copyFile | |
| exports.cp = fs.cp | |
| exports.lchown = fs.lchown | |
| exports.lutimes = fs.lutimes | |
| exports.link = fs.link | |
| exports.lstat = fs.lstat | |
| exports.mkdir = fs.mkdir | |
| exports.mkdtemp = fs.mkdtemp | |
| exports.opendir = fs.opendir | |
| exports.readFile = fs.readFile | |
| exports.readdir = fs.readdir | |
| exports.readlink = fs.readlink | |
| exports.realpath = fs.realpath | |
| exports.rename = fs.rename | |
| exports.rm = fs.rm | |
| exports.rmdir = fs.rmdir | |
| exports.stat = fs.stat | |
| exports.statfs = fs.statfs | |
| exports.truncate = fs.truncate | |
| exports.symlink = fs.symlink | |
| exports.unlink = fs.unlink | |
| exports.utimes = fs.utimes | |
| exports.watch = fs.watch | |
| exports.writeFile = fs.writeFile | |