diff --git a/src/common/keybase/keybase.module.ts b/src/common/keybase/keybase.module.ts index e2bb07fa2..f766051d8 100644 --- a/src/common/keybase/keybase.module.ts +++ b/src/common/keybase/keybase.module.ts @@ -3,7 +3,6 @@ import { NodeModule } from "src/endpoints/nodes/node.module"; import { ProviderModule } from "src/endpoints/providers/provider.module"; import { ApiConfigModule } from "../api-config/api.config.module"; import { GithubModule } from "../github/github.module"; -import { PersistenceModule } from "../persistence/persistence.module"; import { KeybaseService } from "./keybase.service"; import { AssetsModule } from "../assets/assets.module"; @@ -13,7 +12,6 @@ import { AssetsModule } from "../assets/assets.module"; forwardRef(() => ProviderModule), forwardRef(() => GithubModule), ApiConfigModule, - PersistenceModule.forRoot(), AssetsModule, ], providers: [ diff --git a/src/common/rabbitmq/rabbitmq.module.ts b/src/common/rabbitmq/rabbitmq.module.ts index ec5e445ac..f1a5ba8a5 100644 --- a/src/common/rabbitmq/rabbitmq.module.ts +++ b/src/common/rabbitmq/rabbitmq.module.ts @@ -11,11 +11,13 @@ import { RabbitMqNftHandlerService } from './rabbitmq.nft.handler.service'; import { RabbitMqTokenHandlerService } from './rabbitmq.token.handler.service'; import { EventEmitterModule } from '@nestjs/event-emitter'; import { ScheduleModule } from '@nestjs/schedule'; +import { PersistenceModule } from '../persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), ApiConfigModule, NftModule, NftWorkerModule, diff --git a/src/common/websockets/web-socket-publisher-module.ts b/src/common/websockets/web-socket-publisher-module.ts index a5b9c66df..29a628c39 100644 --- a/src/common/websockets/web-socket-publisher-module.ts +++ b/src/common/websockets/web-socket-publisher-module.ts @@ -6,11 +6,13 @@ import { DynamicModuleUtils } from "src/utils/dynamic.module.utils"; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { EventEmitterModule } from "@nestjs/event-emitter"; import { ScheduleModule } from "@nestjs/schedule"; +import { PersistenceModule } from "../persistence/persistence.module"; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), TransactionActionModule, ApiMetricsModule, ], diff --git a/src/crons/cache.warmer/cache.warmer.module.ts b/src/crons/cache.warmer/cache.warmer.module.ts index 005c887fb..eb70fe555 100644 --- a/src/crons/cache.warmer/cache.warmer.module.ts +++ b/src/crons/cache.warmer/cache.warmer.module.ts @@ -13,11 +13,13 @@ import { TpsWarmerService } from '../tps/tps-warmer.service'; import { TpsModule } from 'src/endpoints/tps/tps.module'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; +import { PersistenceModule } from 'src/common/persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), EndpointsServicesModule, KeybaseModule, MexModule.forRoot(), diff --git a/src/crons/elastic.updater/elastic.updater.module.ts b/src/crons/elastic.updater/elastic.updater.module.ts index 787a305de..3cc608a9d 100644 --- a/src/crons/elastic.updater/elastic.updater.module.ts +++ b/src/crons/elastic.updater/elastic.updater.module.ts @@ -1,4 +1,4 @@ -import { forwardRef, Module } from '@nestjs/common'; +import { Module } from '@nestjs/common'; import { ScheduleModule } from '@nestjs/schedule'; import { AssetsModule } from 'src/common/assets/assets.module'; import { PersistenceModule } from 'src/common/persistence/persistence.module'; @@ -11,9 +11,9 @@ import { EventEmitterModule } from '@nestjs/event-emitter'; imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), EndpointsServicesModule, AssetsModule, - forwardRef(() => PersistenceModule), ApiMetricsModule, ], providers: [ diff --git a/src/crons/status.checker/status.checker.module.ts b/src/crons/status.checker/status.checker.module.ts index d9bd48cff..d4027c18a 100644 --- a/src/crons/status.checker/status.checker.module.ts +++ b/src/crons/status.checker/status.checker.module.ts @@ -6,11 +6,13 @@ import { DynamicModuleUtils } from "src/utils/dynamic.module.utils"; import { StatusCheckerService } from "./status.checker.service"; import { ApiMetricsModule } from "src/common/metrics/api.metrics.module"; import { EventEmitterModule } from "@nestjs/event-emitter"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), EndpointsServicesModule, ApiMetricsModule, ], diff --git a/src/crons/transaction.processor/batch.transaction.processor.module.ts b/src/crons/transaction.processor/batch.transaction.processor.module.ts index 9811c9d33..45d6eaff2 100644 --- a/src/crons/transaction.processor/batch.transaction.processor.module.ts +++ b/src/crons/transaction.processor/batch.transaction.processor.module.ts @@ -7,11 +7,13 @@ import { DynamicModuleUtils } from "src/utils/dynamic.module.utils"; import { BatchTransactionProcessorService } from "./batch.transaction.processor.service"; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { EventEmitterModule } from "@nestjs/event-emitter"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), ApiConfigModule, DynamicModuleUtils.getCacheModule(), TransactionsBatchModule, diff --git a/src/crons/transaction.processor/transaction.completed.module.ts b/src/crons/transaction.processor/transaction.completed.module.ts index fef98b90c..2b7f63d24 100644 --- a/src/crons/transaction.processor/transaction.completed.module.ts +++ b/src/crons/transaction.processor/transaction.completed.module.ts @@ -7,11 +7,13 @@ import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { GatewayModule } from 'src/common/gateway/gateway.module'; import { ProtocolModule } from 'src/common/protocol/protocol.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; +import { PersistenceModule } from 'src/common/persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), ApiConfigModule, ApiMetricsModule, GatewayModule, diff --git a/src/crons/transaction.processor/transaction.processor.module.ts b/src/crons/transaction.processor/transaction.processor.module.ts index add0f1be2..ec5030b33 100644 --- a/src/crons/transaction.processor/transaction.processor.module.ts +++ b/src/crons/transaction.processor/transaction.processor.module.ts @@ -9,11 +9,13 @@ import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { DynamicModuleUtils } from 'src/utils/dynamic.module.utils'; import { TransactionProcessorService } from './transaction.processor.service'; import { EventEmitterModule } from '@nestjs/event-emitter'; +import { PersistenceModule } from 'src/common/persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), TransactionModule, ShardModule, NodeModule, diff --git a/src/crons/websocket/websocket.subscription.module.ts b/src/crons/websocket/websocket.subscription.module.ts index d6cbd505d..dc57125e3 100644 --- a/src/crons/websocket/websocket.subscription.module.ts +++ b/src/crons/websocket/websocket.subscription.module.ts @@ -20,11 +20,13 @@ import { TransfersCustomGateway } from './transfers.custom.gateway'; import { TransferModule } from 'src/endpoints/transfers/transfer.module'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; +import { PersistenceModule } from 'src/common/persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), TransactionModule, BlockModule, NetworkModule, diff --git a/src/private.app.module.ts b/src/private.app.module.ts index 1ea44382f..0f048c8ac 100644 --- a/src/private.app.module.ts +++ b/src/private.app.module.ts @@ -9,11 +9,13 @@ import { DynamicModuleUtils } from './utils/dynamic.module.utils'; import { ApiMetricsModule } from './common/metrics/api.metrics.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; import { ScheduleModule } from '@nestjs/schedule'; +import { PersistenceModule } from './common/persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), LoggingModule, ProcessNftsModule, ApiMetricsModule, diff --git a/src/public.app.module.ts b/src/public.app.module.ts index 7c083f1ba..85484c9a1 100644 --- a/src/public.app.module.ts +++ b/src/public.app.module.ts @@ -11,6 +11,7 @@ import { DynamicModuleUtils } from './utils/dynamic.module.utils'; import { LocalCacheController } from './endpoints/caching/local.cache.controller'; import { RestrictedRoutesMiddleware } from './utils/restricted.routes.middleware'; import { ApiMetricsModule } from './common/metrics/api.metrics.module'; +import { PersistenceModule } from './common/persistence/persistence.module'; import { ScheduleModule } from '@nestjs/schedule'; import { EventEmitterModule } from '@nestjs/event-emitter'; @@ -18,6 +19,7 @@ import { EventEmitterModule } from '@nestjs/event-emitter'; imports: [ ScheduleModule.forRoot(), // for plugins, best practice not to have crons in public API EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), LoggingModule, EndpointsServicesModule, EndpointsControllersModule.forRoot(), diff --git a/src/queue.worker/nft.worker/nft.worker.module.ts b/src/queue.worker/nft.worker/nft.worker.module.ts index 4dbf81139..799a4116c 100644 --- a/src/queue.worker/nft.worker/nft.worker.module.ts +++ b/src/queue.worker/nft.worker/nft.worker.module.ts @@ -1,7 +1,6 @@ import { Module } from '@nestjs/common'; import { ClientProxyFactory, Transport } from '@nestjs/microservices'; import { ApiConfigService } from 'src/common/api-config/api.config.service'; -import { PersistenceModule } from 'src/common/persistence/persistence.module'; import { NftWorkerService } from './nft.worker.service'; import { NftAssetModule } from './queue/job-services/assets/nft.asset.module'; import { NftMediaModule } from './queue/job-services/media/nft.media.module'; @@ -14,7 +13,6 @@ import { NftThumbnailModule } from './queue/job-services/thumbnails/nft.thumbnai NftMetadataModule, NftThumbnailModule, NftAssetModule, - PersistenceModule.forRoot(), ], providers: [ NftWorkerService, diff --git a/src/queue.worker/nft.worker/queue/job-services/media/nft.media.module.ts b/src/queue.worker/nft.worker/queue/job-services/media/nft.media.module.ts index e5c5e8771..86f263fcd 100644 --- a/src/queue.worker/nft.worker/queue/job-services/media/nft.media.module.ts +++ b/src/queue.worker/nft.worker/queue/job-services/media/nft.media.module.ts @@ -1,11 +1,9 @@ import { Module } from '@nestjs/common'; -import { PersistenceModule } from 'src/common/persistence/persistence.module'; import { DynamicModuleUtils } from 'src/utils/dynamic.module.utils'; import { NftMediaService } from './nft.media.service'; @Module({ imports: [ - PersistenceModule.forRoot(), ], controllers: [], providers: [ diff --git a/src/queue.worker/nft.worker/queue/nft.queue.module.ts b/src/queue.worker/nft.worker/queue/nft.queue.module.ts index 277d2e8ac..314d3cca3 100644 --- a/src/queue.worker/nft.worker/queue/nft.queue.module.ts +++ b/src/queue.worker/nft.worker/queue/nft.queue.module.ts @@ -6,11 +6,13 @@ import { DynamicModuleUtils } from 'src/utils/dynamic.module.utils'; import { ApiMetricsModule } from 'src/common/metrics/api.metrics.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; import { ScheduleModule } from '@nestjs/schedule'; +import { PersistenceModule } from 'src/common/persistence/persistence.module'; @Module({ imports: [ ScheduleModule.forRoot(), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), NftJobProcessorModule, NftModule, ApiMetricsModule, diff --git a/src/queue.worker/queue.worker.module.ts b/src/queue.worker/queue.worker.module.ts deleted file mode 100644 index 20b23d8ac..000000000 --- a/src/queue.worker/queue.worker.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; -import { NftQueueModule } from './nft.worker/queue/nft.queue.module'; - -@Module({ - imports: [ - NftQueueModule, - ], - controllers: [], - providers: [], -}) -export class QueueWorkerModule { } diff --git a/src/test/unit/controllers/accounts.controller.spec.ts b/src/test/unit/controllers/accounts.controller.spec.ts index eca0c0810..c9335edee 100644 --- a/src/test/unit/controllers/accounts.controller.spec.ts +++ b/src/test/unit/controllers/accounts.controller.spec.ts @@ -33,6 +33,7 @@ import { mockAccountService, mockTokenService, mockNftService, mockDelegationLeg import { AccountFetchOptions } from "src/endpoints/accounts/entities/account.fetch.options"; import { EventEmitter2, EventEmitterModule } from "@nestjs/event-emitter"; import { mockEventEmitterService } from "./services.mock/event.emitter2.services.mock"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; describe('AccountController', () => { let app: INestApplication; @@ -59,6 +60,7 @@ describe('AccountController', () => { DelegationModule, ConfigModule.forRoot({}), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot() ], }) .overrideProvider(AccountService).useValue(accountServiceMocks) diff --git a/src/test/unit/controllers/collections.controller.spec.ts b/src/test/unit/controllers/collections.controller.spec.ts index 469668610..d1ad6fbe4 100644 --- a/src/test/unit/controllers/collections.controller.spec.ts +++ b/src/test/unit/controllers/collections.controller.spec.ts @@ -25,6 +25,7 @@ import { TransferService } from "src/endpoints/transfers/transfer.service"; import { TransferModule } from "src/endpoints/transfers/transfer.module"; import { EventEmitter2, EventEmitterModule } from "@nestjs/event-emitter"; import { mockEventEmitterService } from "./services.mock/event.emitter2.services.mock"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; describe('CollectionController', () => { let app: INestApplication; @@ -46,6 +47,7 @@ describe('CollectionController', () => { TransferModule, ConfigModule.forRoot({}), EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), ], }) .overrideProvider(CollectionService).useValue(collectionServiceMocks) diff --git a/src/test/unit/controllers/delegation.controller.spec.ts b/src/test/unit/controllers/delegation.controller.spec.ts index 53f6e1045..745c22c4d 100644 --- a/src/test/unit/controllers/delegation.controller.spec.ts +++ b/src/test/unit/controllers/delegation.controller.spec.ts @@ -7,6 +7,7 @@ import { DelegationModule } from "src/endpoints/delegation/delegation.module"; import { DelegationService } from "src/endpoints/delegation/delegation.service"; import { EventEmitter2, EventEmitterModule } from "@nestjs/event-emitter"; import { mockEventEmitterService } from "./services.mock/event.emitter2.services.mock"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; describe('DelegationController', () => { let app: INestApplication; @@ -20,6 +21,7 @@ describe('DelegationController', () => { imports: [ DelegationModule, EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot() ], }) .overrideProvider(DelegationService) diff --git a/src/test/unit/controllers/network.controller.spec.ts b/src/test/unit/controllers/network.controller.spec.ts index 14963a056..2d90e6927 100644 --- a/src/test/unit/controllers/network.controller.spec.ts +++ b/src/test/unit/controllers/network.controller.spec.ts @@ -12,6 +12,7 @@ import { About } from "src/endpoints/network/entities/about"; import { FeatureConfigs } from "../../../endpoints/network/entities/feature.configs"; import { EventEmitter2, EventEmitterModule } from "@nestjs/event-emitter"; import { mockEventEmitterService } from "./services.mock/event.emitter2.services.mock"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; describe("NetworkController", () => { let app: INestApplication; @@ -24,6 +25,7 @@ describe("NetworkController", () => { imports: [ NetworkModule, EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot() ], }) .overrideProvider(NetworkService) diff --git a/src/test/unit/controllers/pool.controller.spec.ts b/src/test/unit/controllers/pool.controller.spec.ts index ff8757490..a11afcd01 100644 --- a/src/test/unit/controllers/pool.controller.spec.ts +++ b/src/test/unit/controllers/pool.controller.spec.ts @@ -10,6 +10,7 @@ import { PoolFilter } from "src/endpoints/pool/entities/pool.filter"; import { TransactionType } from "src/endpoints/transactions/entities/transaction.type"; import { EventEmitter2, EventEmitterModule } from "@nestjs/event-emitter"; import { mockEventEmitterService } from "./services.mock/event.emitter2.services.mock"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; describe('PoolController', () => { let app: INestApplication; @@ -21,7 +22,11 @@ describe('PoolController', () => { jest.resetAllMocks(); const moduleFixture: TestingModule = await Test.createTestingModule({ controllers: [PoolController], - imports: [PoolModule, EventEmitterModule.forRoot({ maxListeners: 1 })], + imports: [ + PoolModule, + EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), + ], }).overrideProvider(PoolService) .useValue(poolServiceMocks) .overrideProvider(EventEmitter2) diff --git a/src/test/unit/controllers/shard.controller.spec.ts b/src/test/unit/controllers/shard.controller.spec.ts index 4c002b08d..2bba077b9 100644 --- a/src/test/unit/controllers/shard.controller.spec.ts +++ b/src/test/unit/controllers/shard.controller.spec.ts @@ -8,6 +8,7 @@ import request = require('supertest'); import { QueryPagination } from "src/common/entities/query.pagination"; import { EventEmitter2, EventEmitterModule } from "@nestjs/event-emitter"; import { mockEventEmitterService } from "./services.mock/event.emitter2.services.mock"; +import { PersistenceModule } from "src/common/persistence/persistence.module"; describe('ShardController', () => { let app: INestApplication; @@ -20,6 +21,7 @@ describe('ShardController', () => { imports: [ ShardModule, EventEmitterModule.forRoot({ maxListeners: 1 }), + PersistenceModule.forRoot(), ], }) .overrideProvider(ShardService)