apiconnect-cli-loopback
Version:
Plugin for IBM API Connect Developer Toolkit
157 lines (149 loc) • 4.01 kB
JavaScript
/********************************************************* {COPYRIGHT-TOP} ***
* Licensed Materials - Property of IBM
* 5725-Z22, 5725-Z63, 5725-U33, 5725-Z63
*
* (C) Copyright IBM Corporation 2016, 2017
*
* All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or disclosure
* restricted by GSA ADP Schedule Contract with IBM Corp.
********************************************************** {COPYRIGHT-END} **/
// Node module: apiconnect-cli-loopback
;
var g = require('strong-globalize')();
// hard code the list in order to reduce command load times.
var lbGenerators = [
'acl',
'boot-script',
'middleware',
'property',
'relation',
'remote-method',
'swagger',
];
var commands = [ {
command: 'app [name]',
options: [
'--skip-install',
'--skip-next-steps',
'--explorer',
],
helpInfo: function() {
return g.f('apic_loopback_app_help.txt');
},
action: function(name, opts) {
opts.name = name;
return require('./create')(opts);
},
aliases: [ 'loopback' ],
allowExtraArguments: true,
}, {
command: 'export-api-def',
options: [ '-o, --output <file>', '--json', '--skip-cache' ],
helpInfo: function() {
return g.f('apic_loopback_export-api-def_help.txt');
},
action: function(opts) {
return require('./actions').exportApiDef();
},
aliases: [],
allowExtraArguments: true,
}, {
command: 'refresh',
helpInfo: function() {
return g.f('apic_loopback_refresh_help.txt');
},
action: function(opts) {
return require('./actions').refresh();
},
aliases: [],
} ];
lbGenerators.forEach(function(generatorName) {
var cmd;
switch (generatorName) {
case 'boot-script':
case 'middleware':
cmd = generatorName + ' [name]';
break;
case 'remote-method':
cmd = generatorName + ' [model_name] [method_name]';
break;
case 'swagger':
cmd = generatorName + ' [api_filename]';
break;
default:
cmd = generatorName;
break;
};
var options = [ '--skip-cache' ];
commands.push({
command: cmd,
options: options,
helpInfo: function() {
var help = null;
switch (generatorName.split(' ')[0]) {
case 'acl':
help = g.f('apic_loopback_acl_help.txt');
break;
case 'boot-script':
help = g.f('apic_loopback_boot-script_help.txt');
break;
case 'middleware':
help = g.f('apic_loopback_middleware_help.txt');
break;
case 'property':
help = g.f('apic_loopback_property_help.txt');
break;
case 'relation':
help = g.t('apic_loopback_relation_help.txt');
break;
case 'remote-method':
help = g.f('apic_loopback_remote-method_help.txt');
break;
case 'swagger':
help = g.f('apic_loopback_swagger_help.txt');
break;
default:
break;
}
return help;
},
action: function(opts) {
return require('./actions').lbGenerator();
},
aliases: [],
allowExtraArguments: true,
});
});
exports.getTopics = function() {
return [ {
name: 'loopback',
commands: commands,
}, {
name: 'local',
visible: false,
commands: [ {
command: 'create [name]',
type: 'model',
options: [ '--skip-cache', '--name <name>' ],
aliases: [ 'create' ],
helpInfo: function() {
return g.f('apic_local_create_model_help.txt');
},
action: function(name, options) {
return require('./actions').launchGenerator(name, options);
},
}, {
command: 'create [name]',
type: 'datasource',
options: [ '--skip-cache', '--name <name>' ],
aliases: [ 'create' ],
helpInfo: function() {
return g.f('apic_local_create_datasource_help.txt');
},
action: function(name, options) {
return require('./actions').launchGenerator(name, options);
},
} ],
} ];
};