Node.d.ts 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { FanOut } from 'thingies/lib/fanout';
  2. import { Buffer } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';
  3. export type NodeEventModify = [type: 'modify'];
  4. export type NodeEventDelete = [type: 'delete'];
  5. export type NodeEvent = NodeEventModify | NodeEventDelete;
  6. /**
  7. * Node in a file system (like i-node, v-node).
  8. */
  9. export declare class Node {
  10. readonly changes: FanOut<NodeEvent>;
  11. ino: number;
  12. private _uid;
  13. private _gid;
  14. private _atime;
  15. private _mtime;
  16. private _ctime;
  17. buf: Buffer;
  18. /** Total allocated memory capacity for this node. */
  19. private capacity;
  20. /** Actually used bytes to store content. */
  21. private size;
  22. rdev: number;
  23. mode: number;
  24. private _nlink;
  25. symlink: string;
  26. constructor(ino: number, mode?: number);
  27. set ctime(ctime: Date);
  28. get ctime(): Date;
  29. set uid(uid: number);
  30. get uid(): number;
  31. set gid(gid: number);
  32. get gid(): number;
  33. set atime(atime: Date);
  34. get atime(): Date;
  35. set mtime(mtime: Date);
  36. get mtime(): Date;
  37. get perm(): number;
  38. set perm(perm: number);
  39. set nlink(nlink: number);
  40. get nlink(): number;
  41. getString(encoding?: BufferEncoding): string;
  42. setString(str: string): void;
  43. getBuffer(): Buffer;
  44. setBuffer(buf: Buffer): void;
  45. private _setBuf;
  46. getSize(): number;
  47. setModeProperty(property: number): void;
  48. isFile(): boolean;
  49. isDirectory(): boolean;
  50. isSymlink(): boolean;
  51. isCharacterDevice(): boolean;
  52. makeSymlink(symlink: string): void;
  53. write(buf: Buffer, off?: number, len?: number, pos?: number): number;
  54. /**
  55. * Read data from the file.
  56. *
  57. * @param buf Buffer to read data into.
  58. * @param off Offset int the `buf` where to start writing data.
  59. * @param len How many bytes to read. Equals to `buf.byteLength` by default.
  60. * @param pos Position offset in file where to start reading. Defaults to `0`.
  61. * @returns Returns the number of bytes read.
  62. */
  63. read(buf: Buffer | ArrayBufferView | DataView, off?: number, len?: number, pos?: number): number;
  64. truncate(len?: number): void;
  65. chmod(perm: number): void;
  66. chown(uid: number, gid: number): void;
  67. touch(): void;
  68. canRead(uid?: number, gid?: number): boolean;
  69. canWrite(uid?: number, gid?: number): boolean;
  70. canExecute(uid?: number, gid?: number): boolean;
  71. del(): void;
  72. toJSON(): {
  73. ino: number;
  74. uid: number;
  75. gid: number;
  76. atime: number;
  77. mtime: number;
  78. ctime: number;
  79. perm: number;
  80. mode: number;
  81. nlink: number;
  82. symlink: string;
  83. data: string;
  84. };
  85. }