Skip to content

Commit ba2cd23

Browse files
committed
feat: remote template list filtering
1 parent 6da0554 commit ba2cd23

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

cg.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,18 @@ const admzip = require('adm-zip');
1717
const processor = require('./local.js');
1818
const remote = require('./remote.js');
1919

20-
async function list(provider) {
21-
await remote.list(provider);
22-
process.exit(1);
20+
async function list(provider, filter) {
21+
process.exitCode = await remote.list(provider, filter);
22+
process.exit();
2323
}
2424

2525
var argv = require('yargs')
2626
.usage('cg [options] {[path]configName} {openapi-definition}')
2727
.boolean('debug')
2828
.alias('d','debug')
2929
.describe('debug','Turn on debugging information in the model')
30+
.string('filter')
31+
.describe('filter','Filter term to use with --list')
3032
.boolean('flat')
3133
.alias('f','flat')
3234
.describe('flat','Do not include config-name in output directory structure')
@@ -55,7 +57,7 @@ var argv = require('yargs')
5557
.argv;
5658

5759
if (argv.list) {
58-
list(argv.list);
60+
list(argv.list, argv.filter);
5961
}
6062

6163
let configStr = argv._[0] || 'nodejs';

remote.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,42 @@ const util = require('util');
77
function main(obj, config, configName, callback) {
88
}
99

10-
function format(templates, prefix, type) {
10+
function format(templates, prefix, type, filter) {
1111
for (let template of templates) {
12-
console.log(prefix+':'+type+':'+template);
12+
if (!filter || (template.indexOf(filter)>-1)) {
13+
console.log(prefix+':'+type+':'+template);
14+
}
1315
}
1416
}
1517

16-
async function slurp(server, prefix, type) {
17-
await fetch(server+type+'s')
18+
async function slurp(server, prefix, type, plural, filter) {
19+
await fetch(server+plural)
1820
.then(res => {
1921
return res.text();
2022
})
2123
.then(data => {
22-
format(JSON.parse(data), prefix, type);
24+
format(JSON.parse(data), prefix, type, filter);
2325
})
2426
.catch(err => {
2527
console.error(util.inspect(err));
2628
});
2729
}
2830

29-
async function list(prefix) {
31+
async function list(prefix, filter) {
3032
let server = '';
3133
if (prefix === 'og') {
3234
server = 'https://api.openapi-generator.tech/api/gen/';
3335
}
3436
else if (prefix === 'sc') {
3537
server = 'https://generator.swagger.io/api/gen/';
3638
}
37-
await slurp(server, prefix, 'client');
38-
await slurp(server, prefix, 'server');
39+
else {
40+
console.warn('Unknown API provider prefix',prefix);
41+
return 1;
42+
}
43+
await slurp(server, prefix, 'client', 'clients', filter);
44+
await slurp(server, prefix, 'server', 'servers', filter);
45+
return 0;
3946
}
4047

4148
module.exports = {

0 commit comments

Comments
 (0)