-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathindex.js
More file actions
executable file
·113 lines (103 loc) · 3.84 KB
/
index.js
File metadata and controls
executable file
·113 lines (103 loc) · 3.84 KB
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
#!/usr/bin/env node
const yeoman = require('yeoman-environment');
const parseArgs = require('minimist');
const argsManager = require('./argsManager');
const appGenerator = require.resolve('./generator-vulcanjs/generators/app');
const packageGenerator = require.resolve('./generator-vulcanjs/generators/package');
const moduleGenerator = require.resolve('./generator-vulcanjs/generators/module');
const componentGenerator = require.resolve('./generator-vulcanjs/generators/component');
const routeGenerator = require.resolve('./generator-vulcanjs/generators/route');
const remover = require.resolve('./generator-vulcanjs/generators/remove');
const lister = require.resolve('./generator-vulcanjs/generators/list');
const env = yeoman.createEnv();
function runWithOptions (generator, extraOptions, callback) {
const optionsForGenerators = parseArgs(process.argv.slice(2));
const finalOptions = {};
Object.assign(finalOptions, optionsForGenerators, extraOptions);
console.log("there's a style here -->", finalOptions)
return env.run(generator, finalOptions, callback);
}
const action = argsManager.getAction();
const componentNamesToGeneratorRegisters = {
package: () => { env.register(packageGenerator, 'package'); },
app: () => { env.register(appGenerator, 'app'); },
module: () => { env.register(moduleGenerator, 'module'); },
component: () => { env.register(componentGenerator, 'component'); },
route: () => { env.register(routeGenerator, 'route'); },
remove: () => { env.register(remover, 'remove'); },
list: () => { env.register(lister, 'list'); },
};
function registerGenerator (componentName) {
const registerFn = componentNamesToGeneratorRegisters[componentName];
registerFn();
}
function run () {
if (action.type === 'generate') {
if (action.component === 'package') {
registerGenerator('package');
return runWithOptions('package', {
packageName: action.args[0],
});
} else if (action.component === 'module') {
registerGenerator('module');
return runWithOptions('module', {
packageName: action.args[0],
moduleName: action.args[1],
});
} else if (action.component === 'component') {
registerGenerator('component');
return runWithOptions('component', {
packageName: action.args[0],
componentName: action.args[1],
});
} else if (action.component === 'route') {
registerGenerator('route');
return runWithOptions('route', {
packageName: action.args[0],
routeName: action.args[1],
routePath: action.args[2],
componentName: action.args[3],
layoutName: action.args[4],
});
}
} else if (action.type === 'remove') {
registerGenerator('remove');
if (action.component === 'package') {
return runWithOptions('remove', {
vulcanjsComponent: 'package',
packageName: action.args[0],
});
} else if (action.component === 'module') {
return runWithOptions('remove', {
vulcanjsComponent: 'module',
packageName: action.args[0],
moduleName: action.args[1],
});
} else if (action.component === 'route') {
return runWithOptions('remove', {
vulcanjsComponent: 'route',
packageName: action.args[0],
routeName: action.args[1],
});
}
return runWithOptions('remove');
} else if (action.type === 'create') {
registerGenerator('app');
return runWithOptions('app', {
appName: action.args[0],
style: action.args[2]
});
} else if (action.type === 'list') {
registerGenerator('list');
return runWithOptions('list', {
vulcanjsComponent: action.component,
packageName: action.args[0],
});
} else if (action.type === 'unshallow') {
registerGenerator('unshallow');
return runWithOptions('unshallow', {
vulcanjsComponent: action.component,
});
}
}
run();