CoreFileSystemObserver.d.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import { CoreWatcher } from '@jsonjoy.com/fs-core';
  2. import type { Superblock } from '@jsonjoy.com/fs-core';
  3. import type { IFileSystemChangeRecord, IFileSystemDirectoryHandle, IFileSystemFileHandle, IFileSystemHandle, IFileSystemObserver, IFileSystemObserverObserveOptions, IFileSystemSyncAccessHandle } from './types';
  4. /**
  5. * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemChangeRecord
  6. */
  7. export declare class FileSystemChangeRecord implements IFileSystemChangeRecord {
  8. readonly root: IFileSystemHandle | IFileSystemSyncAccessHandle | IFileSystemDirectoryHandle;
  9. readonly type: IFileSystemChangeRecord['type'];
  10. readonly changedHandle: IFileSystemHandle | IFileSystemSyncAccessHandle | IFileSystemDirectoryHandle | null;
  11. readonly relativePathComponents: string[];
  12. readonly relativePathMovedFrom: string[] | null;
  13. constructor(root: IFileSystemHandle | IFileSystemSyncAccessHandle | IFileSystemDirectoryHandle, type: IFileSystemChangeRecord['type'], changedHandle: IFileSystemHandle | IFileSystemSyncAccessHandle | IFileSystemDirectoryHandle | null, relativePathComponents: string[], relativePathMovedFrom?: string[] | null);
  14. }
  15. /**
  16. * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemObserver
  17. */
  18. export declare class CoreFileSystemObserver implements IFileSystemObserver {
  19. protected readonly _core: Superblock;
  20. protected readonly callback: (records: IFileSystemChangeRecord[], observer: IFileSystemObserver) => void;
  21. protected readonly _observations: Map<IFileSystemDirectoryHandle | IFileSystemFileHandle | IFileSystemSyncAccessHandle, CoreWatcher>;
  22. protected _records: IFileSystemChangeRecord[];
  23. protected _flushScheduled: boolean;
  24. constructor(_core: Superblock, callback: (records: IFileSystemChangeRecord[], observer: IFileSystemObserver) => void);
  25. observe(handle: IFileSystemFileHandle | IFileSystemDirectoryHandle | IFileSystemSyncAccessHandle, options?: IFileSystemObserverObserveOptions): Promise<void>;
  26. unobserve(handle: IFileSystemFileHandle | IFileSystemDirectoryHandle | IFileSystemSyncAccessHandle): void;
  27. /** Disconnect and stop all observations. */
  28. disconnect(): void;
  29. private _onEvent;
  30. private _changedHandle;
  31. private _enqueue;
  32. }