@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
JavaScript
;
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