-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommands.js
executable file
·54 lines (50 loc) · 1.27 KB
/
commands.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
#!/usr/bin/env node
const program = require('commander');
const {prompt} = require('inquirer');
const {createFolder} = require('./src/componentGenerator');
const {createHooksFolder} = require('./src/hookComponentGenerator');
const chalk = require('chalk');
program.version('1.0.6').description('react-cg');
const questions = [
{
type: 'checkbox',
name: 'componenttype',
message: 'select component type',
choices: ['class', 'hook'],
},
{
type: 'checkbox',
name: 'jstype',
message: 'select js type',
choices: ['js', 'jsx'],
},
{
type: 'checkbox',
name: 'csstype',
message: 'Select css type',
choices: ['css', 'scss', 'sass'],
},
];
program
.command('generate <name>')
.alias('g')
.description(chalk.yellow('generates component'))
.action(name => {
if (name) {
prompt(questions).then(answers => {
let types = {
jstype: answers.jstype[0],
csstype: answers.csstype[0],
componenttype: answers.componenttype[0],
};
if (types.componenttype === 'class') {
createFolder(name, types);
} else {
createHooksFolder(name, types);
}
});
} else {
console.log(' argument <name> is required');
}
});
program.parse(process.argv);