nufatfs
Version:
A new async-friendly library for accessing FAT16 and FAT32 filesystems
68 lines • 3.22 kB
TypeScript
import { Chain } from "./chained-structures";
import { ClusterAllocator } from "./cluster-allocator";
import { ClusterChainLink } from "./cluster-chain";
import { BaseBootSectorInfo, Driver, Fat32Extension, FatBootInfo, FatFSDirectoryEntry, FatFSInformation } from "./types";
export declare class FatError extends Error {
}
export type CachedFatDirectoryEntry = CachedDirectory | FatFSDirectoryEntry;
export declare const FAT_MARKER_DELETED = 229;
export declare const FORBIDDEN_ATTRIBUTES_FOR_FILE: number;
export declare class CachedDirectory {
private fat;
initialCluster: number;
underlying: FatFSDirectoryEntry | null;
rawDirectoryEntries?: CachedFatDirectoryEntry[];
constructor(fat: LowLevelFatFilesystem, initialCluster: number, underlying: FatFSDirectoryEntry | null);
getEntries(): Promise<CachedFatDirectoryEntry[]>;
findEntry(name: string, typeRequired?: 'directory' | 'file'): Promise<CachedFatDirectoryEntry | null>;
listDir(): Promise<string[] | null>;
static readyMade(fat: LowLevelFatFilesystem, entries: FatFSDirectoryEntry[], initialCluster: number, underlying: FatFSDirectoryEntry | null): CachedDirectory;
}
export declare enum FatType {
Fat12 = 0,
Fat16 = 1,
Fat32 = 2
}
export declare class LowLevelFatFilesystem {
driver: Driver;
bootsectorInfo?: BaseBootSectorInfo;
fatBootInfo?: FatBootInfo;
fat32Extension?: Fat32Extension;
fsInfo?: FatFSInformation;
maxCluster: number;
maxDataCluster: number;
fatType: FatType;
get isFat16Or12(): boolean;
fat16ClusterAreaOffset: number;
root?: CachedDirectory;
isWritable: boolean;
endOfChain: number[];
alteredFATSectors: Set<number>;
private fatAltered;
private fatContents?;
private alteredDirectoryEntries;
allocator?: ClusterAllocator;
private clusterToSector;
readFATClusterEntry(number: number): number;
writeFATClusterEntry(number: number, next: number): void;
private get dataSectorOffset();
get logicalSectorsPerFat(): number;
get clusterSizeInBytes(): number;
private constructor();
private load;
getRootDirectoryData(): Promise<FatFSDirectoryEntry[]>;
markAsAltered(entry: CachedDirectory): void;
markFatAsAltered(): void;
consumeAllDirectoryEntries(data: Uint8Array, includeDeleted?: boolean): FatFSDirectoryEntry[];
getClusterChainFromFAT(initialCluster: number): number[];
constructClusterChain(initialCluster: number, enableAllocator?: boolean, limitLength?: number): Chain<ClusterChainLink>;
readAndConsumeAllDirectoryEntries(initialCluster: number): Promise<FatFSDirectoryEntry[]>;
readClusters(clusterNumber: number, count: number): Promise<Uint8Array>;
writeClusters(clusterNumber: number, data: Uint8Array): Promise<void>;
redefineClusterChain(oldInitialCluster: number, newChain: number[]): Promise<void>;
flush(): Promise<void>;
traverseEntries(path: string): Promise<CachedFatDirectoryEntry[] | null>;
traverse(path: string): Promise<CachedFatDirectoryEntry | null>;
static _create(driver: Driver, bypassCoherencyCheck?: boolean, forceFSType?: FatType): Promise<LowLevelFatFilesystem>;
}
//# sourceMappingURL=low-level.d.ts.map