Libraries
    Preparing search index...

    Type Alias TrackedDbContext<TMap>

    TrackedDbContext: DbContext<TMap> & {
        "[asyncDispose]"(): Promise<void>;
        attach<T extends object>(entitySetKey: string, entity: T): T;
        detach(entity: object): void;
        discardChanges(): void;
        entry<T extends object>(entity: T): EntityEntry<T>;
        onSavingChanges(hook: SavingChangesHook): void;
        reload(entity: object): Promise<void>;
        remove(entity: object): void;
        saveChanges(): Promise<
            { deleted: number; inserted: number; updated: number },
        >;
    }

    Extended context returned when { tracking: true } is passed to createDb. Adds identity-map tracking, unit-of-work saveChanges, and [Symbol.asyncDispose] support for await using blocks.

    Type Parameters

    Type Declaration

    • [asyncDispose]: function
      • Implements Symbol.asyncDispose for await using blocks.

        Throws PendingChangesError when there are unsaved changes at the time of disposal — callers must call saveChanges() or discardChanges() before the scope exits.

        Returns Promise<void>

    • attach: function
      • Attach an entity to the identity map so its changes will be tracked. If an entity with the same primary key is already tracked, the existing tracked object is returned (identity-map guarantee).

        Type Parameters

        • T extends object

        Parameters

        • entitySetKey: string

          — the property name used when registering the entity (e.g. 'todos' for createDb(knex, { todos: TodoEntity })).

        • entity: T

        Returns T

    • detach: function
      • Remove an entity from the identity map. Any subsequent changes to the object will not be persisted by saveChanges.

        Parameters

        • entity: object

        Returns void

    • discardChanges: function
      • Discard all pending changes. Modified entries are reset to their snapshots; Added entries are detached; Deleted entries are restored to Unchanged.

        Returns void

    • entry: function
    • onSavingChanges: function
    • reload: function
      • Reload a tracked entity from the database, overwriting its current values and refreshing the internal snapshot.

        Parameters

        • entity: object

        Returns Promise<void>

    • remove: function
      • Mark a tracked entity for deletion on the next saveChanges() call.

        Parameters

        • entity: object

        Returns void

    • saveChanges: function
      • Flush all pending changes to the database inside a single transaction.

        Returns Promise<{ deleted: number; inserted: number; updated: number }>

        Counts of inserted, updated, and deleted rows.