Select Git revision
Config.ts 1.57 KiB
class Config {
private static _instance: Config;
public readonly api: {
port: number
};
public readonly database: {
type: string, host: string, port: number, user: string, password: string, database: string
};
public jwtConfig: {
secret: string; expiresIn: number;
};
public permissions: {
teachingStaff: Array<string>;
};
public readonly userPasswordLength: number;
public readonly userPasswordSaltRounds: number;
private constructor() {
this.api = {
port: Number(process.env.API_PORT)
};
this.database = {
type : process.env.DATABASE_TYPE,
host : process.env.DATABASE_HOST,
port : Number(process.env.DATABASE_PORT),
user : process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_NAME
};
this.jwtConfig = {
secret : process.env.JWT_SECRET_KEY,
expiresIn: Number(process.env.SESSION_TIMEOUT)
};
this.permissions = {
teachingStaff: JSON.parse(process.env.ROLES_WITH_TEACHING_STAFF_PERMISSIONS)
};
this.userPasswordLength = Number(process.env.USER_PASSWORD_LENGTH);
this.userPasswordSaltRounds = Number(process.env.USER_PASSWORD_SALT_ROUNDS);
}
public static get instance(): Config {
if ( !Config._instance ) {
Config._instance = new Config();
}
return Config._instance;
}
}
export default Config.instance;