class SharedConfig {
    public readonly production: boolean;
    public debug: boolean = false;

    public readonly logsFolder: string;

    public gitlab: {
        URL: string, apiURL: string
    };

    public readonly login: {
        gitlab: {
            client: {
                id: string
            }, url: {
                redirect: string, token: string
            }
        }
    };


    constructor() {
        this.production = process.env.NODE_ENV === 'production';

        this.logsFolder = process.env.LOGS_FOLDER ?? '';

        this.gitlab = {
            URL   : process.env.GITLAB_URL ?? '',
            apiURL: process.env.GITLAB_API_URL ?? ''
        };

        this.login = {
            gitlab: {
                client: {
                    id: process.env.LOGIN_GITLAB_CLIENT_ID ?? ''
                },
                url   : {
                    redirect: process.env.LOGIN_GITLAB_URL_REDIRECT ?? '',
                    token   : process.env.LOGIN_GITLAB_URL_TOKEN ?? ''
                }
            }
        };
    }
}


export default new SharedConfig();