From 67f6e7cc57a35243b78e3d072df659743094cdc6 Mon Sep 17 00:00:00 2001 From: Ly Tuan Kiet Date: Sun, 6 Oct 2024 12:36:15 +0700 Subject: [PATCH] Refactor CORS configuration and add utility, update package.json for dev start command, and create GraphQL query/mutation files --- .vscode/settings.json | 3 +++ compose.yaml | 2 +- package.json | 2 +- src/common/utils/cors.utils.ts | 6 ++++++ src/graphql/graphql.module.ts | 2 +- .../cors.middleware.ts => graphql/mutation.graphql.ts} | 0 src/graphql/query.graphql.ts | 0 src/graphql/subscription.graphql.ts | 0 src/main.ts | 9 ++------- 9 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/common/utils/cors.utils.ts rename src/{middlewares/cors.middleware.ts => graphql/mutation.graphql.ts} (100%) create mode 100644 src/graphql/query.graphql.ts create mode 100644 src/graphql/subscription.graphql.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e0b39c9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "dependi.npm.lockFileEnabled": false +} \ No newline at end of file diff --git a/compose.yaml b/compose.yaml index 9caf86d..57d9fc6 100644 --- a/compose.yaml +++ b/compose.yaml @@ -19,4 +19,4 @@ services: networks: epess-net: driver: bridge - external: true + external: true \ No newline at end of file diff --git a/package.json b/package.json index 9e46259..a50591e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", - "start:dev": "nest start --watch", + "start:dev": "npm run prisma:generate && nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "prisma:generate": "npx prisma generate --schema=./epess-database/prisma/schema.prisma", diff --git a/src/common/utils/cors.utils.ts b/src/common/utils/cors.utils.ts new file mode 100644 index 0000000..23b9bfd --- /dev/null +++ b/src/common/utils/cors.utils.ts @@ -0,0 +1,6 @@ +export const cors = { + origin: process.env.CORS_ORIGIN, + methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'], + allowedHeaders: ['Content-Type', 'Authorization'], + credentials: true, +}; diff --git a/src/graphql/graphql.module.ts b/src/graphql/graphql.module.ts index 2ba996d..5d1f06a 100644 --- a/src/graphql/graphql.module.ts +++ b/src/graphql/graphql.module.ts @@ -22,4 +22,4 @@ export class GraphqlModule { .apply(GraphQLValidationMiddleware) // Apply the custom middleware .forRoutes('graphql'); // Ensure it only applies to the /graphql endpoint } -} \ No newline at end of file +} diff --git a/src/middlewares/cors.middleware.ts b/src/graphql/mutation.graphql.ts similarity index 100% rename from src/middlewares/cors.middleware.ts rename to src/graphql/mutation.graphql.ts diff --git a/src/graphql/query.graphql.ts b/src/graphql/query.graphql.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/graphql/subscription.graphql.ts b/src/graphql/subscription.graphql.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/main.ts b/src/main.ts index c3d8346..6a83fd5 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,15 +1,10 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; +import { cors } from './common/utils/cors.utils'; async function bootstrap() { const app = await NestFactory.create(AppModule); - app.enableCors({ - origin: '*', - methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', - preflightContinue: false, - optionsSuccessStatus: 204, - credentials: true, - }); + app.enableCors(cors); await app.listen(3000); } bootstrap();