FsaNodeFsOpenFile.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. else
  23. this.keepExistingData = true;
  24. const keepExistingData = this.keepExistingData;
  25. const writer = await this.file.createWritable({ keepExistingData });
  26. await writer.write({
  27. type: 'write',
  28. data,
  29. position: seek,
  30. });
  31. await writer.close();
  32. this.keepExistingData = true;
  33. this.seek += data.byteLength;
  34. }
  35. }
  36. exports.FsaNodeFsOpenFile = FsaNodeFsOpenFile;
  37. //# sourceMappingURL=FsaNodeFsOpenFile.js.map