MicroHack-Registrations-RestAPI / src / config / CheckableEnv.ts
CheckableEnv.ts
Raw
import { EnvEmitter } from "../utils/Events";
import { exitProcess } from "../utils/Process";
import { log } from "../utils/Function";
import { ExitCodes } from "./Errors";
import { InDev } from "./Env";

export function CheckEnv(Env_Field: string, exitCode: ICode) {
		if (!process.env[Env_Field]) {
			log(`🔴 Failed on loading env field => '${Env_Field}'`);
			exitProcess(exitCode, { field: Env_Field });
		}
		log(`🟢 Checking env field => '${Env_Field}' : ${process.env[Env_Field]}`);
	
	
	return process.env[Env_Field] as string;
}

// checkable env
log("---------------------------- Necessary ENV ----------------------------");
export const MONGODB_URI = CheckEnv("BACK_MONGODB_URI", ExitCodes.ENV_ERROR_COULDNT_FIND_FIELD);
export const MONGODB_NAME = CheckEnv("BACK_MONGODB_NAME", ExitCodes.ENV_ERROR_COULDNT_FIND_FIELD);
export const JWT_SECRET = CheckEnv("BACK_SECRET", ExitCodes.ENV_ERROR_COULDNT_FIND_FIELD);
export const ORIGINS = !InDev ? CheckEnv("CORPS_ORIGINS", ExitCodes.ENV_ERROR_COULDNT_FIND_FIELD).split(" ") : [];
log("--------------------------------------------------------\n");
EnvEmitter.emit("loaded");