hubot-command-mapper
Version:
Helps with mapping tools and commands to Hubot.
36 lines (35 loc) • 1.09 kB
JavaScript
import { ParameterBase } from "./ParameterBase.mjs";
/**
* Captures IP v4 addresses.
*
* @export
* @class IPv4Parameter
* @extends {ParameterBase}
*/
export class IPv4Parameter extends ParameterBase {
supportPrefix;
/**
*
* @param name The name of the parameter.
* @param defaultValue The default value of the parameter. When a default value is specified, the parameter becomes optional.
* @param supportPrefix When a prefix is supported an ip address with the prefix (like /24) is also valid input.
*/
constructor(name, defaultValue = null, supportPrefix = true) {
super(name, defaultValue);
this.supportPrefix = supportPrefix;
}
/**
* The regular expression.
*
* @readonly
* @memberof IPv4Parameter
*/
get regex() {
const digit = `(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)`;
let postFix = "";
if (this.supportPrefix) {
postFix = `(\\/(3[0-2]|[1-2]\\d|[1-9]))?(?!\\/)(?!\\d+)`;
}
return `${digit}((\\.${digit}){3})({postfix})?${postFix}`;
}
}