extract-email-address
Version:
Extracts email address from an arbitrary text input.
38 lines • 1.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractEmail = void 0;
const normalizeInput_1 = require("./normalizeInput");
const tlds_1 = __importDefault(require("tlds"));
const extractEmail = (input) => {
const matches = (0, normalizeInput_1.normalizeInput)(input).match(
// eslint-disable-next-line unicorn/better-regex, require-unicode-regexp, regexp/no-unused-capturing-group
/\b[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g);
if (!matches) {
return [];
}
return matches
.map((email) => {
return email;
})
.filter((email) => {
for (const tld of tlds_1.default) {
if (email.endsWith('.' + tld)) {
return true;
}
}
return false;
})
.filter((email, index, self) => {
return self.indexOf(email) === index;
})
.map((email) => {
return {
email,
};
});
};
exports.extractEmail = extractEmail;
//# sourceMappingURL=extractEmail.js.map