email-dns-tools/assets/scripts/ui/validator.js

41 lines
1.2 KiB
JavaScript

import { DmarcRecord } from "../records/DmarcRecord.js";
import { SpfRecord } from "../records/SpfRecord.js";
const records = {
"/dmarc-validator": DmarcRecord,
"/spf-validator": SpfRecord,
};
const Record = records[location.pathname];
document.getElementById("record").oninput = event => validate(event.target.value);
if (document.getElementById("record").value !== "") {
validate(document.getElementById("record").value);
}
function validate(value) {
document.getElementById("record").classList.remove("valid", "invalid");
document.getElementById("error").style.display = "none"
document.getElementById("success").style.display = "none";
document.getElementById("result-placeholder").style.display = "none";
if (!value) {
document.getElementById("result-placeholder").style.display = "flex";
return;
}
const record = new Record(value);
try {
record.validate();
document.getElementById("record").classList.add("valid");
document.getElementById("success").style.display = "flex";
} catch (e) {
document.getElementById("record").classList.add("invalid");
document.getElementById("error").style.display = "flex";
document.getElementById("error-message").innerText = e.message;
}
}