Asynchroner Vertrag für Verzeichnislisten und Dateioperationen.
list ist erforderlich. Vue bietet optionale Methoden; Dart-Implementierungen deklarieren Fähigkeiten in capabilities und überschreiben die entsprechenden Methoden. Nicht implementierte Dart-Operationen werfen UnsupportedError. list/upload berücksichtigen kooperativen Abbruch. createDirectory/upload liefern einen Eintrag; rename/copy/move/remove keinen Wert; download liefert Blob (Vue) oder Uint8List (Dart).
interface TxFileProvider {
list(parentId: string | null, signal?: AbortSignal): Promise<TxFileEntry[]>
createDirectory?(parentId: string | null, name: string): Promise<TxFileEntry>
rename?(id: string, name: string): Promise<void>
copy?(id: string, target: string | null): Promise<void>
move?(id: string, target: string | null): Promise<void>
remove?(id: string): Promise<void>
upload?(
parentId: string | null,
file: File,
signal?: AbortSignal,
): Promise<TxFileEntry>
download?(id: string): Promise<Blob>
}| Feld | Bedeutung |
|---|---|
| list | Liefert Einträge des angegebenen Elternordners; null liest die Wurzel. |
| createDirectory | Legt einen Ordner mit gültigem, im Elternordner eindeutigem Namen an. |
| rename | Benennt eine Datei oder einen Ordner um; ID und Elternordner bleiben erhalten. |
| copy | Kopiert einen Eintrag rekursiv in den Zielordner; neue IDs werden vergeben. |
| move | Verschiebt einen Eintrag in den Zielordner; Zyklen werden abgelehnt. |
| remove | Löscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand. |
| upload | Lädt eine Datei in den angegebenen Ordner; liefert den neuen Dateieintrag. |
| download | Liefert Dateiinhalt; Ordnerdownloads schlagen fehl. |
import type { TxFileProvider } from '@tekocloud.de/tecexpress'
const example: TxFileProvider = { list: async () => [] }
console.log(example)