This repository has been archived by the owner on Dec 14, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
questions.js
152 lines (148 loc) · 3.83 KB
/
questions.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
var _ = require('underscore');
var path = require('path');
var rc = require("rc");
module.exports.getKeys = function(){
var prompts = prompts || module.exports.getPrompts();
return _.pluck(prompts, "name");
};
module.exports.getPrompts = function(prev, opts){
prev = prev || {};
opts = opts || {};
var conf = rc("slush-biojs", {
appDescription: '',
appVersion: '0.1.0',
authorName: opts.fullname || opts.username || "",
authorEmail: opts.email || "",
userName: opts.username,
gulp: false,
phantomjs: false,
vis: true,
testsNonVis: true,
testsVisComponents: false,
css: false,
jshint: false,
license: "Apache-2.0"
});
var prompts = [{
name: 'appName',
message: 'Module name? (required)',
default: function() {
return prev.appName || path.basename(process.cwd());
}
}, {
name: 'appDescription',
message: 'Description?',
default: function() {
return prev.appDescription || conf.appDescription;
}
}, {
name: 'appVersion',
message: 'Module version?',
default: function() {
return prev.appVersion || conf.appVersion;
}
}, {
name: 'authorName',
message: 'Author name?',
default: function() {
return prev.authorName || conf.authorName;
}
}, {
name: 'authorEmail',
message: 'Author email?',
default: function() {
return prev.authorEmail || conf.authorEmail;
}
}, {
name: 'userName',
message: 'Github username?',
default: function(answers) {
return prev.userName || conf.userName || answers.name;
}
}, {
name: 'keywords',
message: 'Keywords for npm (separate with comma)',
default: function() {
return prev.keywords || '';
}
}, {
name: 'vis',
type: "confirm",
message: 'A visualization lib?',
default: function() {
if( prev.vis !== undefined) return prev.vis;
return conf.vis;
}
}, {
name: 'tests',
type: "confirm",
message: 'Unit tests',
default: function(answers) {
if( prev.test !== undefined) return prev.test;
if(answers.vis){
return conf.testsVisComponents;
}
return conf.testsNonVis;
}
}, {
name: 'css',
type: "confirm",
message: 'Add a example css file?',
default: function() {
if( prev.css !== undefined) return prev.css;
return conf.css;
},
when: function(answers) {
return answers.vis;
}
}, {
name: 'gulp',
type: "confirm",
message: 'Configure a build system? (Gulp)',
default: function() {
if( prev.gulp !== undefined) return prev.gulp;
return conf.gulp;
}
}, {
name: 'phantomjs',
type: "confirm",
message: 'UI tests with PhantomJS (headless browser)',
default: function() {
if( prev.phantomjs !== undefined) return prev.phantomjs;
return conf.phantomjs;
},
when: function(answers) {
return (answers.vis && answers.tests && answers.gulp);
}
}, {
name: 'jshint',
type: "confirm",
message: 'Linting (Check code style with JSHint)',
default: function() {
if( prev.jshint !== undefined) return prev.jshint;
return conf.jshint;
},
},
/*{
name: 'coverage',
type: "confirm",
default: true,
message: 'Check code coverage?',
},*/
{
type: 'list',
name: 'license',
message: 'Choose your license type',
choices: ['Apache-2.0', 'MIT', 'BSD'],
default: function() {
return prev.license || conf.license;
}
}, {
type: 'confirm',
name: 'moveon',
default: true,
message: 'Is this correct?'
}
];
return prompts;
};