41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
const required = (name: string) => {
|
|
const value = process.env[name];
|
|
if (!value) throw new Error(`Missing required E2E environment variable: ${name}`);
|
|
return value;
|
|
};
|
|
|
|
const database = required("MYSQL_DATABASE");
|
|
if (!database.toLowerCase().includes("e2e")) {
|
|
throw new Error(`Refusing E2E startup for a non-E2E database: ${database}`);
|
|
}
|
|
|
|
module.exports = {
|
|
jwt: {
|
|
secret_key: required("E2E_JWT_SECRET"),
|
|
refresh_secret_key: required("E2E_JWT_REFRESH_SECRET"),
|
|
token_expiration: "1h",
|
|
refresh_token_expiration: "1h",
|
|
},
|
|
database: {
|
|
host: required("MYSQL_HOST"),
|
|
port: Number(required("MYSQL_PORT")),
|
|
dialect: "mysql",
|
|
database,
|
|
username: required("MYSQL_USER"),
|
|
password: required("MYSQL_USER_PASSWORD"),
|
|
},
|
|
server: { hostname: "127.0.0.1", port: Number(required("PORT")), cors_origin: "http://127.0.0.1" },
|
|
defaults: {
|
|
dealer_logos_upload_path: "/tmp/uecko-e2e/dealer-logos",
|
|
dealer_logo_placeholder: "/tmp/uecko-e2e/logo-placeholder.png",
|
|
support: { from: "e2e@example.test", subject: "E2E" },
|
|
},
|
|
admin: {
|
|
name: "E2E Admin", email: "e2e-admin@example.test", password: required("E2E_USER_PASSWORD"), language: "es",
|
|
},
|
|
sample_dealer: {
|
|
name: required("E2E_USER_NAME"), email: required("E2E_USER_EMAIL"), password: required("E2E_USER_PASSWORD"), language: "es",
|
|
},
|
|
nodemailer: { brevo: {} },
|
|
};
|