UNPKG

@cypsela/browser-source

Version:

W3C's FileSystemEntry and FileSystemHandle as a sources for @helia/unixfs

57 lines 2.07 kB
import type { Mtime } from "ipfs-unixfs"; export type BrowserFsEntry = FileSystemEntry; export type BrowserFsHandle = FileSystemHandle; export type BrowserFsItem = BrowserFsEntry | BrowserFsHandle; export type BrowserFsDir<T extends BrowserFsItem> = T extends BrowserFsEntry ? FileSystemDirectoryEntry : T extends BrowserFsHandle ? FileSystemDirectoryHandle : never; export type BrowserFsFile<T extends BrowserFsItem> = T extends FileSystemEntry ? FileSystemFileEntry : T extends FileSystemHandle ? FileSystemFileHandle : never; export interface GetEntries<T extends BrowserFsItem> { (dir: BrowserFsDir<T>): AsyncGenerator<T>; } export interface GetFile<T extends BrowserFsItem> { (file: BrowserFsFile<T>): Promise<File>; } export interface GetKind<T extends BrowserFsItem> { (item: T): FileSystemHandleKind; } export interface BrowserFsItemSourceResult { path: string; content: AsyncIterable<Uint8Array> | undefined; mtime: Mtime | undefined; mode: number | undefined; } export interface BrowserFsItemSourceOptions { /** * Include .dot files in matched paths. */ hidden?: boolean; /** * Include only output files */ onlyFiles?: boolean; /** * Path prefix, must end with '/' */ prefix?: string; /** * Preserve mtime */ preserveMtime?: boolean; /** * mode to use */ mode?: number; /** * mtime to use - if preserveMtime is true this will be ignored */ mtime?: Mtime; } export interface BrowserFsItemSource<T extends BrowserFsItem> { (source: T, getEntries: GetEntries<T>, getFile: GetFile<T>, options?: BrowserFsItemSourceOptions): AsyncGenerator<BrowserFsItemSourceResult>; } export interface FileSystemEntrySource { (source: FileSystemEntry, options?: BrowserFsItemSourceOptions): AsyncGenerator<BrowserFsItemSourceResult>; } export interface FileSystemHandleSource { (source: FileSystemHandle, options?: BrowserFsItemSourceOptions): AsyncGenerator<BrowserFsItemSourceResult>; } //# sourceMappingURL=interface.d.ts.map