File.d.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { Link } from './Link';
  2. import type { Node } from './Node';
  3. /**
  4. * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.
  5. *
  6. * @todo Rename to `OpenFile`.
  7. */
  8. export declare class File {
  9. readonly link: Link;
  10. readonly node: Node;
  11. flags: number;
  12. fd: number;
  13. /**
  14. * A cursor/offset position in a file, where data will be written on write.
  15. * User can "seek" this position.
  16. */
  17. position: number;
  18. /**
  19. * Open a Link-Node pair. `node` is provided separately as that might be a different node
  20. * rather the one `link` points to, because it might be a symlink.
  21. * @param link
  22. * @param node
  23. * @param flags
  24. * @param fd
  25. */
  26. constructor(link: Link, node: Node, flags: number, fd: number);
  27. getString(encoding?: string): string;
  28. setString(str: string): void;
  29. getBuffer(): Buffer;
  30. setBuffer(buf: Buffer): void;
  31. getSize(): number;
  32. truncate(len?: number): void;
  33. seekTo(position: number): void;
  34. write(buf: Buffer, offset?: number, length?: number, position?: number | null): number;
  35. read(buf: Buffer | ArrayBufferView | DataView, offset?: number, length?: number, position?: number): number;
  36. chmod(perm: number): void;
  37. chown(uid: number, gid: number): void;
  38. }