declare function require(name:string); declare var __filename: string; declare var __dirname: string; var $ = require('gulp-load-plugins')({lazy: true}); var logs = require('./logs'); var _ = require('lodash'); function CheckArguments(options, settings, task, tasks, done) { var args = Array.prototype.slice.call(arguments); var len = args.length; //check module setting is not empty if(typeof(settings) === 'undefined' || !(len >= 4)) { throw new Error('default settings missing'); } //check async module and done callback is not empty if(!task.async && !(len >= 5)) { throw new Error('no promise callback provided'); } //check module setting is not empty if(!task.async && !(len >= 5)) { throw new Error('no promise callback provided'); } //check module setting is not empty if(task.required) { var remainer:Array = Object.keys(_.pick(options.modules, task.required)); if(remainer.length !== task.required.length) { $.util.beep(); logs('==========================================\n'); logs('> required modules:\n'); logs('> ' + $.util.colors.magenta('npm install --save ' + task.required.join(' '))); logs('==========================================\n'); throw new Error(task.taskName + ' requires the following npm modules: ' + task.required.join(' ')); } } } export = CheckArguments;