-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathcli.js
36 lines (33 loc) · 1.17 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
#!/usr/bin/env node
const program = require('commander');
const server = require("./server");
const generate = require('./generate');
const loader = require('loading-indicator');
const sqlweb = require('sqlweb/dist/sqlweb.node');
program.option('-s, --start', 'Start the idbstudio').
option('-p --port [value]', 'Configure the specified port', 3000).
option('-g --generate', 'Generate the idbstudio files').
option('-f --folder [folderName]', 'Take the folder name', 'idbstudio').
option('--sql [query]', 'convert sql to jsstore equivalent').
parse(process.argv);
if (program.start) {
console.log('Starting IDBStudio');
server.initServer(program.port);
} else if (program.generate) {
const timer = loader.start('Generating...');
generate.copy(program.folder).then(() => {
console.log('Files generated');
loader.stop(timer, false);
}).catch((err) => {
console.log('error occured while generating');
console.error(err);
loader.stop(timer);
})
} else if (program.sql) {
try {
const result = sqlweb.parseSql(program.sql);
console.log(JSON.stringify(result));
} catch (ex) {
console.log(ex);
}
}