nestjs-prisma-base
Version:
A comprehensive NestJS package providing base classes, utilities, and decorators for building CRUD APIs with Prisma ORM integration, featuring pagination, search, filtering, relation loading, configurable DTOs, and modular composition capabilities.
56 lines • 2.25 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrismaService = void 0;
const common_1 = require("@nestjs/common");
let PrismaService = class PrismaService {
constructor(customClient) {
this.prismaClient = customClient;
return new Proxy(this, {
get: (target, prop) => {
if (prop in target) {
return target[prop];
}
if (target.prismaClient) {
return target.prismaClient[prop];
}
return undefined;
},
});
}
async onModuleInit() {
if (this.prismaClient) {
await this.prismaClient.$connect();
}
}
async onModuleDestroy() {
if (this.prismaClient) {
await this.prismaClient.$disconnect();
}
}
async enableShutdownHooks(app) {
if (this.prismaClient) {
this.prismaClient.$on('beforeExit', async () => {
await app.close();
});
}
}
};
exports.PrismaService = PrismaService;
exports.PrismaService = PrismaService = __decorate([
(0, common_1.Injectable)(),
__param(0, (0, common_1.Optional)()),
__metadata("design:paramtypes", [Object])
], PrismaService);
//# sourceMappingURL=prisma.service.js.map