fix: missing environment variable type and variable validation

This commit is contained in:
abumahid
2026-06-18 11:03:41 +06:00
parent aaea7f99c4
commit 8298f27194
3 changed files with 34 additions and 22 deletions
+30 -18
View File
@@ -1,27 +1,39 @@
import "dotenv/config";
function getEnv(key: string): string {
const value = process.env[key];
if (!value) {
throw new Error(`Missing required environment variable: ${key}`);
}
return value;
}
export const configs = {
port: process.env.PORT,
env: process.env.NODE_ENV,
db_url: process.env.DATABASE_URL,
port: getEnv("PORT"),
env: getEnv("NODE_ENV"),
db_url: getEnv("DATABASE_URL"),
jwt: {
access_token: process.env.ACCESS_TOKEN,
refresh_token: process.env.REFRESH_TOKEN,
access_expires: process.env.ACCESS_EXPIRES,
refresh_expires: process.env.REFRESH_EXPIRES,
reset_secret: process.env.RESET_SECRET,
reset_expires: process.env.RESET_EXPIRES,
front_end_url: process.env.FRONT_END_URL,
verified_token: process.env.VERIFIED_TOKEN,
access_token: getEnv("ACCESS_TOKEN"),
access_expires: getEnv("ACCESS_EXPIRES"),
reset_secret: getEnv("RESET_SECRET"),
reset_expires: getEnv("RESET_EXPIRES"),
front_end_url: getEnv("FRONT_END_URL"),
verified_token: getEnv("VERIFIED_TOKEN"),
},
email: {
app_email: process.env.APP_USER_EMAIL,
app_password: process.env.APP_PASSWORD,
app_email: getEnv("APP_USER_EMAIL"),
app_password: getEnv("APP_PASSWORD"),
},
cloudinary: {
cloud_name: process.env.CLOUD_NAME,
cloud_api_key: process.env.CLOUD_API_KEY,
cloud_api_secret: process.env.CLOUD_API_SECRET,
cloud_name: getEnv("CLOUD_NAME"),
cloud_api_key: getEnv("CLOUD_API_KEY"),
cloud_api_secret: getEnv("CLOUD_API_SECRET"),
},
redis_url: process.env.REDIS_URL,
};
redis_url: getEnv("REDIS_URL"),
};
+2 -2
View File
@@ -4,8 +4,8 @@ import orderRoute from "./app/modules/order/order.route.js";
import planRoute from "./app/modules/plan/plan.route.js";
import profileRoute from "./app/modules/profile/profile.route.js";
import supportRoute from "./app/modules/support/support.route.js";
import templateRoute from "./app/modules/template/template.route";
import usersRoute from "./app/modules/users/users.route";
import templateRoute from "./app/modules/template/template.route.js";
import usersRoute from "./app/modules/users/users.route.js";
const appRouter = Router();
+2 -2
View File
@@ -6,8 +6,8 @@ import { orderSwaggerDocs } from "./app/modules/order/order.swagger.js";
import { planSwaggerDocs } from "./app/modules/plan/plan.swagger.js";
import { profileSwaggerDocs } from "./app/modules/profile/profile.swagger.js";
import { supportSwaggerDocs } from "./app/modules/support/support.swagger.js";
import { templateSwaggerDocs } from "./app/modules/template/template.swagger";
import { usersSwaggerDocs } from "./app/modules/users/users.swagger";
import { templateSwaggerDocs } from "./app/modules/template/template.swagger.js";
import { usersSwaggerDocs } from "./app/modules/users/users.swagger.js";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);