Repository class

Generic repository for CRUD operations.

Constructors

constructor constructor

Signature

<T extends { id: ID }, ID extends string | number>(): Repository<T, ID>

Type Parameters

T

The entity type

ID

The identifier type (string or number)

Methods

create method

abstract

Signature

(data: Omit<T, "id">): Promise<T>

Create a new entity.

Parameters

data

Entity data (without ID)

Returns

The created entity

delete method

abstract

Signature

(id: ID): Promise<boolean>

Delete an entity.

Parameters

id

Entity ID

Returns

true if deleted, false if not found

find method

abstract

Signature

(id: ID): Promise<T>

Find an entity by ID.

Parameters

id

The entity ID

Returns

The entity, or null if not found

findAll method

deprecated

Use findPaginated for large datasets

abstract

Signature

(): Promise<T[]>

Find all entities.

Returns

Array of all entities

findPaginated method

abstract

Signature

(page: number, pageSize: number): Promise<PaginatedResponse<T>>

Find entities with pagination.

Parameters

page

Page number (1-indexed)

pageSize

Number of items per page

Returns

Paginated response

update method

abstract

Signature

(id: ID, updates: Partial<Omit<T, "id">>): Promise<T>

Update an entity.

Parameters

id

Entity ID

updates

Partial entity data to update

Returns

The updated entity, or null if not found