localStorageCollectionOptions

Funktion: localStorageCollectionOptions()

ts
function localStorageCollectionOptions<TExplicit, TSchema, TFallback>(config): object
function localStorageCollectionOptions<TExplicit, TSchema, TFallback>(config): object

Definiert in: packages/db/src/local-storage.ts:205

Erstellt localStorage-Sammlungsoptionen zur Verwendung mit einer Standard-Collection

Diese Funktion erstellt eine Collection, die Daten in localStorage/sessionStorage speichert und Änderungen über Browser-Tabs hinweg mithilfe von Storage-Events synchronisiert.

Typparameter

TExplicit = unknown

Der explizite Typ der Elemente in der Collection (höchste Priorität)

TSchema erweitert StandardSchemaV1<unknown, unknown> = never

Der Schema-Typ für Validierung und Typableitung (zweite Priorität)

TFallback erweitert object = Record<string, unknown>

Der Fallback-Typ, wenn kein expliziter Typ oder kein Schema-Typ angegeben wird

Parameter

config

LocalStorageCollectionConfig<TExplicit, TSchema, TFallback>

Konfigurationsoptionen für die localStorage-Collection

Gibt zurück

Objekt

Collection-Optionen mit Utilities, einschließlich clearStorage und getStorageSize

getKey()

ts
getKey: (item) => string | number;
getKey: (item) => string | number;

Parameter

item

ResolveType

Gibt zurück

string | number

id

ts
id: string = collectionId;
id: string = collectionId;

onDelete()

ts
onDelete: (params) => Promise<any> = wrappedOnDelete;
onDelete: (params) => Promise<any> = wrappedOnDelete;

Parameter

params

DeleteMutationFnParams<ResolveType<TExplicit, TSchema, TFallback>>

Gibt zurück

Promise<any>

onInsert()

ts
onInsert: (params) => Promise<any> = wrappedOnInsert;
onInsert: (params) => Promise<any> = wrappedOnInsert;

Parameter

params

InsertMutationFnParams<ResolveType<TExplicit, TSchema, TFallback>>

Gibt zurück

Promise<any>

onUpdate()

ts
onUpdate: (params) => Promise<any> = wrappedOnUpdate;
onUpdate: (params) => Promise<any> = wrappedOnUpdate;

Parameter

params

UpdateMutationFnParams<ResolveType<TExplicit, TSchema, TFallback>>

Gibt zurück

Promise<any>

schema?

ts
optional schema: TSchema;
optional schema: TSchema;

sync

ts
sync: SyncConfig<ResolveType<TExplicit, TSchema, TFallback>, string | number> & object;
sync: SyncConfig<ResolveType<TExplicit, TSchema, TFallback>, string | number> & object;

Typdeklaration

manualTrigger()?
ts
optional manualTrigger: () => void;
optional manualTrigger: () => void;
Gibt zurück

void

utils

ts
utils: object;
utils: object;

utils.clearStorage

ts
clearStorage: ClearStorageFn;
clearStorage: ClearStorageFn;

utils.getStorageSize

ts
getStorageSize: GetStorageSizeFn;
getStorageSize: GetStorageSizeFn;

Beispiele

ts
// Basic localStorage collection
const collection = createCollection(
  localStorageCollectionOptions({
    storageKey: 'todos',
    getKey: (item) => item.id,
  })
)
// Basic localStorage collection
const collection = createCollection(
  localStorageCollectionOptions({
    storageKey: 'todos',
    getKey: (item) => item.id,
  })
)
ts
// localStorage collection with custom storage
const collection = createCollection(
  localStorageCollectionOptions({
    storageKey: 'todos',
    storage: window.sessionStorage, // Use sessionStorage instead
    getKey: (item) => item.id,
  })
)
// localStorage collection with custom storage
const collection = createCollection(
  localStorageCollectionOptions({
    storageKey: 'todos',
    storage: window.sessionStorage, // Use sessionStorage instead
    getKey: (item) => item.id,
  })
)
ts
// localStorage collection with mutation handlers
const collection = createCollection(
  localStorageCollectionOptions({
    storageKey: 'todos',
    getKey: (item) => item.id,
    onInsert: async ({ transaction }) => {
      console.log('Item inserted:', transaction.mutations[0].modified)
    },
  })
)
// localStorage collection with mutation handlers
const collection = createCollection(
  localStorageCollectionOptions({
    storageKey: 'todos',
    getKey: (item) => item.id,
    onInsert: async ({ transaction }) => {
      console.log('Item inserted:', transaction.mutations[0].modified)
    },
  })
)
Unsere Partner
Code Rabbit
Electric
Prisma
Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.

Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.