Generic TypeORM Repository
This is a little convenience package that allows for abstracting away a lot of boilerplate by simplifying
the way in which you can create repositories for your TypeORM database entities in NestJS.
Install
Install with npm:
npm install generic-typeorm-repository --save
Install with yarn:
yarn add generic-typeorm-repository
Available methods
- findOne
- findMany
- findManyAndCount
- create
- createMany
- update
- updateMany
- rawQuery
- delete
- softDelete
- count
Is important to notice that this package has a direct dependency from typeorm, so most of the parameters
and return types of its methods are types exposed by typeorm.
Use Case
The following example sums up the whole purpose of the package fairly well:
Instead of doing this for each entity in your project
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { EntityOne } from './entities';
@Injectable()
export class EntityOneRepository {
public constructor(@InjectRepository(EntityOne) repository: Repository<EntityOne>) {}
public async create(
parameters
) {
}
}
You can simply use this package and end-up with
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { GenericRepository } from 'generic-typeorm-repository';
import { Repository } from 'typeorm';
import { EntityOne } from './entities';
@Injectable()
export class EntityOneRepository extends GenericRepository<EntityOne> {
public constructor(@InjectRepository(EntityOne) repository: Repository<EntityOne>) {
super(repository);
}
override async findOne(options: FindOneOptions<EntityOne>): Promise<EntityOne> {
}
}
Collaborators