More documentation

This commit is contained in:
2022-02-10 17:43:41 +00:00
parent 2d7ea8867c
commit 355a9fe590
3 changed files with 16 additions and 1 deletions

View File

@ -1,10 +1,19 @@
export class ArgParser {
/**
* Create a unix-like argument parser to extract flags from the argument list. Can also create help messages.
* @param opts - {examples: string[], arguments: {key: string, alias: string, type: string, optional: boolean, desc: string}[], desc: string}
*/
constructor(opts) {
this.examples = opts.examples ?? [];
this.arguments = opts.args ?? [];
this.description = opts.desc;
}
/**
* Parse the list for arguments & create a dictionary.
* @param args {any[]} - Array of arguments
* @returns Dictionary of matched flags + unmatched args under 'extra'
*/
parse(args) {
const req = this.arguments.filter(a => !a.optional);
const queue = [...args];
@ -29,6 +38,10 @@ export class ArgParser {
return parsed;
}
/**
* Create a help message of the expected paramters & usage.
* @param msg {String} - Optional message to display with help
*/
help(msg) {
let message = '\n\n';
message += msg ? msg : this.description;