generator-robonkey
Version:
A Yeoman generator for Gulp, Templating, CSS Preprocessors, Coffeescript, PostCSS, Modernizr, svg icons/icon font generator, BrowserSync, and some libraries to choose from. Express, Wordpress, Drupal, CodeIgniter, Laravel subgenerators are available.
211 lines (182 loc) • 6.11 kB
JavaScript
'use strict';
var hasFeature = require('../helpers/hasFeature'),
setConfigVars = require('./setConfigVars');
function setJSAnswers(self, cb) {
setConfigVars(self, function(){
self.scriptsOption = self.cfg.scriptsOption;
self.javascriptOption = self.cfg.javascriptOption;
self.jsScripts = [];
for (var i = 0; i < self.scriptsOption.length; i++) {
switch(self.scriptsOption[i]) {
case 'jquery':
self.jsScripts.push({
key: 'jquery',
file: 'jquery.min.js',
main: 'dist/jquery.min.js',
sort: 0
});
break;
case 'react':
self.jsScripts.push({
key: 'react',
file: 'react.min.js',
//main: '*.min.js',
main: ["'react.min.js'", "'react-dom.min.js'", "'react-dom-server.min.js'"],
sort: 0
});
break;
case 'zepto':
self.jsScripts.push({
key: 'zepto',
file: 'zepto.min.js',
main: 'zepto.min.js',
sort: 0
});
break;
case 'underscore':
self.jsScripts.push({
key: 'underscore',
file: 'underscore-min.js',
main: 'underscore-min.js',
sort: 1
});
break;
case 'angular':
self.jsScripts.push({
key: 'angular',
file: 'angular.min.js',
main: 'angular.min.js',
sort: 2
});
break;
case 'waypoints':
if(hasFeature('jquery', self.scriptsOption)){
self.jsScripts.push({
key: 'waypoints',
file: 'jquery.waypoints.min.js',
main: 'lib/jquery.waypoints.min.js',
sort: 2
});
} else if(!hasFeature('jquery', self.scriptsOption) && hasFeature('zepto', self.scriptsOption)){
self.jsScripts.push({
key: 'waypoints',
file: 'zepto.waypoints.min.js',
main: 'lib/zepto.waypoints.min.js',
sort: 2
});
} else {
self.jsScripts.push({
key: 'waypoints',
file: 'noframework.waypoints.min.js',
main: 'lib/noframework.waypoints.min.js',
sort: 2
});
}
break;
case 'signals':
self.jsScripts.push({
key: 'js-signals',
file: 'signals.min.js',
main: 'dist/signals.min.js',
sort: 3
});
break;
case 'snap':
self.jsScripts.push({
key: 'snap',
file: 'snap.svg-min.js',
main: 'dist/snap.svg-min.js',
sort: 3
});
break;
case 'dthreejs':
self.jsScripts.push({
key: 'd3',
file: 'd3.min.js',
main: 'd3.min.js',
sort: 4
});
break;
case 'enquire':
self.jsScripts.push({
key: 'enquire',
file: 'enquire.min.js',
main: 'dist/enquire.min.js',
sort: 5
});
break;
case 'tweenmax':
self.jsScripts.push({
key: 'gsap',
file: 'TweenMax.min.js',
main: 'src/minified/TweenMax.min.js',
sort: 6
});
break;
case 'backbone':
self.jsScripts.push({
key: 'backbone',
file: 'backbone-min.js',
main: 'backbone-min.js',
sort: 7
});
break;
case 'scrollreveal':
self.jsScripts.push({
key: 'scrollreveal',
file: 'scrollreveal.min.js',
main: 'dist/scrollreveal.min.js',
src: 'scrollreveal/dist/',
sort: 10
});
break;
}
}
self.jsScriptsBower = self.jsScripts;
// Push extra scripts to bower list
if(hasFeature('require', self.scriptsOption)) {
self.jsScriptsBower.push({
key: 'require',
file: 'require.js',
main: 'require.js',
sort: 0
});
}
// if(hasFeature('modernizr', self.scriptsOption)) {
// self.jsScriptsBower.push({
// file: 'modernizr-custom.js',
// src: path.join(destRoot,'gulp')(self.rootFolder, 'src/modernizr/'),
// main: path.join(destRoot,'gulp')(self.rootFolder, 'src/modernizr/)',
// sort: 8
// });
// }
// // Overwrite self.jsScripts if Require option is true
// if(hasFeature('require', self.scriptsOption)) {
// self.jsScripts = [];
// self.jsScripts.push({
// file: 'require.js',
// sort: 0
// });
// }
self.jsScripts = self.jsScripts.sort(function(a,b){return a.sort-b.sort});
self.jsScriptsBower = self.jsScriptsBower.sort(function(a,b){return a.sort-b.sort});
self.modernizrOption = hasFeature('modernizr', self.scriptsOption);
self.jqueryOption = hasFeature('jquery', self.scriptsOption);
self.snapOption = hasFeature('snap', self.scriptsOption);
self.waypointsOption = hasFeature('waypoints', self.scriptsOption);
self.signalsOption = hasFeature('signals', self.scriptsOption);
self.dthreejsOption = hasFeature('dthreejs', self.scriptsOption);
self.tweenmaxOption = hasFeature('tweenmax', self.scriptsOption);
self.enquireOption = hasFeature('enquire', self.scriptsOption);
self.requireOption = hasFeature('require', self.scriptsOption);
self.modernizrOption = hasFeature('modernizr', self.scriptsOption);
self.angularOption = hasFeature('angular', self.scriptsOption);
self.backboneOption = hasFeature('backbone', self.scriptsOption);
self.underscoreOption = hasFeature('underscore', self.scriptsOption);
self.zeptoOption = hasFeature('zepto', self.scriptsOption);
self.reactOption = hasFeature('react', self.scriptsOption);
self.scrollrevealOption = hasFeature('scrollreveal', self.scriptsOption);
cb();
})
}
module.exports = setJSAnswers;