Skip to content
Snippets Groups Projects
Select Git revision
  • 66a6f6eb169a853969cb536a00bf18fac936a587
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • bedran_exercise-list
  • ask-user-to-delete-exercises-on-duplicates
  • update-dependencies
  • jw_sonar_backup
  • add_route_assignments
  • 6.0.0-dev
  • 5.0.1
  • 5.0.0
  • 4.1.0
  • 4.0.0
  • 3.5.3
  • 3.5.2
  • 3.5.1
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.3
  • 3.1.2
  • 3.1.1
  • 3.1.0
  • 3.0.1
  • 3.0.0
29 results

Config.ts

Blame
  • 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;