FsaNodeFs.d.ts 7.9 KB

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