|
import Entry, { DefaultEntry, BaseEntry } from './entry'; |
|
declare namespace FSTree { |
|
type Operand = 'unlink' | 'rmdir' | 'create' | 'change' | 'mkdir'; |
|
type Operation = [Operand, string, DefaultEntry] | [Operand, string]; |
|
type Patch = Operation[]; |
|
type Entry = import('./entry').DefaultEntry; |
|
interface Options { |
|
entries?: BaseEntry[]; |
|
sortAndExpand?: boolean; |
|
} |
|
interface StaticOptions { |
|
sortAndExpand?: boolean; |
|
} |
|
interface PatchDelegate { |
|
unlink?(inputPath: string, outputPath: string, relativePath: string): void; |
|
rmdir?(inputPath: string, outputPath: string, relativePath: string): void; |
|
mkdir?(inputPath: string, outputPath: string, relativePath: string): void; |
|
change?(inputPath: string, outputPath: string, relativePath: string): void; |
|
create?(inputPath: string, outputPath: string, relativePath: string): void; |
|
} |
|
} |
|
declare class FSTree<T extends BaseEntry = DefaultEntry> { |
|
entries: T[]; |
|
constructor(options?: { |
|
entries?: T[]; |
|
sortAndExpand?: boolean; |
|
}); |
|
static fromPaths(paths: string[], options?: FSTree.StaticOptions): FSTree<Entry>; |
|
static fromEntries<T extends BaseEntry>(entries: T[], options?: FSTree.StaticOptions): FSTree<T>; |
|
readonly size: number; |
|
addEntries(entries: T[], options?: FSTree.StaticOptions): void; |
|
addPaths(paths: string[], options?: FSTree.StaticOptions): void; |
|
forEach(fn: (entry: T, index: number, collection: T[]) => void, context: any): void; |
|
calculatePatch<K extends BaseEntry>(theirFSTree: FSTree<K>, isEqual?: (a: T, b: K) => boolean): FSTree.Patch; |
|
calculateAndApplyPatch(otherFSTree: FSTree<T>, input: string, output: string, delegate?: FSTree.PatchDelegate): void; |
|
static defaultIsEqual(entryA: DefaultEntry, entryB: DefaultEntry): boolean; |
|
static applyPatch(input: string, output: string, patch: FSTree.Patch, _delegate?: FSTree.PatchDelegate): void; |
|
} |
|
export = FSTree; |
|
|