export abstract class Repo<TEntity extends { id: string }, TInsert> {
public abstract find(
finder: { id: string },
tx: TConnection
): Promise<Entity<TEntity, TInsert> | null>;
public abstract findOrThrow(
finder: Parameters<typeof this.find>[0],
tx: TConnection
): Promise<Entity<TEntity, TInsert>>;
public abstract create(
inputs: TInsert[],
tx: TConnection
): Promise<Entity<TEntity, TInsert>[]>;
public abstract update(
finder: { id: string },
input: Partial<TEntity>,
tx: TConnection
): Promise<void>;
public abstract softRemove(
finder: { id: string },
tx: TConnection
): Promise<void>;
}
export abstract class Repo<TEntity extends { id: string }, TInsert> {
public abstract find(
finder: { id: string },
tx: TConnection
): Promise<Entity<TEntity, TInsert> | null>;
public abstract findOrThrow(
finder: Parameters<typeof this.find>[0],
tx: TConnection
): Promise<Entity<TEntity, TInsert>>;
public abstract create(
inputs: TInsert[],
tx: TConnection
): Promise<Entity<TEntity, TInsert>[]>;
public abstract update(
finder: { id: string },
input: Partial<TEntity>,
tx: TConnection
): Promise<void>;
public abstract softRemove(
finder: { id: string },
tx: TConnection
): Promise<void>;
}