/*eslint-env node */
/*global require: true, module: true */

'use strict';

var options = require('../gulp-options.js'), gulp = require('gulp'),

    // Base dependencies
    clean = require('gulp-clean'), rename = require('gulp-rename'),

    // Classical gulp dependencies
    uglify = require('gulp-uglify');

var runSequence = require('run-sequence');

gulp.task('minifyvendorjs:clean', function() {
  return gulp.src(options.bowerFolderPath + '/**/*.min.js', {read: false})
      .pipe(clean());
});

gulp.task('minifyvendorjs:minify', function() {
  return gulp.src(options.bowerFolderPath + '/**/*.js')
      .pipe(uglify({preserveComments: 'false'}))
      .pipe(rename({suffix: '.min'}))
      .pipe(gulp.dest(function(file) {
        return file.base;
      }));
});

module.exports = function(callback) {
  return runSequence('minifyvendorjs:clean', 'minifyvendorjs:minify', callback);
};
