t×tecexpressby TeKOcloud
ENv0.7.1
API & Datentypen / VUE

TxFileProvider.

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).

ts
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>
}
FeldBedeutung
listLiefert Einträge des angegebenen Elternordners; null liest die Wurzel.
createDirectoryLegt einen Ordner mit gültigem, im Elternordner eindeutigem Namen an.
renameBenennt eine Datei oder einen Ordner um; ID und Elternordner bleiben erhalten.
copyKopiert einen Eintrag rekursiv in den Zielordner; neue IDs werden vergeben.
moveVerschiebt einen Eintrag in den Zielordner; Zyklen werden abgelehnt.
removeLöscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand.
uploadLädt eine Datei in den angegebenen Ordner; liefert den neuen Dateieintrag.
downloadLiefert Dateiinhalt; Ordnerdownloads schlagen fehl.
ts
import type { TxFileProvider } from '@tekocloud.de/tecexpress'
const example: TxFileProvider = { list: async () => [] }
console.log(example)