// commencer par importer gulp
// si on veux utiliser import il faut décalrer dans le package que l'on est en modules
// => "type":"module", et pas "type":"commonjs",
// dans le futur : 
// import * as gulp from gulp;
// mais en version actuelle : 
const gulp = require('gulp');
const gsass = require('gulp-sass')(require('sass')); // on require gsass et lui assigne sass comme compilateur
const gugly = require('gulp-uglify-es');

const sourcemaps = require('gulp-sourcemaps');
const { SourceMap } = require('module');

const {basename} = require('path'); // ceci permet de récupérer la fonction basename initialisée dans le module node "path" 
const {dirname:basedir,normalize:normalize_path} = require('path'); // ceci permet de récupérer la fonction dirname initialisée dans le module node "path" en la renommant en basedir

// !! => cast en boolean
const [un,deux,,quatre] = [!!1,2,gulp,"four"]; //assigne chaque case de tableau de droite à une const définie dans le tableau gauche en ignorant les éléments vide (ici le 3e element de gauche) 

const two = null;
const undefined2 = two ?? 2; // defini undefined2 a two si elle est non "nullable", sinon assigne 2

const struct_of_twos = {
    two: { arab : 2, roman : 'II' },
    deux : 2
}
let redefine2 = deux?.arab;
// redefine2 vaut ici 2 ça s'arrête à la première prop valide trouvée.

// pour voir la console faire "node gulpfile.js"
console.log(basedir(__filename));
// __dirname existe
function sass() {
    return gulp.src(normalize_path(basedir(__filename)+'/style-main.scss'))
          .pipe(sourcemaps.init())
          .pipe(gsass())
          .pipe(sourcemaps.write(basedir(__filename)))
          .pipe(gulp.dest(basedir(__filename)));
}

function uglify() {
    var dest = normalize_path(basedir(__filename)+'/scripts/');
    return gulp.src(normalize_path(basedir(__filename)+'/scripts-sources/**/*.js'))
          .pipe(sourcemaps.init())
          .pipe(gugly.default())
          .pipe(sourcemaps.write(dest))
          .pipe(gulp.dest(dest));
}

// à afficher avec gulp --tasks
module.exports = {
    sass,
    uglify,
    'default' : gulp.parallel(sass,uglify),
};

// exports.sass = sass;
// ou module.exports.sass = sass; 
// ou exports['default'] = 


// cwd à check pour gulp car il indique le "current working dir"