<commit_before>import path from 'path';
import { isArray, isString, isFunction, defaultsDeep } from 'lodash';

const entryError =
    `Le point d'entrée correspond au point d'entrée dans la SPA,
le paramètre devrait être une chaine de caractère correspondant au fichier de lancement de l'application, ou à son dossier si c'est un index.js
Par exemple (et par défaut) path.resolve(process.cwd(), './src'), càd le dossier src du dossier courant`;

/**
 * Classe pour construire une configuration de façon simple, et modulable.
 * 
 * @class ConfigBuilder
 */
class ConfigBuilder {
    configEnv = {};
    entries = [];
    output = {
        libraryTarget: 'umd'
    };
    devtool = false;
    stats = {};
    plugins = [];
    loaders = [];
    extensions = ['.js', '.jsx', '.json'];
    rules = [];
    debugConfig = true;
    sourceMaps = false;
    externals = {};
    definedVariables = {};
    projectName = null;
    aliases = {};

    _debugInfo() {
        if (this.debugConfig) {
            console.log('########################################################################');
            console.log(arguments);
            console.log('########################################################################');
            console.log();
        }
    }

    /**
     * Ajoute un point d'entrée dans l'application 
     * Cf https://webpack.js.org/configuration/entry-context/#entry
     * 
     * @param {Array|string} entry Le chemin indiquant le point d'entrée de l'application (relatif, ou absolu), par exemple path.resolve(process.cwd(), './src'), ou path.resolve(process.cwd(), './src/index.js'), ou './src'
     * <commit_msg>Remise à false du debug<commit_after>import path from 'path';
import { isArray, isString, isFunction, defaultsDeep } from 'lodash';

const entryError =
    `Le point d'entrée correspond au point d'entrée dans la SPA,
le paramètre devrait être une chaine de caractère correspondant au fichier de lancement de l'application, ou à son dossier si c'est un index.js
Par exemple (et par défaut) path.resolve(process.cwd(), './src'), càd le dossier src du dossier courant`;

/**
 * Classe pour construire une configuration de façon simple, et modulable.
 * 
 * @class ConfigBuilder
 */
class ConfigBuilder {
    configEnv = {};
    entries = [];
    output = {
        libraryTarget: 'umd'
    };
    devtool = false;
    stats = {};
    plugins = [];
    loaders = [];
    extensions = ['.js', '.jsx', '.json'];
    rules = [];
    debugConfig = false;
    sourceMaps = false;
    externals = {};
    definedVariables = {};
    projectName = null;
    aliases = {};

    _debugInfo() {
        if (this.debugConfig) {
            console.log('########################################################################');
            console.log(arguments);
            console.log('########################################################################');
            console.log();
        }
    }

    /**
     * Ajoute un point d'entrée dans l'application 
     * Cf https://webpack.js.org/configuration/entry-context/#entry
     * 
     * @param {Array|string} entry Le chemin indiquant le point d'entrée de l'application (relatif, ou absolu), par exemple path.resolve(process.cwd(), './src'), ou path.resolve(process.cwd(), './src/index.js'), ou './src'
     * 
{'fraction_non_alphanumeric': 0.21154427319431854, 'fraction_numerical': 0.0, 'mean_word_length': 3.05140758873929, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '809393', 'n_tokens_mistral': 951, 'n_tokens_neox': 930, 'n_words': 276}