import jamshelpoption = require("./jamshelpoption"); import jamshelper = require("./jamshelper"); import HelpOption = jamshelpoption.HelpOption; import jamsglobal = require("./jamsglobal"); var helper = new jamshelper.Helper(); export class ClientParameter { // #region Properties command: string; options: { [command: string]: jamshelpoption.HelpOption } = {}; // #endregion // #region Constructor constructor(command:string) { this.command = command; this.loadOptions(); } // #endregion // #region Action Methods loadOptions(showCommands: boolean = false) { var loadedoptions; var cmd = showCommands ? "commands" : this.command; try { loadedoptions = require(`./Parameters/${cmd}parameters.json`); } catch (ex) { loadedoptions = undefined; } if (loadedoptions !== undefined && loadedoptions !== null) { for (var option in loadedoptions) { var id = this.loadOptionValue(loadedoptions[option].id); var shortcut = this.loadOptionValue(loadedoptions[option].shortcut); var name = this.loadOptionValue(loadedoptions[option].name); var desc = this.loadOptionValue(loadedoptions[option].desc); var paramtype = this.loadOptionValue(loadedoptions[option].paramtype); var isoption = this.loadOptionValue(loadedoptions[option].option); if (helper.isNullOrEmpty(desc) && helper.isNullOrEmpty(paramtype)) { this.options[id] = new jamshelpoption.HelpOption(shortcut, name); } else { if (isoption) { this.options[id] = new jamshelpoption.HelpOption(shortcut, name, `<${desc}>`, paramtype); } else { this.options[id] = new jamshelpoption.HelpOption(shortcut, name, `<${desc}>`, paramtype, isoption); } } } } } loadOptionValue(loadedvalue) { return (helper.isNullOrEmpty(loadedvalue) || loadedvalue === undefined) ? "" : loadedvalue; } getCommandsList(configuration) { var global = new jamsglobal.Global(configuration.locale, configuration); var commands = []; var count = 0; for(var opt in this.options) { var optname = this.options[opt].command; commands[count] = { lead: "", name: optname, description: global.getText(`help${optname}`) }; count++; } return commands; } // #endregion }