41 lines
1.2 KiB
JavaScript
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;
|
|
}
|
|
} |