File.d.ts 1.4 KB

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