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.
new TxCustomStore<T>(callbacks: TxStore<T>): TxCustomStore<T>| Mitglied | Typ / Rückgabe | Verhalten |
|---|---|---|
| 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) | undefined | Liest einen Datensatz anhand seines Schlüssels; fehlende Schlüssel ergeben undefined (Vue) beziehungsweise null (Dart). |
| insert | ((item: T) => T | Promise<T>) | undefined | Fügt einen Datensatz mit eindeutigem Schlüssel ein und liefert ihn zurück. |
| update | ((key: TxKey, changes: Partial<T>) => T | Promise<T>) | undefined | Aktualisiert eine Meldung beziehungsweise einen Datensatz. |
| remove | ((key: TxKey) => Promise<void> | void) | undefined | Löscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand. |
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))