email-dns-tools/assets/scripts/spf/Term.js
2026-01-19 12:41:02 +01:00

53 lines
996 B
JavaScript

import { ValueRequirement } from "./ValueRequirement.js";
import { Field } from "../Field.js";
export class Term extends Field {
separator = null;
position = null;
valueRequirement = ValueRequirement.REQUIRED;
constructor(key) {
super(key)
}
inputToString(fieldInputId) {
const input = this.getInputValue(fieldInputId);
const qualifier = this.getInputQualifier(fieldInputId);
return qualifier + this.key + (input ? this.separator + input : "");
}
isValidInput(fieldInputId) {
const input = this.getInputValue(fieldInputId);
const qualifier = this.getInputQualifier(fieldInputId);
if (this.valueRequirement !== ValueRequirement.REQUIRED && qualifier)
return true;
try {
return this.validate(input);
} catch(e) {
return false;
}
}
// Virtual methods
getInputQualifier(fieldId) {
return "";
}
// Builder methods
pos(i) {
this.position = i;
return this;
}
value(requirement) {
this.valueRequirement = requirement;
return this;
}
}