FsaNodeFsOpenFile.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.FsaNodeFsOpenFile = void 0;
  4. /**
  5. * Represents an open file. Stores additional metadata about the open file, such
  6. * as the seek position.
  7. */
  8. class FsaNodeFsOpenFile {
  9. constructor(fd, createMode, flags, file, filename) {
  10. this.fd = fd;
  11. this.createMode = createMode;
  12. this.flags = flags;
  13. this.file = file;
  14. this.filename = filename;
  15. this.seek = 0;
  16. this.keepExistingData = !!(flags & 1024 /* FLAG.O_APPEND */);
  17. }
  18. async close() { }
  19. async write(data, seek) {
  20. if (typeof seek !== 'number')
  21. seek = this.seek;
  22. const writer = await this.file.createWritable({ keepExistingData: this.keepExistingData });
  23. await writer.write({
  24. type: 'write',
  25. data,
  26. position: seek,
  27. });
  28. await writer.close();
  29. this.keepExistingData = true;
  30. this.seek += data.byteLength;
  31. }
  32. }
  33. exports.FsaNodeFsOpenFile = FsaNodeFsOpenFile;
  34. //# sourceMappingURL=FsaNodeFsOpenFile.js.map