FsaNodeFs.d.ts 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. import { FsaNodeDirent } from './FsaNodeDirent';
  2. import { FsaNodeStats } from './FsaNodeStats';
  3. import { FsSynchronousApi } from '../node/types/FsSynchronousApi';
  4. import { FsaNodeWriteStream } from './FsaNodeWriteStream';
  5. import { FsaNodeReadStream } from './FsaNodeReadStream';
  6. import { FsaNodeCore } from './FsaNodeCore';
  7. import type { FsCallbackApi, FsPromisesApi } from '../node/types';
  8. import type { FsCommonObjects } from '../node/types/FsCommonObjects';
  9. /**
  10. * Constructs a Node.js `fs` API from a File System Access API
  11. * [`FileSystemDirectoryHandle` object](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle).
  12. */
  13. export declare class FsaNodeFs extends FsaNodeCore implements FsCallbackApi, FsSynchronousApi, FsCommonObjects {
  14. readonly promises: FsPromisesApi;
  15. readonly open: FsCallbackApi['open'];
  16. readonly close: FsCallbackApi['close'];
  17. readonly read: FsCallbackApi['read'];
  18. readonly readFile: FsCallbackApi['readFile'];
  19. readonly write: FsCallbackApi['write'];
  20. readonly writev: FsCallbackApi['writev'];
  21. readonly writeFile: FsCallbackApi['writeFile'];
  22. readonly copyFile: FsCallbackApi['copyFile'];
  23. /**
  24. * @todo There is a proposal for native "self remove" operation.
  25. * @see https://github.com/whatwg/fs/blob/main/proposals/Remove.md
  26. */
  27. readonly unlink: FsCallbackApi['unlink'];
  28. readonly realpath: FsCallbackApi['realpath'];
  29. readonly stat: FsCallbackApi['stat'];
  30. readonly lstat: FsCallbackApi['lstat'];
  31. readonly fstat: FsCallbackApi['fstat'];
  32. private getHandleStats;
  33. /**
  34. * @todo There is a proposal for native move support.
  35. * @see https://github.com/whatwg/fs/blob/main/proposals/MovingNonOpfsFiles.md
  36. */
  37. readonly rename: FsCallbackApi['rename'];
  38. readonly exists: FsCallbackApi['exists'];
  39. readonly access: FsCallbackApi['access'];
  40. readonly appendFile: FsCallbackApi['appendFile'];
  41. readonly readdir: FsCallbackApi['readdir'];
  42. readonly readlink: FsCallbackApi['readlink'];
  43. /** @todo Could this use `FileSystemSyncAccessHandle.flush` through a Worker thread? */
  44. readonly fsync: FsCallbackApi['fsync'];
  45. readonly fdatasync: FsCallbackApi['fdatasync'];
  46. readonly ftruncate: FsCallbackApi['ftruncate'];
  47. readonly truncate: FsCallbackApi['truncate'];
  48. readonly futimes: FsCallbackApi['futimes'];
  49. readonly utimes: FsCallbackApi['utimes'];
  50. readonly mkdir: FsCallbackApi['mkdir'];
  51. readonly mkdtemp: FsCallbackApi['mkdtemp'];
  52. private rmAll;
  53. readonly rmdir: FsCallbackApi['rmdir'];
  54. readonly rm: FsCallbackApi['rm'];
  55. readonly fchmod: FsCallbackApi['fchmod'];
  56. readonly chmod: FsCallbackApi['chmod'];
  57. readonly lchmod: FsCallbackApi['lchmod'];
  58. readonly fchown: FsCallbackApi['fchown'];
  59. readonly chown: FsCallbackApi['chown'];
  60. readonly lchown: FsCallbackApi['lchown'];
  61. readonly createWriteStream: FsCallbackApi['createWriteStream'];
  62. readonly createReadStream: FsCallbackApi['createReadStream'];
  63. readonly cp: FsCallbackApi['cp'];
  64. readonly lutimes: FsCallbackApi['lutimes'];
  65. readonly openAsBlob: FsCallbackApi['openAsBlob'];
  66. readonly opendir: FsCallbackApi['opendir'];
  67. readonly readv: FsCallbackApi['readv'];
  68. readonly statfs: FsCallbackApi['statfs'];
  69. /**
  70. * @todo Watchers could be implemented in the future on top of `FileSystemObserver`,
  71. * which is currently a proposal.
  72. * @see https://github.com/whatwg/fs/blob/main/proposals/FileSystemObserver.md
  73. */
  74. readonly watchFile: FsCallbackApi['watchFile'];
  75. readonly unwatchFile: FsCallbackApi['unwatchFile'];
  76. readonly watch: FsCallbackApi['watch'];
  77. readonly symlink: FsCallbackApi['symlink'];
  78. readonly link: FsCallbackApi['link'];
  79. readonly statSync: FsSynchronousApi['statSync'];
  80. readonly lstatSync: FsSynchronousApi['lstatSync'];
  81. readonly fstatSync: FsSynchronousApi['fstatSync'];
  82. readonly accessSync: FsSynchronousApi['accessSync'];
  83. readonly readFileSync: FsSynchronousApi['readFileSync'];
  84. readonly writeFileSync: FsSynchronousApi['writeFileSync'];
  85. readonly appendFileSync: FsSynchronousApi['appendFileSync'];
  86. readonly closeSync: FsSynchronousApi['closeSync'];
  87. readonly existsSync: FsSynchronousApi['existsSync'];
  88. readonly copyFileSync: FsSynchronousApi['copyFileSync'];
  89. readonly renameSync: FsSynchronousApi['renameSync'];
  90. readonly rmdirSync: FsSynchronousApi['rmdirSync'];
  91. readonly rmSync: FsSynchronousApi['rmSync'];
  92. readonly mkdirSync: FsSynchronousApi['mkdirSync'];
  93. readonly mkdtempSync: FsSynchronousApi['mkdtempSync'];
  94. readonly readlinkSync: FsSynchronousApi['readlinkSync'];
  95. readonly truncateSync: FsSynchronousApi['truncateSync'];
  96. readonly ftruncateSync: FsSynchronousApi['ftruncateSync'];
  97. readonly unlinkSync: FsSynchronousApi['unlinkSync'];
  98. readonly readdirSync: FsSynchronousApi['readdirSync'];
  99. readonly realpathSync: FsSynchronousApi['realpathSync'];
  100. readonly readSync: FsSynchronousApi['readSync'];
  101. readonly writeSync: FsSynchronousApi['writeSync'];
  102. readonly openSync: FsSynchronousApi['openSync'];
  103. readonly writevSync: FsSynchronousApi['writevSync'];
  104. readonly fdatasyncSync: FsSynchronousApi['fdatasyncSync'];
  105. readonly fsyncSync: FsSynchronousApi['fsyncSync'];
  106. readonly chmodSync: FsSynchronousApi['chmodSync'];
  107. readonly chownSync: FsSynchronousApi['chownSync'];
  108. readonly fchmodSync: FsSynchronousApi['fchmodSync'];
  109. readonly fchownSync: FsSynchronousApi['fchownSync'];
  110. readonly futimesSync: FsSynchronousApi['futimesSync'];
  111. readonly lchmodSync: FsSynchronousApi['lchmodSync'];
  112. readonly lchownSync: FsSynchronousApi['lchownSync'];
  113. readonly utimesSync: FsSynchronousApi['utimesSync'];
  114. readonly lutimesSync: FsSynchronousApi['lutimesSync'];
  115. readonly cpSync: FsSynchronousApi['cpSync'];
  116. readonly opendirSync: FsSynchronousApi['opendirSync'];
  117. readonly statfsSync: FsSynchronousApi['statfsSync'];
  118. readonly readvSync: FsSynchronousApi['readvSync'];
  119. readonly symlinkSync: FsSynchronousApi['symlinkSync'];
  120. readonly linkSync: FsSynchronousApi['linkSync'];
  121. readonly F_OK: number;
  122. readonly R_OK: number;
  123. readonly W_OK: number;
  124. readonly X_OK: number;
  125. readonly constants: {
  126. O_RDONLY: number;
  127. O_WRONLY: number;
  128. O_RDWR: number;
  129. S_IFMT: number;
  130. S_IFREG: number;
  131. S_IFDIR: number;
  132. S_IFCHR: number;
  133. S_IFBLK: number;
  134. S_IFIFO: number;
  135. S_IFLNK: number;
  136. S_IFSOCK: number;
  137. O_CREAT: number;
  138. O_EXCL: number;
  139. O_NOCTTY: number;
  140. O_TRUNC: number;
  141. O_APPEND: number;
  142. O_DIRECTORY: number;
  143. O_NOATIME: number;
  144. O_NOFOLLOW: number;
  145. O_SYNC: number;
  146. O_SYMLINK: number;
  147. O_DIRECT: number;
  148. O_NONBLOCK: number;
  149. S_IRWXU: number;
  150. S_IRUSR: number;
  151. S_IWUSR: number;
  152. S_IXUSR: number;
  153. S_IRWXG: number;
  154. S_IRGRP: number;
  155. S_IWGRP: number;
  156. S_IXGRP: number;
  157. S_IRWXO: number;
  158. S_IROTH: number;
  159. S_IWOTH: number;
  160. S_IXOTH: number;
  161. F_OK: number;
  162. R_OK: number;
  163. W_OK: number;
  164. X_OK: number;
  165. UV_FS_SYMLINK_DIR: number;
  166. UV_FS_SYMLINK_JUNCTION: number;
  167. UV_FS_COPYFILE_EXCL: number;
  168. UV_FS_COPYFILE_FICLONE: number;
  169. UV_FS_COPYFILE_FICLONE_FORCE: number;
  170. COPYFILE_EXCL: number;
  171. COPYFILE_FICLONE: number;
  172. COPYFILE_FICLONE_FORCE: number;
  173. };
  174. readonly Dirent: typeof FsaNodeDirent;
  175. readonly Stats: {
  176. new (isBigInt: boolean, size: any, kind: "file" | "directory"): FsaNodeStats<any>;
  177. };
  178. readonly WriteStream: typeof FsaNodeWriteStream;
  179. readonly ReadStream: typeof FsaNodeReadStream;
  180. readonly StatFs: any;
  181. readonly Dir: any;
  182. readonly StatsWatcher: any;
  183. readonly FSWatcher: any;
  184. }