🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

generic-typeorm-repository

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

generic-typeorm-repository

A basic package aimed at providing a generic and extendable typeorm repository for nestjs apps.

0.1.0
latest
Source
npm
Version published
Weekly downloads
3
Maintainers
1
Weekly downloads
 
Created
Source

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 // Your expected params
    ) {
        // Your logic
    }

    // And so on...
}

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);
    }
    
    // Now you you have access to all the boilerplate methods defined on the GenericRepository
    // and you don't have to repeat yourself extensively each time you define a repository for your
    // entities.

    // If you happen to need extended or custom logic, you can simply override any of the methods available
    // on the GenericRepository (check the contents of the example directory for a more contextual example).
    override async findOne(options: FindOneOptions<EntityOne>): Promise<EntityOne> {
        // Your custom logic.
    }
}

Collaborators

jmj0502
Jorge Martin Juarez
EliezerSPP
Eliezer Peña

Keywords

generic

FAQs

Package last updated on 10 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts