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

TxCustomStore.

Adapter für eigene synchrone oder asynchrone Store-Callbacks. Nicht angebotene Operationen sind nicht verfügbar.

load ist erforderlich; byKey/insert/update/remove sind optional. load erhält TxLoadOptions und liefert TxLoadResult direkt oder asynchron. Eigene HTTP-Callbacks müssen Statuscodes prüfen und Fehler weitergeben. byKey liefert undefined/null bei fehlendem Datensatz. Für Paging muss der Store data und totalCount vor Paging liefern. Bei remoteOperations false liefert er alle Rohdaten. Das Beispiel verwendet einen lokalen asynchronen Callback und benötigt keinen Server.

ts
new TxCustomStore<T>(callbacks: TxStore<T>): TxCustomStore<T>
MitgliedTyp / RückgabeVerhalten
load(options: TxLoadOptions<T>) => TxLoadResult<T> | Promise<TxLoadResult<T>>Lädt mit den angegebenen Optionen; bei DataSource ohne Argumente mit aktuellem Abfragezustand. Fehler werden weitergegeben.
byKey((key: TxKey) => T | Promise<T | undefined> | undefined) | undefinedLiest einen Datensatz anhand seines Schlüssels; fehlende Schlüssel ergeben undefined (Vue) beziehungsweise null (Dart).
insert((item: T) => T | Promise<T>) | undefinedFügt einen Datensatz mit eindeutigem Schlüssel ein und liefert ihn zurück.
update((key: TxKey, changes: Partial<T>) => T | Promise<T>) | undefinedAktualisiert eine Meldung beziehungsweise einen Datensatz.
remove((key: TxKey) => Promise<void> | void) | undefinedLöscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand.
ts
import { TxCustomStore, txQuery } from '@tekocloud.de/tecexpress'
// Replace callbacks with your own HTTP/database integration.
const store = new TxCustomStore<{ id: number }>({ load: async options => txQuery([{ id: 1 }], options), byKey: async id => id === 1 ? { id: 1 } : undefined })
console.log(await store.load({}), await store.byKey?.(1))