UNPKG

@sastatesla/payment-gateway-sdk

Version:

A unified interface for integrating multiple payment providers (e.g., Razorpay, Cashfree) in your Node.js application.

60 lines 2.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const dotenv_1 = __importDefault(require("dotenv")); const joi_1 = __importDefault(require("joi")); dotenv_1.default.config(); const envVarsSchema = joi_1.default.object() .keys({ NODE_ENV: joi_1.default.string() .valid("production", "development", "test") .required(), PORT: joi_1.default.number().default(3000), // JWT JWT_SECRET: joi_1.default.string().required().description("JWT secret key"), JWT_ACCESS_EXPIRATION_MINUTES: joi_1.default.number().default(30), JWT_REFRESH_EXPIRATION_DAYS: joi_1.default.number().default(30), JWT_RESET_PASSWORD_EXPIRATION_MINUTES: joi_1.default.number().default(10), JWT_VERIFY_EMAIL_EXPIRATION_MINUTES: joi_1.default.number().default(10) }) .unknown(); const { value: envVars, error } = envVarsSchema .prefs({ errors: { label: "key" } }) .validate(process.env); if (error) { throw new Error(`Config validation error: ${error.message}`); } const config = { env: envVars.NODE_ENV, port: envVars.PORT, jwt: { secret: envVars.JWT_SECRET, accessExpirationMinutes: envVars.JWT_ACCESS_EXPIRATION_MINUTES, refreshExpirationDays: envVars.JWT_REFRESH_EXPIRATION_DAYS, resetPasswordExpirationMinutes: envVars.JWT_RESET_PASSWORD_EXPIRATION_MINUTES, verifyEmailExpirationMinutes: envVars.JWT_VERIFY_EMAIL_EXPIRATION_MINUTES }, email: { smtp: { host: envVars.SMTP_HOST, port: envVars.SMTP_PORT, auth: { user: envVars.SMTP_USERNAME, pass: envVars.SMTP_PASSWORD } }, from: envVars.EMAIL_FROM }, db: { protocol: envVars.DB_PROTOCOL, user: envVars.DB_USER, password: envVars.DB_PASSWORD, host: envVars.DB_HOST, port: envVars.DB_PORT, mainDbName: envVars.MAIN_DB_NAME } }; exports.default = config; //# sourceMappingURL=config.js.map