zaklinaczekodu/zkflow

View on GitHub
src/index.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

var forEach = require('lodash.foreach');
var defaults = require('lodash.defaults');
var chalk = require('chalk');

function refill(options, gulp) {

  var defaultOptions = {
    enabled: true,
    dependencies: []
  };
  var args = Array.prototype.slice.call(arguments, 2);

  /* eslint-disable no-console */
  console.log('');
  console.log(' %s %s %s', chalk.green('◹'), chalk.green.bold('Refill'), chalk.grey('made by Zaklinacze Kodu'));
  console.log('');
  /* eslint-enable no-console */

  forEach(options, function(entry, taskName) {

    var compiledOptions;

    compiledOptions = defaults({}, entry, entry.task.defaultOptions, defaultOptions);

    if (compiledOptions.enabled === false) {
      return;
    }

    gulp.task(taskName, compiledOptions.dependencies, compiledOptions.task.getTask.apply(undefined, [compiledOptions, gulp].concat(args)));

  });

}

module.exports = refill;