Skip to content
Snippets Groups Projects
Select Git revision
  • e85e6edb217fe8cd44626323ec86c87239602fc2
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • update-dependencies
  • v5.0.0 protected
  • jw_sonar_backup
  • move-to-esm-only
  • 6.0.0-dev
  • 5.0.0
  • 4.2.0
  • 4.1.1
  • 4.1.0
  • 4.0.0
  • 3.5.0
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.0
  • 3.0.1
  • 3.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.0
  • v1.0.1
25 results

app.ts

Blame
  • Config.ts 1.70 KiB
    import fs   from 'fs-extra';
    import path from 'path';
    
    
    class Config {
        public readonly appName: string;
    
        public readonly resultsFolderMaxSizeInBytes: number;
    
        public readonly folders: {
            project: string; resultsVolume: string; resultsDojo: string; resultsExercice: string;
        };
    
        public readonly filenames: {
            results: string;
        };
    
        public readonly exercice: {
            id: string; secret: string;
        };
    
        public readonly dockerCompose: {
            projectName: string
        };
    
        constructor() {
            this.appName = process.env.APP_NAME || '';
    
            this.resultsFolderMaxSizeInBytes = Number(process.env.RESULTS_FOLDER_MAX_SIZE_IN_BYTES || 0);
    
            this.folders = {
                project        : process.env.FILES_FOLDER?.convertWithEnvVars() ?? './',
                resultsVolume  : process.env.RESULTS_VOLUME?.convertWithEnvVars() ?? '',
                resultsDojo    : path.join(process.env.RESULTS_VOLUME?.convertWithEnvVars() ?? '', 'Dojo/'),
                resultsExercice: path.join(process.env.RESULTS_VOLUME?.convertWithEnvVars() ?? '', 'Exercice/')
            };
            this.resetResultsVolume();
    
            this.filenames = {
                results: process.env.RESULTS_FILENAME || ''
            };
    
            this.exercice = {
                id    : process.env.DOJO_EXERCICE_ID || '',
                secret: process.env.DOJO_SECRET || ''
            };
    
            this.dockerCompose = {
                projectName: process.env.DOCKER_COMPOSE_PROJECT_NAME || ''
            };
        }
    
        private resetResultsVolume(): void {
            fs.emptyDirSync(this.folders.resultsVolume);
            fs.emptyDirSync(this.folders.resultsDojo);
            fs.emptyDirSync(this.folders.resultsExercice);
        }
    }
    
    
    export default new Config();