UNPKG

artmapper

Version:

Spring Boot clone for Node.js with TypeScript/JavaScript - JPA-like ORM, Lombok decorators, dependency injection, and MySQL support

41 lines 1.43 kB
import 'reflect-metadata'; import { EntityManager } from './EntityManager'; import { Pool } from 'mysql2/promise'; /** * Base repository interface similar to Spring Data JPA's CrudRepository */ export interface CrudRepository<T, ID> { save(entity: T, fieldsToUpdate?: string[]): Promise<T>; saveAll(entities: T[]): Promise<T[]>; findById(id: ID): Promise<T | null>; findAll(): Promise<T[]>; existsById(id: ID): Promise<boolean>; count(): Promise<number>; deleteById(id: ID): Promise<void>; delete(entity: T): Promise<void>; deleteAll(): Promise<void>; } /** * Base repository implementation */ export declare abstract class BaseRepository<T, ID> implements CrudRepository<T, ID> { protected pool: Pool; protected entityManager: EntityManager; constructor(pool: Pool); abstract getEntityClass(): new () => T; abstract getId(entity: T): ID; save(entity: T, fieldsToUpdate?: string[]): Promise<T>; saveAll(entities: T[]): Promise<T[]>; findById(id: ID): Promise<T | null>; findAll(): Promise<T[]>; existsById(id: ID): Promise<boolean>; count(): Promise<number>; deleteById(id: ID): Promise<void>; delete(entity: T): Promise<void>; deleteAll(): Promise<void>; /** * Create a query builder for custom queries */ createQueryBuilder(): import("./EntityManager").QueryBuilder; } //# sourceMappingURL=Repository.d.ts.map