diff --git a/apps/backend/src/jest.setup.ts b/apps/backend/src/jest.setup.ts index 84bbb3e..c34d845 100644 --- a/apps/backend/src/jest.setup.ts +++ b/apps/backend/src/jest.setup.ts @@ -18,6 +18,7 @@ jest.mock("@repo/database", () => { }); beforeAll(async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const { apply } = await pushSchema(schema, db as any); await apply(); }); diff --git a/apps/backend/src/middlewares/error.ts b/apps/backend/src/middlewares/error.ts index 877e627..e1f0da8 100644 --- a/apps/backend/src/middlewares/error.ts +++ b/apps/backend/src/middlewares/error.ts @@ -1,12 +1,11 @@ -import { Request, Response, NextFunction, ErrorRequestHandler } from "express"; +import { Request, Response, ErrorRequestHandler } from "express"; import { ReasonPhrases, StatusCodes } from "http-status-codes"; import { GenericError } from "@repo/backend/utils/errors"; const errorHandler: ErrorRequestHandler = ( error: unknown, req: Request, - res: Response, - next: NextFunction + res: Response ) => { console.error(error); diff --git a/apps/backend/src/middlewares/validation.ts b/apps/backend/src/middlewares/validation.ts index 49cef03..ce24057 100644 --- a/apps/backend/src/middlewares/validation.ts +++ b/apps/backend/src/middlewares/validation.ts @@ -2,7 +2,7 @@ import { Request, Response, NextFunction } from "express"; import { z, ZodError } from "zod"; import { BadRequestError } from "@repo/backend/utils/errors"; -const validateHandler = (schema: z.ZodObject) => { +const validateHandler = (schema: z.ZodSchema) => { return (req: Request, res: Response, next: NextFunction) => { try { schema.parse(req); @@ -10,7 +10,9 @@ const validateHandler = (schema: z.ZodObject) => { } catch (error) { if (error instanceof ZodError) { const errorMessages = error.errors - .map((issue: any) => `${issue.path.join(".")} is ${issue.message}`) + .map( + (issue: z.ZodIssue) => `${issue.path.join(".")} is ${issue.message}` + ) .join(", "); throw new BadRequestError(errorMessages); } else { diff --git a/apps/backend/src/modules/auth/auth.test.ts b/apps/backend/src/modules/auth/auth.test.ts index 2aa8809..1465cb9 100644 --- a/apps/backend/src/modules/auth/auth.test.ts +++ b/apps/backend/src/modules/auth/auth.test.ts @@ -258,7 +258,6 @@ describe("Auth API", () => { .returning(); const refreshToken = jwtSignRefreshToken({ userId: user[0].id }); - const hashedToken = await argon2.hash(refreshToken); await db.insert(refreshTokens).values({ userId: user[0].id, token: "invalidToken", diff --git a/apps/backend/src/modules/chat/chat.service.ts b/apps/backend/src/modules/chat/chat.service.ts index 9f6dd3a..8a6ac88 100644 --- a/apps/backend/src/modules/chat/chat.service.ts +++ b/apps/backend/src/modules/chat/chat.service.ts @@ -1,4 +1,4 @@ -import { and, asc, count, desc, eq, exists, notExists } from "drizzle-orm"; +import { and, count, desc, eq, exists, notExists } from "drizzle-orm"; import { db } from "@repo/database"; import { chatParticipants, diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json index 4368f8b..f4682d7 100644 --- a/apps/backend/tsconfig.json +++ b/apps/backend/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "lib": ["ES2015"], "outDir": "./dist", + "target": "es2017", "paths": { "@repo/backend/*": ["./src/*"] } diff --git a/packages/database/drizzle.config.ts b/packages/database/drizzle.config.ts index 812ee3f..6c85a0a 100644 --- a/packages/database/drizzle.config.ts +++ b/packages/database/drizzle.config.ts @@ -5,10 +5,10 @@ export default defineConfig({ schema: "./src/schema/*.ts", dialect: "postgresql", dbCredentials: { - host: process.env.POSTGRES_HOST, - port: process.env.POSTGRES_PORT, - database: process.env.POSTGRES_DATABASE, - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, + host: process.env.POSTGRES_HOST!, + port: Number(process.env.POSTGRES_PORT!), + database: process.env.POSTGRES_DATABASE!, + user: process.env.POSTGRES_USER!, + password: process.env.POSTGRES_PASSWORD!, }, }); diff --git a/packages/database/src/index.ts b/packages/database/src/index.ts index 44101d8..2e9825f 100644 --- a/packages/database/src/index.ts +++ b/packages/database/src/index.ts @@ -1,18 +1,18 @@ +import { Pool } from "pg"; import { drizzle } from "drizzle-orm/node-postgres"; import * as schema from "./schema"; -const db = drizzle({ - schema: schema, - connection: { - host: process.env.POSTGRES_HOST, - port: process.env.POSTGRES_PORT, - database: process.env.POSTGRES_DATABASE, - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - ssl: true, - }, +const pool = new Pool({ + host: process.env.POSTGRES_HOST, + port: Number(process.env.POSTGRES_PORT!), + database: process.env.POSTGRES_DATABASE, + user: process.env.POSTGRES_USER, + password: process.env.POSTGRES_PASSWORD, + ssl: true, }); +const db = drizzle(pool, { schema }); + const dbTestConnection = async () => { try { const result = await db.execute("SELECT NOW()"); diff --git a/packages/database/src/schema/base.ts b/packages/database/src/schema/base.ts index 59a4792..cd641d7 100644 --- a/packages/database/src/schema/base.ts +++ b/packages/database/src/schema/base.ts @@ -1,4 +1,3 @@ -import { sql } from "drizzle-orm"; import { timestamp } from "drizzle-orm/pg-core"; const timeStamps = (softDelete = false) => { diff --git a/packages/database/src/schema/messages.ts b/packages/database/src/schema/messages.ts index 94b6f59..a5d9fb7 100644 --- a/packages/database/src/schema/messages.ts +++ b/packages/database/src/schema/messages.ts @@ -1,4 +1,4 @@ -import { pgTable, integer, text, timestamp, uuid } from "drizzle-orm/pg-core"; +import { pgTable, integer, text, timestamp } from "drizzle-orm/pg-core"; import { timeStamps } from "./base"; import { chats } from "./chats"; import { users } from "./users"; diff --git a/packages/database/src/schema/realtions.ts b/packages/database/src/schema/realtions.ts index ee8c95c..076b9e8 100644 --- a/packages/database/src/schema/realtions.ts +++ b/packages/database/src/schema/realtions.ts @@ -14,7 +14,7 @@ export const usersRealtions = relations(users, ({ one, many }) => ({ export const userPrivacySettingsRelations = relations( userPrivacySettings, - ({ one, many }) => ({ + ({ one }) => ({ user: one(users, { fields: [userPrivacySettings.userId], references: [users.id], @@ -22,7 +22,7 @@ export const userPrivacySettingsRelations = relations( }) ); -export const friendsRealtions = relations(friends, ({ one, many }) => ({ +export const friendsRealtions = relations(friends, ({ one }) => ({ userA: one(users, { fields: [friends.userA], references: [users.id], @@ -35,30 +35,27 @@ export const friendsRealtions = relations(friends, ({ one, many }) => ({ }), })); -export const blockedUsersRelations = relations( - blockedUsers, - ({ one, many }) => ({ - blocker: one(users, { - fields: [blockedUsers.blockerId], - references: [users.id], - relationName: "blocker", - }), - blocked: one(users, { - fields: [blockedUsers.blockedId], - references: [users.id], - relationName: "blocked", - }), - }) -); +export const blockedUsersRelations = relations(blockedUsers, ({ one }) => ({ + blocker: one(users, { + fields: [blockedUsers.blockerId], + references: [users.id], + relationName: "blocker", + }), + blocked: one(users, { + fields: [blockedUsers.blockedId], + references: [users.id], + relationName: "blocked", + }), +})); -export const chatsRelations = relations(chats, ({ one, many }) => ({ +export const chatsRelations = relations(chats, ({ many }) => ({ chatParticipants: many(chatParticipants), messages: many(messages), })); export const chatParticipantsRelations = relations( chatParticipants, - ({ one, many }) => ({ + ({ one }) => ({ user: one(users, { fields: [chatParticipants.userId], references: [users.id], @@ -70,7 +67,7 @@ export const chatParticipantsRelations = relations( }) ); -export const messagesRelations = relations(messages, ({ one, many }) => ({ +export const messagesRelations = relations(messages, ({ one }) => ({ sender: one(users, { fields: [messages.senderId], references: [users.id], @@ -84,7 +81,7 @@ export const messagesRelations = relations(messages, ({ one, many }) => ({ export const messageReadReceiptsRelations = relations( messageReadReceipts, - ({ one, many }) => ({ + ({ one }) => ({ chat: one(chats, { fields: [messageReadReceipts.chatId], references: [chats.id],