-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcli.js
executable file
·71 lines (63 loc) · 1.87 KB
/
cli.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
#!/usr/bin/env node
const program = require("commander");
const colors = require("colors");
const yeoman = require("yeoman-environment");
const package = require("./package.json");
const env = yeoman.createEnv();
// register yeoman generators
env.register(require.resolve("./generators/base"), "react-native:base");
env.register(
require.resolve("./generators/component"),
"react-native:component"
);
env.register(require.resolve("./generators/reducer"), "react-native:reducer");
env.register(require.resolve("./generators/screen"), "react-native:screen");
// set the package version
program.version(package.version);
// CLI commands
program
.command("init")
.alias("base")
.description("Initialises a new React Native project")
.action(() => {
env.run("react-native:base");
});
program
.command("component [name]")
.description("Creates a new class based component")
.option("--classComponent", "Create a class based component")
.action((component, cmd) => {
if (!component) {
program.help(() =>
colors.red("Please make sure you pass a component name")
);
}
env.run(`react-native:component ${component}`, {
classComponent: cmd.classComponent
});
});
program
.command("reducer [name]")
.description("Creates a new reducer and set of actions")
.action(reducer => {
if (!reducer) {
program.help(() =>
colors.red("Please make sure you pass a reducer name")
);
}
env.run(`react-native:reducer ${reducer}`);
});
program
.command("screen [name]")
.description("Creates a new screen")
.action(screen => {
if (!screen) {
program.help(() => colors.red("Please make sure you pass a screen name"));
}
env.run(`react-native:screen ${screen}`);
});
// output help if no option passed
if (process.argv.slice(2).length === 0) {
program.outputHelp();
}
program.parse(process.argv);