From 56e124b60d8299f70a623e7739b82baf5183131e Mon Sep 17 00:00:00 2001 From: Theezr Date: Thu, 15 Aug 2024 10:59:19 +0200 Subject: [PATCH] prisma refactor --- src/account/account.module.ts | 3 +-- src/app.module.ts | 2 ++ src/asset/asset.module.ts | 3 +-- src/block/block.module.ts | 3 +-- src/chain-event/chain-event.module.ts | 3 +-- src/db-cache/db-cache.module.ts | 3 +-- src/indexer/indexer.module.ts | 3 +-- src/prisma/prisma.module.ts | 9 +++++++++ src/prisma/prisma.service.ts | 12 ++++++------ src/transaction/transaction.module.ts | 3 +-- src/validator/validator.module.ts | 3 +-- 11 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 src/prisma/prisma.module.ts diff --git a/src/account/account.module.ts b/src/account/account.module.ts index 89c323a..9ad2629 100644 --- a/src/account/account.module.ts +++ b/src/account/account.module.ts @@ -1,10 +1,9 @@ import { Module } from '@nestjs/common'; import { AccountRepoService } from './account-repo.service'; import { AccountService } from './account.service'; -import { PrismaService } from 'src/prisma/prisma.service'; @Module({ - providers: [PrismaService, AccountRepoService, AccountService], + providers: [AccountRepoService, AccountService], exports: [AccountService, AccountRepoService], }) export class AccountModule {} diff --git a/src/app.module.ts b/src/app.module.ts index 53c1256..e8a4108 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -14,12 +14,14 @@ import { ScheduleModule } from '@nestjs/schedule'; import { StateModule } from './state/state.module'; import { GeneratorModule } from './generator/generator.module'; import { DbCacheModule } from './db-cache/db-cache.module'; +import { PrismaModule } from './prisma/prisma.module'; @Module({ imports: [ EventEmitterModule.forRoot(), ScheduleModule.forRoot(), ConfigModule.forRoot(), + PrismaModule, StateModule, NodeApiModule, EventModule, diff --git a/src/asset/asset.module.ts b/src/asset/asset.module.ts index b579989..e083497 100644 --- a/src/asset/asset.module.ts +++ b/src/asset/asset.module.ts @@ -2,10 +2,9 @@ import { Module } from '@nestjs/common'; import { AssetService } from './asset.service'; import { EventModule } from 'src/event/event.module'; import { AssetRepoService } from './asset-repo.service'; -import { PrismaService } from 'src/prisma/prisma.service'; @Module({ imports: [EventModule], - providers: [PrismaService, AssetService, AssetRepoService], + providers: [AssetService, AssetRepoService], }) export class AssetModule {} diff --git a/src/block/block.module.ts b/src/block/block.module.ts index 13fcfb2..ae381f2 100644 --- a/src/block/block.module.ts +++ b/src/block/block.module.ts @@ -1,6 +1,5 @@ import { Module } from '@nestjs/common'; import { BlockService } from './block.service'; -import { PrismaService } from 'src/prisma/prisma.service'; import { BlockRepoService } from './block-repo.service'; import { BlockController } from './block.controller'; import { EventModule } from 'src/event/event.module'; @@ -19,7 +18,7 @@ import { TransactionModule } from 'src/transaction/transaction.module'; ChainEventModule, DbCacheModule, ], - providers: [PrismaService, BlockService, BlockRepoService], + providers: [BlockService, BlockRepoService], controllers: [BlockController], exports: [BlockService, BlockRepoService], }) diff --git a/src/chain-event/chain-event.module.ts b/src/chain-event/chain-event.module.ts index d221949..06ab011 100644 --- a/src/chain-event/chain-event.module.ts +++ b/src/chain-event/chain-event.module.ts @@ -2,14 +2,13 @@ import { Module } from '@nestjs/common'; import { ChainEventRepoService } from './chain-event-repo.service'; import { ChainEventController } from './chain-event.controller'; import { ChainEventService } from './chain-event.service'; -import { PrismaService } from 'src/prisma/prisma.service'; import { NodeApiModule } from 'src/node-api/node-api.module'; import { EventModule } from 'src/event/event.module'; import { AccountModule } from 'src/account/account.module'; @Module({ imports: [NodeApiModule, EventModule, AccountModule], - providers: [PrismaService, ChainEventRepoService, ChainEventService], + providers: [ChainEventRepoService, ChainEventService], controllers: [ChainEventController], exports: [ChainEventService], }) diff --git a/src/db-cache/db-cache.module.ts b/src/db-cache/db-cache.module.ts index b18966b..c69556b 100644 --- a/src/db-cache/db-cache.module.ts +++ b/src/db-cache/db-cache.module.ts @@ -1,9 +1,8 @@ import { Module } from '@nestjs/common'; import { DbCacheService } from './db-cache.service'; -import { PrismaService } from 'src/prisma/prisma.service'; @Module({ - providers: [PrismaService, DbCacheService], + providers: [DbCacheService], exports: [DbCacheService], }) export class DbCacheModule {} diff --git a/src/indexer/indexer.module.ts b/src/indexer/indexer.module.ts index 9edbb6b..276f7b6 100644 --- a/src/indexer/indexer.module.ts +++ b/src/indexer/indexer.module.ts @@ -3,7 +3,6 @@ import { IndexerService } from './indexer.service'; import { NodeApiModule } from 'src/node-api/node-api.module'; import { EventModule } from 'src/event/event.module'; import { IndexerRepoService } from './indexer-repo.service'; -import { PrismaService } from 'src/prisma/prisma.service'; import { IndexerGenesisService } from './indexer-genesis.service'; import { AccountModule } from 'src/account/account.module'; import { StateModule } from 'src/state/state.module'; @@ -11,7 +10,7 @@ import { StateModule } from 'src/state/state.module'; @Module({ imports: [StateModule, NodeApiModule, EventModule, AccountModule], controllers: [], - providers: [PrismaService, IndexerRepoService, IndexerService, IndexerGenesisService], + providers: [IndexerRepoService, IndexerService, IndexerGenesisService], exports: [IndexerService], }) export class IndexerModule {} diff --git a/src/prisma/prisma.module.ts b/src/prisma/prisma.module.ts new file mode 100644 index 0000000..b268f1d --- /dev/null +++ b/src/prisma/prisma.module.ts @@ -0,0 +1,9 @@ +import { Global, Module } from '@nestjs/common'; +import { PrismaService } from './prisma.service'; + +@Global() +@Module({ + providers: [PrismaService], + exports: [PrismaService], //export this service to use in other modules +}) +export class PrismaModule {} diff --git a/src/prisma/prisma.service.ts b/src/prisma/prisma.service.ts index 9b33acc..67edfd9 100644 --- a/src/prisma/prisma.service.ts +++ b/src/prisma/prisma.service.ts @@ -4,21 +4,21 @@ import { PrismaClient } from '@prisma/client'; @Injectable() export class PrismaService extends PrismaClient implements OnModuleInit { private readonly logger = new Logger(PrismaService.name); - private static hasBeenInitialized = false; + + constructor() { + super({ + log: ['info'], + }); + } // for DEV, should be fixed later async onModuleInit() { - if (PrismaService.hasBeenInitialized) { - return; - } await this.$connect(); if (process.env.NODE_ENV === 'dev') { this.logger.warn('DEV mode: clearing DB'); await this.DEVonlyClearDB(); } - - PrismaService.hasBeenInitialized = true; } async DEVonlyClearDB() { diff --git a/src/transaction/transaction.module.ts b/src/transaction/transaction.module.ts index eb8aeab..b7f5f09 100644 --- a/src/transaction/transaction.module.ts +++ b/src/transaction/transaction.module.ts @@ -3,7 +3,6 @@ import { TransactionRepoService } from './transaction-repo.service'; import { TransactionController } from './transaction.controller'; import { NodeApiModule } from 'src/node-api/node-api.module'; import { TransactionService } from './transaction.service'; -import { PrismaService } from 'src/prisma/prisma.service'; import { EventModule } from 'src/event/event.module'; import { StateModule } from 'src/state/state.module'; import { DbCacheModule } from 'src/db-cache/db-cache.module'; @@ -11,7 +10,7 @@ import { AccountModule } from 'src/account/account.module'; @Module({ imports: [StateModule, NodeApiModule, EventModule, DbCacheModule, AccountModule], - providers: [PrismaService, TransactionRepoService, TransactionService], + providers: [TransactionRepoService, TransactionService], exports: [TransactionService], controllers: [TransactionController], }) diff --git a/src/validator/validator.module.ts b/src/validator/validator.module.ts index c9328e0..2ffedd4 100644 --- a/src/validator/validator.module.ts +++ b/src/validator/validator.module.ts @@ -1,7 +1,6 @@ import { Module } from '@nestjs/common'; import { ValidatorRepoService } from './validator.repo-service'; import { ValidatorService } from './validator.service'; -import { PrismaService } from 'src/prisma/prisma.service'; import { ValidatorController } from './validator.controller'; import { AccountModule } from 'src/account/account.module'; import { NodeApiModule } from 'src/node-api/node-api.module'; @@ -11,7 +10,7 @@ import { BlockModule } from 'src/block/block.module'; @Module({ imports: [StateModule, AccountModule, NodeApiModule, DbCacheModule, BlockModule], - providers: [ValidatorRepoService, ValidatorService, PrismaService], + providers: [ValidatorRepoService, ValidatorService], exports: [ValidatorService, ValidatorRepoService], controllers: [ValidatorController], })