-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathindex.js
More file actions
executable file
·128 lines (118 loc) · 3.93 KB
/
index.js
File metadata and controls
executable file
·128 lines (118 loc) · 3.93 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/env node
'use strict';
var yeoman = require('yeoman-environment');
var parseArgs = require('minimist');
var argsManager = require('./argsManager');
var appGenerator = require.resolve('./generator-vulcanjs/generators/app');
var packageGenerator = require.resolve('./generator-vulcanjs/generators/package');
var moduleGenerator = require.resolve('./generator-vulcanjs/generators/module');
var componentGenerator = require.resolve('./generator-vulcanjs/generators/component');
var routeGenerator = require.resolve('./generator-vulcanjs/generators/route');
var remover = require.resolve('./generator-vulcanjs/generators/remove');
var lister = require.resolve('./generator-vulcanjs/generators/list');
var env = yeoman.createEnv();
function runWithOptions(generator, extraOptions, callback) {
var optionsForGenerators = parseArgs(process.argv.slice(2));
var finalOptions = {};
Object.assign(finalOptions, optionsForGenerators, extraOptions);
console.log("there's a style here -->", finalOptions);
return env.run(generator, finalOptions, callback);
}
var action = argsManager.getAction();
var componentNamesToGeneratorRegisters = {
package: function _package() {
env.register(packageGenerator, 'package');
},
app: function app() {
env.register(appGenerator, 'app');
},
module: function module() {
env.register(moduleGenerator, 'module');
},
component: function component() {
env.register(componentGenerator, 'component');
},
route: function route() {
env.register(routeGenerator, 'route');
},
remove: function remove() {
env.register(remover, 'remove');
},
list: function list() {
env.register(lister, 'list');
}
};
function registerGenerator(componentName) {
var 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();