namirasoft-node-cli
Advanced tools
Comparing version 1.2.10 to 1.2.11
@@ -12,3 +12,4 @@ import { Application } from "./Application"; | ||
run(): Promise<void>; | ||
isHelp(): boolean; | ||
abstract help(): void; | ||
} |
@@ -23,2 +23,3 @@ "use strict"; | ||
ans = cur.name + " " + ans; | ||
cur = cur.parent; | ||
} | ||
@@ -30,3 +31,5 @@ return ans.trim(); | ||
let error = yield this.getError(); | ||
if (error == null) | ||
if (this.isHelp()) | ||
this.help(); | ||
else if (error == null) | ||
yield this.exec(); | ||
@@ -39,4 +42,7 @@ else { | ||
} | ||
isHelp() { | ||
return false; | ||
} | ||
} | ||
exports.BaseCommand = BaseCommand; | ||
//# sourceMappingURL=BaseCommand.js.map |
@@ -11,3 +11,4 @@ import { BaseFinalCommandOptionSchema } from "./BaseFinalCommandOptionSchema"; | ||
protected getError(): Promise<string | null>; | ||
isHelp(): boolean; | ||
help(): void; | ||
} |
@@ -21,2 +21,10 @@ "use strict"; | ||
this.options = options; | ||
this.options.push({ | ||
name: "help", | ||
short: "h", | ||
args: [], | ||
defaults: false, | ||
description: "Prints the instrcution of this command", | ||
optional: true | ||
}); | ||
} | ||
@@ -43,3 +51,8 @@ getOption(name) { | ||
let option = this.getOption(name); | ||
this.option_values[option.name] = []; | ||
if (option.args.length == 0) | ||
this.option_values[option.name] = true; | ||
else if (option.args.length == 1) | ||
this.option_values[option.name] = null; | ||
else | ||
this.option_values[option.name] = []; | ||
option_provided[option.name] = true; | ||
@@ -49,3 +62,6 @@ for (let o = 1; o <= option.args.length; o++) { | ||
throw new Error(`Option '${name}' requires ${option.args.length} arguments.`); | ||
this.option_values[option.name].push(this.argv[index + o]); | ||
if (option.args.length == 1) | ||
this.option_values[option.name] = this.argv[index + o]; | ||
else | ||
this.option_values[option.name].push(this.argv[index + o]); | ||
} | ||
@@ -82,3 +98,3 @@ return option.args.length; | ||
else { | ||
if (index >= this.options.length) | ||
if (index >= this.args.length) | ||
return "Extra arguments were provided"; | ||
@@ -95,5 +111,10 @@ this.arg_values.push(arg); | ||
} | ||
if (index != this.args.length) | ||
return `Less arguemnts are provided. ${this.args.length} is required, but ${index} was provided`; | ||
return null; | ||
}); | ||
} | ||
isHelp() { | ||
return this.option_values.help; | ||
} | ||
help() { | ||
@@ -107,5 +128,3 @@ this.app.logger.info("The command format here is:"); | ||
let option = this.options[i]; | ||
this.app.logger.info(` --${option.name} | -${option.short} ${option.optional ? "(optional)" : ""}`); | ||
if (option.description) | ||
this.app.logger.info(` ${option.description}`); | ||
this.app.logger.info(` --${option.name} | -${option.short} ${option.optional ? "(optional)" : ""}`.padEnd(40, ' ') + `=> ${option.description}`); | ||
if (option.args.length > 0) { | ||
@@ -112,0 +131,0 @@ this.app.logger.info(` Arguments:`); |
@@ -7,3 +7,3 @@ export type BaseFinalCommandOptionSchema = { | ||
args: string[]; | ||
defaults: string[]; | ||
defaults: any; | ||
}; |
{ | ||
"name": "namirasoft-node-cli", | ||
"description": "Namira Software Corporation Node CLI NPM Package", | ||
"version": "1.2.10", | ||
"version": "1.2.11", | ||
"main": "./dist/index.js", | ||
@@ -6,0 +6,0 @@ "types": "./dist/index.d.ts", |
@@ -16,6 +16,7 @@ import { Application } from "./Application"; | ||
let ans: string = ""; | ||
let cur: BaseCommand = this; | ||
let cur: BaseCommand | null = this; | ||
while (cur != null) | ||
{ | ||
ans = cur.name + " " + ans; | ||
cur = cur.parent; | ||
} | ||
@@ -29,3 +30,5 @@ return ans.trim(); | ||
let error = await this.getError(); | ||
if (error == null) | ||
if (this.isHelp()) | ||
this.help(); | ||
else if (error == null) | ||
await this.exec(); | ||
@@ -38,3 +41,7 @@ else | ||
} | ||
isHelp(): boolean | ||
{ | ||
return false; | ||
} | ||
abstract help(): void; | ||
} |
@@ -15,2 +15,10 @@ import { BaseFinalCommandOptionSchema } from "./BaseFinalCommandOptionSchema"; | ||
this.options = options; | ||
this.options.push({ | ||
name: "help", | ||
short: "h", | ||
args: [], | ||
defaults: false, | ||
description: "Prints the instrcution of this command", | ||
optional: true | ||
}); | ||
} | ||
@@ -41,3 +49,8 @@ private getOption(name: string): BaseFinalCommandOptionSchema | ||
let option = this.getOption(name); | ||
this.option_values[option.name] = []; | ||
if (option.args.length == 0) | ||
this.option_values[option.name] = true; | ||
else if (option.args.length == 1) | ||
this.option_values[option.name] = null; | ||
else | ||
this.option_values[option.name] = []; | ||
option_provided[option.name] = true; | ||
@@ -48,3 +61,6 @@ for (let o = 1; o <= option.args.length; o++) | ||
throw new Error(`Option '${name}' requires ${option.args.length} arguments.`); | ||
this.option_values[option.name].push(this.argv[index + o]); | ||
if (option.args.length == 1) | ||
this.option_values[option.name] = this.argv[index + o]; | ||
else | ||
this.option_values[option.name].push(this.argv[index + o]); | ||
} | ||
@@ -88,3 +104,3 @@ return option.args.length; | ||
{ | ||
if (index >= this.options.length) | ||
if (index >= this.args.length) | ||
return "Extra arguments were provided"; | ||
@@ -102,4 +118,10 @@ this.arg_values.push(arg); | ||
} | ||
if (index != this.args.length) | ||
return `Less arguemnts are provided. ${this.args.length} is required, but ${index} was provided`; | ||
return null; | ||
} | ||
override isHelp(): boolean | ||
{ | ||
return this.option_values.help; | ||
} | ||
override help(): void | ||
@@ -115,5 +137,3 @@ { | ||
let option = this.options[i]; | ||
this.app.logger.info(` --${option.name} | -${option.short} ${option.optional ? "(optional)" : ""}`); | ||
if (option.description) | ||
this.app.logger.info(` ${option.description}`); | ||
this.app.logger.info(` --${option.name} | -${option.short} ${option.optional ? "(optional)" : ""}`.padEnd(40, ' ') + `=> ${option.description}`); | ||
if (option.args.length > 0) | ||
@@ -120,0 +140,0 @@ { |
@@ -8,3 +8,3 @@ export type BaseFinalCommandOptionSchema = | ||
args: string[], | ||
defaults: string[] | ||
defaults: any | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
50338
1021