diff --git a/.env.example b/.env.example index 9fb1c6c..e82b6a7 100644 --- a/.env.example +++ b/.env.example @@ -11,6 +11,7 @@ MINIO_BUCKET_NAME=your-bucket-name MINIO_ENDPOINT=your-endpoint MINIO_SECRET_KEY=your-secret-key MINIO_USE_SSL=true +MINIO_PORT=9000 NODE_ENV=production TOKEN_SECRET=your-secret-key diff --git a/.forgejo/workflows/ci.yaml b/.forgejo/workflows/ci.yaml index 98adfa3..1afa3e5 100644 --- a/.forgejo/workflows/ci.yaml +++ b/.forgejo/workflows/ci.yaml @@ -1,7 +1,7 @@ -name: CI +name: Lint and Check Types on: [push] jobs: - test: + validations: runs-on: docker steps: - name: Checkout @@ -12,6 +12,8 @@ jobs: node-version: 22 - name: Install run: npm install + - name: Prisma Generate + run: npm run prisma:generate - name: Lint run: npm run lint - name: Check Types diff --git a/apps/api/.gitignore b/apps/api/.gitignore index 52962c2..2b6bbfa 100644 --- a/apps/api/.gitignore +++ b/apps/api/.gitignore @@ -56,3 +56,6 @@ profile-* profile* *clinic* *flamegraph* + +# prisma +prisma/client diff --git a/apps/api/prisma/schema.prisma b/apps/api/prisma/schema.prisma index 112080e..23f0c55 100644 --- a/apps/api/prisma/schema.prisma +++ b/apps/api/prisma/schema.prisma @@ -6,6 +6,7 @@ generator client { provider = "prisma-client-js" + output = "./client" } datasource db { diff --git a/apps/api/src/config.ts b/apps/api/src/config.ts index d0ea62d..c47cfa4 100644 --- a/apps/api/src/config.ts +++ b/apps/api/src/config.ts @@ -3,7 +3,7 @@ import dotenv from 'dotenv'; import path from 'path'; const rootDir = path.resolve(process.cwd(), '../../'); -dotenv.config({ path: `${rootDir}/.env.local` }); +dotenv.config({ path: `${rootDir}/.env` }); const schema = z .object({ diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 389a42d..4e9f955 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -4,7 +4,7 @@ import fastifyCookie from '@fastify/cookie'; import fastifyCors from '@fastify/cors'; import mercurius from 'mercurius'; import mercuriusCodegen from 'mercurius-codegen'; -import { PrismaClient } from '@prisma/client'; +import { PrismaClient } from '../prisma/client'; import config from './config'; import { resolvers } from './resolvers'; import schema from './schema'; diff --git a/apps/api/src/services/token.service.ts b/apps/api/src/services/token.service.ts index 1cd9b31..c338967 100644 --- a/apps/api/src/services/token.service.ts +++ b/apps/api/src/services/token.service.ts @@ -2,7 +2,7 @@ import jwt from 'jsonwebtoken'; import { v4 as uuidv4 } from 'uuid'; import crypto from 'crypto'; import { TokenConfig } from '../config'; -import { PrismaClient } from '@prisma/client'; +import { PrismaClient } from '../../prisma/client'; import { MemcService } from './memc.service'; type TransactionClient = Omit< diff --git a/apps/api/src/types.ts b/apps/api/src/types.ts index b007799..d3864fe 100644 --- a/apps/api/src/types.ts +++ b/apps/api/src/types.ts @@ -1,4 +1,4 @@ -import { PrismaClient } from '@prisma/client'; +import type { PrismaClient } from '../prisma/client'; import { MinioService, TokenService, diff --git a/package.json b/package.json index 8fa7b12..4b59961 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "start:api": "turbo run start --filter=api", "lint": "turbo run lint", "format": "prettier --write \"**/*.{ts,tsx,md}\"", - "check-types": "turbo run check-types" + "check-types": "turbo run check-types", + "prisma:generate": "turbo run prisma:generate" }, "devDependencies": { "@types/node": "^22.13.9", diff --git a/turbo.json b/turbo.json index 4e97ff0..3e7b554 100644 --- a/turbo.json +++ b/turbo.json @@ -23,7 +23,7 @@ ], "tasks": { "build": { - "dependsOn": ["^build"], + "dependsOn": ["^build", "^db:generate"], "inputs": [".env*"], "outputs": ["dist/**"] }, @@ -34,9 +34,13 @@ "dependsOn": ["^check-types"] }, "dev": { + "dependsOn": ["^db:generate"], "cache": false, "persistent": true }, + "db:generate": { + "cache": false + }, "start": { "cache": false, "persistent": true