From 1fb32febb7137a5d6e9e1eba93a420f583e7b690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20=C5=81=C4=85giewka?= Date: Mon, 5 Oct 2026 21:07:28 +0200 Subject: [PATCH] Refactor/clean up imports, set up eslint --- apps/api/eslint.config.cjs | 14 +++++++++++++- .../src/app/activities/activities.controller.ts | 2 +- apps/api/src/app/import/import.service.ts | 2 +- apps/api/src/app/portfolio/current-rate.service.ts | 2 +- .../src/app/portfolio/portfolio.service.spec.ts | 2 +- apps/api/src/app/user/user.service.ts | 2 +- apps/api/src/services/prisma/prisma.service.ts | 3 ++- eslint.config.cjs | 7 ++++++- 8 files changed, 26 insertions(+), 8 deletions(-) diff --git a/apps/api/eslint.config.cjs b/apps/api/eslint.config.cjs index 043802a0df..cea6a4ff0c 100644 --- a/apps/api/eslint.config.cjs +++ b/apps/api/eslint.config.cjs @@ -21,7 +21,19 @@ module.exports = [ { files: ['**/*.ts', '**/*.tsx'], // Override or add rules here - rules: {} + rules: { + '@typescript-eslint/no-restricted-imports': [ + 'error', + { + paths: [ + { + message: 'Import from @ghostfolio/prisma/client instead.', + name: '@prisma/client' + } + ] + } + ] + } }, { files: ['**/*.js', '**/*.jsx'], diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index 275b714250..924cbb37fa 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -22,7 +22,7 @@ import { import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; import type { ImpersonationContext } from '@ghostfolio/common/types'; -import type { Order, Prisma } from '@ghostfolio/prisma/client'; +import type { Order } from '@ghostfolio/prisma/client'; import { Body, diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 2bcfa36015..2ff8b673dc 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -41,7 +41,7 @@ import { OrderWithAccount, UserWithSettings } from '@ghostfolio/common/types'; -import { type Account, Prisma } from '@ghostfolio/prisma/client'; +import type { Account, Prisma } from '@ghostfolio/prisma/client'; import { DataSource } from '@ghostfolio/prisma/enums'; import { Injectable } from '@nestjs/common'; diff --git a/apps/api/src/app/portfolio/current-rate.service.ts b/apps/api/src/app/portfolio/current-rate.service.ts index 151b0b14ab..d1fd9d926d 100644 --- a/apps/api/src/app/portfolio/current-rate.service.ts +++ b/apps/api/src/app/portfolio/current-rate.service.ts @@ -11,10 +11,10 @@ import { DataProviderInfo, ResponseError } from '@ghostfolio/common/interfaces'; +import { Type as ActivityType } from '@ghostfolio/prisma/enums'; import { utc } from '@date-fns/utc'; import { Injectable } from '@nestjs/common'; -import { Type as ActivityType } from '@prisma/client'; import { isBefore, isSameDay } from 'date-fns'; import { isEmpty, uniqBy } from 'lodash-es'; diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index d9819a1b32..5345c8d731 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -23,7 +23,7 @@ import { PortfolioSummary } from '@ghostfolio/common/interfaces'; import { AccountWithBalance } from '@ghostfolio/common/types'; -import { Prisma } from '@ghostfolio/prisma/client'; +import type { Prisma } from '@ghostfolio/prisma/client'; import { AssetClass, DataSource } from '@ghostfolio/prisma/enums'; import { Big } from 'big.js'; diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 5b96a03f14..04e220351b 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -40,7 +40,7 @@ import { import { getScopesOfAccess } from '@ghostfolio/common/scopes'; import { UserWithSettings } from '@ghostfolio/common/types'; import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type'; -import { Prisma, type User } from '@ghostfolio/prisma/client'; +import type { Prisma, User } from '@ghostfolio/prisma/client'; import { Role } from '@ghostfolio/prisma/enums'; import { Injectable, Logger } from '@nestjs/common'; diff --git a/apps/api/src/services/prisma/prisma.service.ts b/apps/api/src/services/prisma/prisma.service.ts index 6adedba484..540f66115f 100644 --- a/apps/api/src/services/prisma/prisma.service.ts +++ b/apps/api/src/services/prisma/prisma.service.ts @@ -1,4 +1,5 @@ -import { Prisma, PrismaClient } from '@ghostfolio/prisma/client'; +import type { Prisma } from '@ghostfolio/prisma/client'; +import { PrismaClient } from '@ghostfolio/prisma/client'; import { Injectable, diff --git a/eslint.config.cjs b/eslint.config.cjs index a67d2cbe5b..6e06a93f2d 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -89,8 +89,13 @@ module.exports = [ paths: [ { message: - 'Import server code from @ghostfolio/prisma/client, browser types from @ghostfolio/prisma/browser, and enums from @ghostfolio/prisma/enums instead.', + 'Import the types from @ghostfolio/prisma/browser and the enums from @ghostfolio/prisma/enums instead.', name: '@prisma/client' + }, + { + message: + 'Import the types from @ghostfolio/prisma/browser and the enums from @ghostfolio/prisma/enums instead.', + name: '@ghostfolio/prisma/client' } ] }