idb-ts
    Preparing search index...

    Interface EntityRepository<T>

    The full CRUD and query surface exposed for each registered entity.

    An EntityRepository<T> is created automatically by Database.build and is accessible as a named property on the returned database object (e.g., db.User, db.Order).

    const db = await Database.build<{ User: EntityRepository<User> }>('mydb', [User]);

    await db.User.create(new User('u1', 'Alice', 25));
    const alice = await db.User.read('u1');
    await db.User.delete('u1');
    interface EntityRepository<T> {
        clear(): Promise<void>;
        count(): Promise<number>;
        create(item: T): Promise<void>;
        createMany(items: T[]): Promise<void>;
        delete(key: string | number | string[]): Promise<void>;
        deleteMany(keys: (string | number | string[])[]): Promise<void>;
        deleteWhere(
            predicate: (query: QueryBuilder<T>) => void | QueryBuilder<T>,
        ): Promise<void>;
        exists(key: string): Promise<boolean>;
        findByIndex(indexName: string, value: any): Promise<T[]>;
        findOneByIndex(indexName: string, value: any): Promise<T | undefined>;
        list(): Promise<T[]>;
        listPaginated(page: number, pageSize: number): Promise<T[]>;
        query(): QueryBuilder<T>;
        read(key: string | number | string[]): Promise<T | undefined>;
        update(item: T): Promise<void>;
        updateMany(items: T[]): Promise<void>;
    }

    Type Parameters

    • T

      The entity type managed by this repository.

    Index

    Methods

    • Deletes all records from the store.

      Returns Promise<void>

    • Returns the total number of records in the store.

      Returns Promise<number>

      A promise resolving to the record count.

    • Persists a new record.

      Key generation (if configured) and timestamp injection (__idb_createdAt, __idb_updatedAt) are applied before storage. Validation rules are enforced prior to the write.

      Parameters

      • item: T

        The entity instance to store.

      Returns Promise<void>

      Error if validation fails or the IDB operation rejects.

    • Persists multiple records sequentially. Equivalent to calling EntityRepository.create for each item.

      Parameters

      • items: T[]

        An array of entity instances to store.

      Returns Promise<void>

    • Removes the record identified by key.

      Parameters

      • key: string | number | string[]

        The primary key value. Pass an array for composite keys.

      Returns Promise<void>

    • Removes multiple records by their primary keys.

      Parameters

      • keys: (string | number | string[])[]

        An array of primary key values.

      Returns Promise<void>

    • Removes all records that match the supplied query predicate.

      Parameters

      • predicate: (query: QueryBuilder<T>) => void | QueryBuilder<T>

        A callback receiving a QueryBuilder and returning the configured builder (or void).

      Returns Promise<void>

    • Returns whether a record with the given primary key exists.

      Parameters

      • key: string

        The primary key to check.

      Returns Promise<boolean>

      true if a matching record exists, false otherwise.

    • Returns all records whose indexed field equals value.

      Parameters

      • indexName: string

        The name of the IDB index to query.

      • value: any

        The index key to look up.

      Returns Promise<T[]>

      Error if the named index does not exist.

    • Returns the first record whose indexed field equals value, or undefined if none is found.

      Parameters

      • indexName: string

        The name of the IDB index to query.

      • value: any

        The index key to look up.

      Returns Promise<T | undefined>

      Error if the named index does not exist.

    • Returns all records in the store.

      Returns Promise<T[]>

      A promise resolving to an array of all entities.

    • Returns a page of records from the store.

      Parameters

      • page: number

        1-based page number.

      • pageSize: number

        Number of records per page.

      Returns Promise<T[]>

      A promise resolving to the requested page.

    • Returns a new QueryBuilder scoped to this entity's object store, optionally sharing the supplied transaction.

      Returns QueryBuilder<T>

      A fresh QueryBuilder instance ready for chaining.

    • Retrieves a record by its primary key.

      Parameters

      • key: string | number | string[]

        The primary key value. Pass an array for composite keys.

      Returns Promise<T | undefined>

      A promise resolving to the entity, or undefined if not found.

    • Replaces an existing record with the supplied entity.

      Preserves the original __idb_createdAt timestamp and refreshes __idb_updatedAt. Validation rules are enforced prior to the write.

      Parameters

      • item: T

        The updated entity instance.

      Returns Promise<void>

      Error if validation fails or the IDB operation rejects.

    • Updates multiple records sequentially. Equivalent to calling EntityRepository.update for each item.

      Parameters

      • items: T[]

        An array of updated entity instances.

      Returns Promise<void>