chamesu
Version:
This package contains all packages of the chat application.
54 lines (38 loc) • 1.42 kB
text/typescript
/*
* Copyright (c) 2022.
* Author Peter Placzek (tada5hi)
* For the full copyright and license information,
* view the LICENSE file that was distributed with this source code.
*/
import dotenv from "dotenv";
const envResult = dotenv.config();
if (envResult.error) {
console.error('[ERROR] env failed to load:' + envResult.error);
}
export function requireFromEnv(key : string, alt?: string) {
if (!process.env[key] && typeof alt === 'undefined') {
console.error('[APP ERROR] Missing env variable:'+key)
return process.exit(1)
}
return process.env.hasOwnProperty(key) ? process.env[key] : alt;
}
export interface Environment {
env: string,
port: number,
swaggerDocumentation: boolean | null,
redisConnectionString: string,
rabbitMqConnectionString: string,
jwtMaxAge: number,
apiUrl: string,
}
const jwtMaxAge : number = parseInt(requireFromEnv('JWT_MAX_AGE', '3600'));
const env : Environment = {
env: requireFromEnv('NODE_ENV'),
port: parseInt(requireFromEnv('PORT'), 10),
swaggerDocumentation: requireFromEnv('SWAGGER_DOCUMENTATION', 'false') !== 'false',
redisConnectionString: requireFromEnv('REDIS_CONNECTION_STRING'),
rabbitMqConnectionString: requireFromEnv('RABBITMQ_CONNECTION_STRING'),
jwtMaxAge: Number.isNaN(jwtMaxAge) ? 3600 : jwtMaxAge,
apiUrl: requireFromEnv('API_URL'),
};
export default env;