UNPKG

kura

Version:

The FileSystem API abstraction library.

70 lines (63 loc) 1.91 kB
import { DirectoryReaderAsync } from "./DirectoryReaderAsync"; import { EntryAsync } from "./EntryAsync"; import { FileEntryAsync } from "./FileEntryAsync"; import { DirectoryEntry, Entry, Flags } from "./filesystem"; import { FileSystemAsync } from "./FileSystemAsync"; import { createEntry } from "./FileSystemUtil"; export class DirectoryEntryAsync extends EntryAsync<DirectoryEntry> { constructor( fileSystemAsync: FileSystemAsync, directoryEntry: DirectoryEntry ) { super(fileSystemAsync, directoryEntry); } public createReader(): DirectoryReaderAsync { return new DirectoryReaderAsync( this.fileSystemAsync, this.entry.createReader() ); } public getDirectory( path: string, options?: Flags ): Promise<DirectoryEntryAsync> { return new Promise<DirectoryEntryAsync>((resolve, reject) => { this.entry.getDirectory( path, options, (entry) => resolve(new DirectoryEntryAsync(this.fileSystemAsync, entry)), (err) => reject(err) ); }); } public getFile(path: string, options?: Flags): Promise<FileEntryAsync> { return new Promise<FileEntryAsync>((resolve, reject) => { this.entry.getFile( path, options, (entry) => resolve(new FileEntryAsync(this.fileSystemAsync, entry)), (err) => reject(err) ); }); } public list(): Promise<EntryAsync<Entry>[]> { return new Promise<EntryAsync<Entry>[]>((resolve, reject) => { this.entry.list( (entries) => resolve( entries.map((entry) => createEntry(this.fileSystemAsync, entry)) ), (err) => reject(err) ); }); } public removeRecursively(): Promise<void> { return new Promise<void>((resolve, reject) => { this.entry.removeRecursively( () => resolve(), (err) => reject(err) ); }); } }