import dns from "dns";
import debugLog from "../../../utils/logging/debug-log";

export default function emailMxLookup(
    email?: string,
    debug?: boolean
): Promise<boolean> {
    return new Promise((resolve, reject) => {
        if (!email) {
            resolve(false);
            return;
        }

        const domain = email.split("@")[1];

        dns.resolveMx(domain, (err, addresses) => {
            if (err || !addresses.length) {
                if (debug) {
                    debugLog({
                        log: err?.message || "No MX records found",
                        addTime: true,
                        label: "Email MX Lookup",
                        type: "error",
                    });
                }
                resolve(false);
            } else {
                if (debug) {
                    debugLog({
                        log: addresses,
                        addTime: true,
                        label: "MX Records",
                    });
                }
                resolve(true);
            }
        });
    });
}