50 lines
1.7 KiB
TypeScript
50 lines
1.7 KiB
TypeScript
import { config as configDotenv } from 'dotenv';
|
|
import { CountryCode } from 'libphonenumber-js';
|
|
import ValidatorJS from 'validator';
|
|
|
|
configDotenv();
|
|
export const config = {
|
|
internal_port: parseInt(process.env.APP_PORT) || 4010,
|
|
development: process.env.NODE_ENV === "production",
|
|
testing: process.env.NODE_ENV === "test",
|
|
jwt_secret: process.env.JWT_SECRET || "secretjwtsecret",
|
|
phone_validation_countrycode: getPhoneCodeLocale(),
|
|
postalcode_validation_countrycode: getPostalCodeLocale(),
|
|
version: process.env.VERSION || require('../package.json').version,
|
|
seedTestData: getDataSeeding(),
|
|
app_url: process.env.APP_URL || "http://localhost:8080",
|
|
privacy_url: process.env.PRIVACY_URL || "/privacy",
|
|
imprint_url: process.env.IMPRINT_URL || "/imprint",
|
|
mailer_url: process.env.MAILER_URL || "",
|
|
mailer_key: process.env.MAILER_KEY || ""
|
|
}
|
|
let errors = 0
|
|
if (typeof config.internal_port !== "number") {
|
|
errors++
|
|
}
|
|
if (typeof config.development !== "boolean") {
|
|
errors++
|
|
}
|
|
if (config.mailer_url == "" || config.mailer_key == "") {
|
|
errors++;
|
|
}
|
|
function getPhoneCodeLocale(): CountryCode {
|
|
return (process.env.PHONE_COUNTRYCODE as CountryCode);
|
|
}
|
|
function getPostalCodeLocale(): any {
|
|
try {
|
|
const stringArray: String[] = ValidatorJS.isPostalCodeLocales;
|
|
let index = stringArray.indexOf(process.env.POSTALCODE_COUNTRYCODE);
|
|
return ValidatorJS.isPostalCodeLocales[index];
|
|
} catch (error) {
|
|
return null;
|
|
}
|
|
}
|
|
function getDataSeeding(): Boolean {
|
|
try {
|
|
return JSON.parse(process.env.SEED_TEST_DATA);
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
export let e = errors |