UNPKG

apiconnect-cli-loopback

Version:

Plugin for IBM API Connect Developer Toolkit

157 lines (149 loc) 4.01 kB
/********************************************************* {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 'use strict'; 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); }, } ], } ]; };