-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
executable file
·33 lines (31 loc) · 1.04 KB
/
Copy pathindex.js
File metadata and controls
executable file
·33 lines (31 loc) · 1.04 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
#!/usr/bin/env node
const process = require(`process`);
const https = require(`https`);
const { exec } = require(`child_process`);
const fs = require(`fs`);
const arguments = process.argv.slice(2)
const cli = require(`./lib/cli`);
const validator = require(`./lib/validator`);
const utils = require(`./lib/utils`);
const errorHandler = utils.errorHandler;
const main = () => {
const obj = cli(arguments);
if (validator.isEmptyObject(obj)) {
return;
}
const { url, lang } = obj;
https.get(url, (res) => {
let data = ``;
res.on(`data`, (chunk) => {
data += chunk;
});
res.on(`end`, () => {
const object = JSON.parse(data);
const filtered = JSON.stringify(utils.sanitize(object));
fs.writeFileSync(`model.json`, filtered, errorHandler)
const command = `quicktype model.json --lang ${lang} --src ${utils.currentDirectory()} -o SwaggerModel.${lang}`;
exec(command, errorHandler);
});
}).on(`error`, errorHandler);
}
main();