From 23cd6629b3126b4bcc04e78dcbd24f00847ecabc Mon Sep 17 00:00:00 2001 From: Pranav Prakash Date: Sat, 14 Oct 2017 22:59:19 +0530 Subject: [PATCH] :bug: Fixes issue with help output Fixes issue with help output --- bin/koa-api.js | 35 +++++++++++++++++++++++++++++++++++ package.json | 11 ++--------- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/bin/koa-api.js b/bin/koa-api.js index 1c1edff..0a17288 100755 --- a/bin/koa-api.js +++ b/bin/koa-api.js @@ -20,6 +20,20 @@ process.exit = exit; // CLI +/** + * Install an around function; AOP. + */ + +function around(obj, method, fn) { + var old = obj[method]; + + obj[method] = function() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) args[i] = arguments[i]; + return fn.call(this, old, args); + }; +} + /** * Install a before function; AOP. */ @@ -49,6 +63,27 @@ function confirm(msg, callback) { }); } +around(program, 'optionMissingArgument', function(fn, args) { + program.outputHelp(); + fn.apply(this, args); + return { args: [], unknown: [] }; +}); + +before(program, 'outputHelp', function() { + // track if help was shown for unknown option + this._helpShown = true; +}); + +before(program, 'unknownOption', function() { + // allow unknown options if help was shown, to prevent trailing error + this._allowUnknownOption = this._helpShown; + + // show help if not yet shown + if (!this._helpShown) { + program.outputHelp(); + } +}); + program .name('koa-api') .version(version, ' --version') diff --git a/package.json b/package.json index 4bb614b..bd97a56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "koa-api-generator", - "version": "1.0.3", + "version": "1.0.4", "description": "Koa API generator", "main": "./bin/koa-api.js", "preferGlobal": true, @@ -14,14 +14,7 @@ "type": "git", "url": "git+ssh://git@github.com/pranavpr/koa-api-generator.git" }, - "keywords": [ - "koa", - "koa2", - "api", - "generator", - "boilerplate", - "jest" - ], + "keywords": ["koa", "koa2", "api", "generator", "boilerplate", "jest"], "author": "Pranav Prakash ", "license": "MIT", "bugs": {