email-dns-tools/assets/scripts/fields/IntField.js
2026-01-14 10:39:19 +01:00

25 lines
695 B
JavaScript

import { Field } from "./Field.js";
import { ValidationError } from "../ValidationError.js";
export class IntField extends Field {
constructor(key, min, max) {
super(key);
this.min = min;
this.max = max;
}
validate(value) {
const number = parseFloat(value);
if (isNaN(number)) throw new ValidationError(`Field "${this.key}" must be a number`);
if (!Number.isInteger(number)) throw new ValidationError(`Field "${this.key}" must be an integer`);
if (number < this.min) throw new ValidationError(`Field "${this.key}" must be ${this.min} or greater`);
if (number > this.max) throw new ValidationError(`Field "${this.key}" must not exceed ${this.max}`);
return true;
}
}