diff --git a/package.json b/package.json index 36d07835..ee2c22d9 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "dev:app:inner": "dotenv -e .env.local -- concurrently -k -n TYPE,APP -c red,blue \"tsc --noEmit --watch\" \"tsup --watch --onSuccess='node dist/index.js'\"", "dev:worker:feeds:inner": "dotenv -e .env.local -- concurrently -k -n WORKER -c green \"tsup --watch --onSuccess='node dist/workers/feed-worker.js'\"", "dev:worker:search:inner": "dotenv -e .env.local -- concurrently -k -n WORKER -c yellow \"tsup --watch --onSuccess='node dist/workers/search-worker.js'\"", - "dev:mock": "USE_PERSISTENCE=false USE_FAKE_PUBLISHERS=true USE_MOCK_AUTH=true npm run dev:app:inner", + "dev:mock": "USE_MOCK_PERSISTENCE=true USE_FAKE_PUBLISHERS=true USE_MOCK_AUTH=true npm run dev:app:inner", "dev:mock:pub:auth": "USE_FAKE_PUBLISHERS=true USE_MOCK_AUTH=true npm run dev", "dev": "bash ./scripts/dev-combined.sh", "migrate": "node dist/scripts/migrate.js", diff --git a/src/shared/infrastructure/config/EnvironmentConfigService.ts b/src/shared/infrastructure/config/EnvironmentConfigService.ts index 3b96957a..beea43ec 100644 --- a/src/shared/infrastructure/config/EnvironmentConfigService.ts +++ b/src/shared/infrastructure/config/EnvironmentConfigService.ts @@ -7,7 +7,7 @@ export enum Environment { export interface EnvironmentConfig { environment: Environment; runtime: { - usePersistence: boolean; + useMockPersistence: boolean; useMockAuth: boolean; useFakePublishers: boolean; useMockVectorDb: boolean; @@ -64,7 +64,7 @@ export class EnvironmentConfigService { this.config = { environment, runtime: { - usePersistence: this.determinePersistenceFlag(), + useMockPersistence: this.determineMockPersistenceFlag(), useMockAuth: process.env.USE_MOCK_AUTH === 'true', useFakePublishers: process.env.USE_FAKE_PUBLISHERS === 'true', useMockVectorDb: process.env.USE_MOCK_VECTOR_DB === 'true', @@ -198,16 +198,16 @@ export class EnvironmentConfigService { return this.config.runtime; } - public shouldUsePersistence(): boolean { - return this.config.runtime.usePersistence; + public shouldUseMockPersistence(): boolean { + return this.config.runtime.useMockPersistence; } public shouldUseMockRepos(): boolean { - return !this.config.runtime.usePersistence; + return this.config.runtime.useMockPersistence; } public shouldUseInMemoryEvents(): boolean { - return !this.config.runtime.usePersistence; + return this.config.runtime.useMockPersistence; } public shouldUseMockAuth(): boolean { @@ -225,17 +225,17 @@ export class EnvironmentConfigService { // Convenience methods for common combinations public isFullyMocked(): boolean { const r = this.config.runtime; - return !r.usePersistence && r.useMockAuth && r.useFakePublishers; + return r.useMockPersistence && r.useMockAuth && r.useFakePublishers; } - public isPersistenceEnabled(): boolean { - return this.config.runtime.usePersistence; + public isMockPersistenceEnabled(): boolean { + return this.config.runtime.useMockPersistence; } - private determinePersistenceFlag(): boolean { + private determineMockPersistenceFlag(): boolean { // New unified flag takes precedence - if (process.env.USE_PERSISTENCE !== undefined) { - return process.env.USE_PERSISTENCE === 'true'; + if (process.env.USE_MOCK_PERSISTENCE !== undefined) { + return process.env.USE_MOCK_PERSISTENCE === 'true'; } // Legacy support - if either old flag is false, persistence is disabled @@ -243,10 +243,10 @@ export class EnvironmentConfigService { process.env.USE_MOCK_REPOS === 'true' || process.env.USE_IN_MEMORY_EVENTS === 'true' ) { - return false; + return true; } - // Default to true (use persistence) unless explicitly disabled - return true; + // Default to false (use mock persistence) unless explicitly enabled + return false; } } diff --git a/src/shared/infrastructure/http/factories/ServiceFactory.ts b/src/shared/infrastructure/http/factories/ServiceFactory.ts index f08f3c80..11a3cce8 100644 --- a/src/shared/infrastructure/http/factories/ServiceFactory.ts +++ b/src/shared/infrastructure/http/factories/ServiceFactory.ts @@ -48,7 +48,6 @@ import { QueueName } from '../../events/QueueConfig'; import { RedisFactory } from '../../redis/RedisFactory'; import { IEventSubscriber } from 'src/shared/application/events/IEventSubscriber'; import { FeedService } from '../../../../modules/feeds/domain/services/FeedService'; -import { CardCollectionSaga } from '../../../../modules/feeds/application/sagas/CardCollectionSaga'; import { ATProtoIdentityResolutionService } from '../../../../modules/atproto/infrastructure/services/ATProtoIdentityResolutionService'; import { IIdentityResolutionService } from '../../../../modules/atproto/domain/services/IIdentityResolutionService'; import { CookieService } from '../services/CookieService'; @@ -293,10 +292,10 @@ export class ServiceFactory { const baseProfileService = new BlueskyProfileService(atProtoAgentService); let profileService: IProfileService; - const usePersistence = configService.shouldUsePersistence(); + const useMockPersistence = configService.shouldUseMockPersistence(); // caching requires persistence - if (!usePersistence) { + if (useMockPersistence) { profileService = baseProfileService; } else { // Create Redis connection for caching diff --git a/src/shared/infrastructure/locking/LockServiceFactory.ts b/src/shared/infrastructure/locking/LockServiceFactory.ts index 69154bc3..549c9dab 100644 --- a/src/shared/infrastructure/locking/LockServiceFactory.ts +++ b/src/shared/infrastructure/locking/LockServiceFactory.ts @@ -2,11 +2,12 @@ import { ILockService } from './ILockService'; import { RedisLockService } from './RedisLockService'; import { InMemoryLockService } from './InMemoryLockService'; import { RedisFactory } from '../redis/RedisFactory'; +import { configService } from '../config'; export class LockServiceFactory { static create(): ILockService { - const useMockRepos = process.env.USE_MOCK_REPOS === 'true'; - if (!useMockRepos) { + const useMockPersistence = configService.shouldUseMockPersistence(); + if (!useMockPersistence) { try { const redis = RedisFactory.createConnection({ host: process.env.REDIS_HOST || 'localhost', diff --git a/src/shared/infrastructure/processes/AppProcess.ts b/src/shared/infrastructure/processes/AppProcess.ts index 152ea1d3..565cef39 100644 --- a/src/shared/infrastructure/processes/AppProcess.ts +++ b/src/shared/infrastructure/processes/AppProcess.ts @@ -10,8 +10,8 @@ export class AppProcess implements IProcess { // Get configuration const config = this.configService.get(); - const useMockRepos = process.env.USE_MOCK_REPOS === 'true'; - if (!useMockRepos) { + const useMockPersistence = this.configService.shouldUseMockPersistence(); + if (!useMockPersistence) { // Create database connection with config const db = DatabaseFactory.createConnection( this.configService.getDatabaseConfig(),