effect-io-ai

Package: @effect/platform-browser
Module: IndexedDbQueryBuilder

IndexedDbQueryBuilder.IndexedDbQuery.Modify

Effect model for inserting or upserting one row, returning the resulting IndexedDB key and supporting reactivity invalidation.

Signature

export interface Modify<
    Table extends IndexedDbTable.AnyWithProps
  > extends
    Effect.Effect<
      globalThis.IDBValidKey,
      IndexedDbQueryError,
      IndexedDbTable.Context<Table>
    >
  {
    readonly operation: "add" | "put"
    readonly from: From<Table>
    readonly value: ModifyWithKey<Table>

    /**
     * Invalidate any queries using Reactivity service with the provided keys.
     *
     * **Details**
     *
     * If no keys are provided, the table name is used as the reactivity key.
     */
    readonly invalidate: (
      keys?: ReadonlyArray<unknown> | Record.ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
    ) => Effect.Effect<globalThis.IDBValidKey, IndexedDbQueryError, IndexedDbTable.Context<Table>>
  }

Source

Since v4.0.0