34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.FsaNodeFsOpenFile = void 0;
|
|
/**
|
|
* Represents an open file. Stores additional metadata about the open file, such
|
|
* as the seek position.
|
|
*/
|
|
class FsaNodeFsOpenFile {
|
|
constructor(fd, createMode, flags, file, filename) {
|
|
this.fd = fd;
|
|
this.createMode = createMode;
|
|
this.flags = flags;
|
|
this.file = file;
|
|
this.filename = filename;
|
|
this.seek = 0;
|
|
this.keepExistingData = !!(flags & 1024 /* FLAG.O_APPEND */);
|
|
}
|
|
async close() { }
|
|
async write(data, seek) {
|
|
if (typeof seek !== 'number')
|
|
seek = this.seek;
|
|
const writer = await this.file.createWritable({ keepExistingData: this.keepExistingData });
|
|
await writer.write({
|
|
type: 'write',
|
|
data,
|
|
position: seek,
|
|
});
|
|
await writer.close();
|
|
this.keepExistingData = true;
|
|
this.seek += data.byteLength;
|
|
}
|
|
}
|
|
exports.FsaNodeFsOpenFile = FsaNodeFsOpenFile;
|
|
//# sourceMappingURL=FsaNodeFsOpenFile.js.map
|