"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = emailMxLookup;
const dns_1 = __importDefault(require("dns"));
const debug_log_1 = __importDefault(require("../../../utils/logging/debug-log"));
function emailMxLookup(email, debug) {
    return new Promise((resolve, reject) => {
        if (!email) {
            resolve(false);
            return;
        }
        const domain = email.split("@")[1];
        dns_1.default.resolveMx(domain, (err, addresses) => {
            if (err || !addresses.length) {
                if (debug) {
                    (0, debug_log_1.default)({
                        log: (err === null || err === void 0 ? void 0 : err.message) || "No MX records found",
                        addTime: true,
                        label: "Email MX Lookup",
                        type: "error",
                    });
                }
                resolve(false);
            }
            else {
                if (debug) {
                    (0, debug_log_1.default)({
                        log: addresses,
                        addTime: true,
                        label: "MX Records",
                    });
                }
                resolve(true);
            }
        });
    });
}