diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index caf4103b9..0ed1d781c 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -66,8 +66,8 @@ export class ActivitiesController { tags }: ActivitiesFilterDto ): Promise { - let endDate: Date; - let startDate: Date; + let endDate: Date | undefined; + let startDate: Date | undefined; if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ @@ -139,8 +139,8 @@ export class ActivitiesController { take }: GetActivitiesDto ): Promise { - let endDate: Date; - let startDate: Date; + let endDate: Date | undefined; + let startDate: Date | undefined; if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ diff --git a/apps/api/src/app/activities/activities.service.ts b/apps/api/src/app/activities/activities.service.ts index a40f6f952..a0d9ffef5 100644 --- a/apps/api/src/app/activities/activities.service.ts +++ b/apps/api/src/app/activities/activities.service.ts @@ -193,7 +193,8 @@ export class ActivitiesService { userId: data.userId }); - let account: Prisma.AccountCreateNestedOneWithoutActivitiesInput; + let account: + Prisma.AccountCreateNestedOneWithoutActivitiesInput | undefined; if (data.accountId) { account = { diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 8c3faa25d..f315580ca 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -186,7 +186,7 @@ export class AdminController { @Param('symbol') symbol: string, @Query('range') dateRange: DateRange ): Promise { - let date: Date; + let date: Date | undefined; if (dateRange) { const { startDate } = getIntervalFromDateRange({ dateRange }); diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 915c2068e..aedc8e4d0 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -659,7 +659,7 @@ export class AdminService { } private async countUsersWithAnalytics() { - let where: Prisma.UserWhereInput; + let where: Prisma.UserWhereInput | undefined; if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { where = { diff --git a/apps/api/src/app/endpoints/mcp/mcp.controller.ts b/apps/api/src/app/endpoints/mcp/mcp.controller.ts index 114a9c58f..26559c56e 100644 --- a/apps/api/src/app/endpoints/mcp/mcp.controller.ts +++ b/apps/api/src/app/endpoints/mcp/mcp.controller.ts @@ -99,8 +99,8 @@ export class GhostfolioMcpController { take }: z.infer ) { - let endDate: Date; - let startDate: Date; + let endDate: Date | undefined; + let startDate: Date | undefined; if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ diff --git a/apps/api/src/app/export/export.controller.ts b/apps/api/src/app/export/export.controller.ts index 27218d03d..8039ff6a3 100644 --- a/apps/api/src/app/export/export.controller.ts +++ b/apps/api/src/app/export/export.controller.ts @@ -45,8 +45,8 @@ export class ExportController { tags }: GetExportDto ): Promise { - let endDate: Date; - let startDate: Date; + let endDate: Date | undefined; + let startDate: Date | undefined; if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 313325f04..ca6966a9f 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -395,7 +395,7 @@ export class ImportService { if (!isDryRun) { const existingTag = await this.tagService.getTag({ id: tag.id }); - let oldTagId: string; + let oldTagId: string | undefined; if (existingTag) { oldTagId = tag.id; @@ -509,7 +509,7 @@ export class ImportService { 'tags' ]); - let oldAccountId: string; + let oldAccountId: string | undefined; const platformId = platformIdMapping[account.platformId] ?? account.platformId; @@ -596,7 +596,7 @@ export class ImportService { ]); for (const assetProfileWithMarketData of assetProfilesWithMarketDataDto) { - let assetProfileToCreate: Prisma.SymbolProfileCreateInput; + let assetProfileToCreate: Prisma.SymbolProfileCreateInput | undefined; let symbol = assetProfileWithMarketData.symbol; // Check if there is any existing asset profile diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 696507314..a0759b169 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -47,8 +47,9 @@ export class InfoService { public async get(): Promise { const info: Partial = {}; - let isReadOnlyMode: boolean; - let latestFearAndGreedStocksMarketDataPromise: Promise; + let isReadOnlyMode: boolean | undefined; + let latestFearAndGreedStocksMarketDataPromise: + Promise | undefined; const globalPermissions: string[] = []; diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index 3a0b063bb..971d8b564 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -1166,7 +1166,7 @@ export abstract class PortfolioCalculator { private async initialize(attempt = 1) { const startTimeTotal = performance.now(); - let cachedPortfolioSnapshot: PortfolioSnapshot; + let cachedPortfolioSnapshot: PortfolioSnapshot | undefined; let isCachedPortfolioSnapshotExpired = false; const portfolioSnapshotKey = this.redisCacheService.getPortfolioSnapshotKey( { diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 5075f00e7..af98200b7 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -569,7 +569,10 @@ export class PortfolioService { }); } - let streaks: PortfolioInvestmentsResponse['streaks']; + let streaks: PortfolioInvestmentsResponse['streaks'] = { + currentStreak: 0, + longestStreak: 0 + }; if (savingsRate) { streaks = this.getStreaks({ @@ -853,7 +856,7 @@ export class PortfolioService { ({ markets, marketsAdvanced } = this.getAggregatedMarkets(holdings)); } - let summary: PortfolioSummary; + let summary: PortfolioSummary | undefined; if (withSummary) { summary = await this.getSummary({ diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts index 3d4ddf092..8b17cbca5 100644 --- a/apps/api/src/main.ts +++ b/apps/api/src/main.ts @@ -46,7 +46,7 @@ async function bootstrap() { const configApp = await NestFactory.create(AppModule); const configService = configApp.get(ConfigService); - let customLogLevels: LogLevel[]; + let customLogLevels: LogLevel[] | undefined; try { customLogLevels = JSON.parse( diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index da3d20a07..12862937b 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -726,11 +726,11 @@ export class FinancialModelingPrepService } private parseAssetClass(profile: any): { - assetClass: AssetClass; - assetSubClass: AssetSubClass; + assetClass: AssetClass | undefined; + assetSubClass: AssetSubClass | undefined; } { - let assetClass: AssetClass; - let assetSubClass: AssetSubClass; + let assetClass: AssetClass | undefined; + let assetSubClass: AssetSubClass | undefined; if (profile) { if (profile.isEtf) { diff --git a/apps/api/src/services/fetch/fetch.service.ts b/apps/api/src/services/fetch/fetch.service.ts index 1cf260ed3..7b7cf4d53 100644 --- a/apps/api/src/services/fetch/fetch.service.ts +++ b/apps/api/src/services/fetch/fetch.service.ts @@ -156,7 +156,7 @@ export class FetchService implements OnModuleInit { text ]; - let rejectedBody: string; + let rejectedBody: string | undefined; for (const candidate of candidates) { if (typeof candidate !== 'string') { diff --git a/apps/api/src/services/prisma/prisma.service.ts b/apps/api/src/services/prisma/prisma.service.ts index ebbd3afd4..df55e45f7 100644 --- a/apps/api/src/services/prisma/prisma.service.ts +++ b/apps/api/src/services/prisma/prisma.service.ts @@ -21,7 +21,7 @@ export class PrismaService connectionString: configService.get('DATABASE_URL') }); - let customLogLevels: LogLevel[]; + let customLogLevels: LogLevel[] | undefined; try { customLogLevels = JSON.parse( diff --git a/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts b/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts index ce9c6fe4b..13ed73c82 100644 --- a/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts +++ b/apps/api/src/services/queues/data-gathering/data-gathering.processor.ts @@ -119,7 +119,7 @@ export class DataGatheringProcessor { const data: Prisma.MarketDataUpdateInput[] = []; const startOfUtcDateOfToday = getStartOfUtcDate(new Date()); - let lastMarketPrice: number; + let lastMarketPrice: number | undefined; while (isBefore(currentDate, startOfUtcDateOfToday)) { const marketPriceOfDataProvider =