UNPKG

@loom-io/core

Version:

A file system wrapper for Node.js and Bun

37 lines (36 loc) 1.77 kB
import { Directory } from './dir.js'; import { DirentWrapper } from '../wrapper/dirent.js'; import type { LoomFile } from './file.js'; import { ObjectDirentInterface } from '../definitions.js'; export type ListTypes = LoomFile | Directory; type PickMatching<T, V> = { [K in keyof T as T[K] extends V ? K : never]: T[K]; }; type DirentMethodsName = keyof PickMatching<DirentWrapper, () => unknown>; export declare class List<T extends ListTypes = ListTypes> { protected _dirent: DirentWrapper[]; static from<T extends ListTypes>(list: List<T>): List<T>; static from<T extends ListTypes>(direntWraps: DirentWrapper[]): List<T>; constructor(); constructor(dir: Directory, paths: ObjectDirentInterface[]); protected add(paths: DirentWrapper[]): void; protected add(list: List<T>): void; protected add(listOrWrap: List<T> | DirentWrapper[]): void; concat<U extends ListTypes>(...lists: Array<List<U>>): List<T | U>; get length(): number; protected convert(wrap: DirentWrapper): LoomFile<import("../definitions.js").SourceAdapter<import("../definitions.js").FileStat>> | Directory; at(index: number): LoomFile<import("../definitions.js").SourceAdapter<import("../definitions.js").FileStat>> | Directory; first<T = Directory | LoomFile>(): T; last<T = Directory | LoomFile>(): T; asArray(): Array<T>; filter<T extends ListTypes>(fn: (wrap: DirentWrapper) => boolean): List<T>; only(type: 'directories' | 'dirs'): List<Directory>; only(type: 'files'): List<LoomFile>; /** * @deprecated Deprecated use only instead */ filterByType(direntMethod: DirentMethodsName): List<ListTypes>; [Symbol.iterator](): IterableIterator<T>; get [Symbol.toStringTag](): string; } export {};