hubot-command-mapper
Version:
Helps with mapping tools and commands to Hubot.
41 lines (40 loc) • 1.19 kB
JavaScript
import { ParameterBase } from "./ParameterBase.mjs";
import { NumberStyle } from "./NumberStyle.mjs";
/**
* This parameter will capture natural numbers.
*
* @export
* @class NumberParameter
* @extends {ParameterBase}
* @implements {IOptionalParameter}
*/
export class NumberParameter extends ParameterBase {
numberStyle;
/**
* Captures the optional minus sign, as well
* as the whole number.
*
* @readonly
* @memberof NumberParameter
*/
get regex() {
var r = "\\d+";
if (this.numberStyle == NumberStyle.Negative) {
r = "-" + r;
}
else if (this.numberStyle == NumberStyle.Both) {
r = "-?" + r;
}
return r;
}
/**
* Creates an instance of NumberParameter.
* @param {string} name The name of the parameter. Can be used to identify the parameter value as well.
* @param {any} [defaultValue=null] When a value is given, the parameter becomes optional.
* @memberof NumberParameter
*/
constructor(name, defaultValue = null, numberStyle = NumberStyle.Both) {
super(name, defaultValue);
this.numberStyle = numberStyle;
}
}