const { parallel, src, dest } = require("gulp");

const sourcemaps = require("gulp-sourcemaps");
const concat = require("gulp-concat");

const gulp = require("gulp");
const uglify = require("gulp-uglify");
const babel = require("gulp-babel");

const sourceJs = "javascripts/**/*.js";
const sourceRemoteJS = [
    "./node_modules/vue/dist/vue.global.prod.js",
    "./node_modules/axios/dist/axios.min.js",
];

const destination = "public/js";

// TASKS ----------------------------------------------------------------------

const compileJs = function () {
    return gulp
        .src(sourceJs)
        .pipe(sourcemaps.init())
        .pipe(concat("main.js"))
        .pipe(
            babel({
                presets: ["@babel/env"],
            })
        )
        .pipe(uglify())
        .pipe(sourcemaps.write("."))
        .pipe(gulp.dest(destination));
};
const compileRemoteJs = function () {
    return gulp
        .src(sourceRemoteJS)
        .pipe(sourcemaps.init())
        .pipe(concat("libs.js"))
        .pipe(sourcemaps.write("."))
        .pipe(gulp.dest(destination));
};
// ----------------------------------------------------------------------------

// COMMANDS -------------------------------------------------------------------
exports.default = parallel(compileJs, compileRemoteJs);
// ----------------------------------------------------------------------------