UNPKG

social-link-parser

Version:

Extract usernames, IDs, and metadata from social media URLs across 100+ platforms

44 lines 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.email = void 0; const types_1 = require("../../core/types"); const EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i; exports.email = { id: types_1.Platforms.Email, name: 'Email', domains: [], patterns: { profile: EMAIL_REGEX, handle: EMAIL_REGEX, }, detect(url) { if (url.startsWith('mailto:')) { const email = url.slice(7).split('?')[0]; return EMAIL_REGEX.test(email); } return EMAIL_REGEX.test(url); }, extract(url, result) { let address = url; if (url.startsWith('mailto:')) { address = url.slice(7).split('?')[0]; } if (EMAIL_REGEX.test(address)) { result.username = address.toLowerCase(); result.metadata.email = address.toLowerCase(); result.metadata.isProfile = true; result.metadata.contentType = 'email'; } }, validateHandle(handle) { return EMAIL_REGEX.test(handle); }, buildProfileUrl(username) { return `mailto:${username}`; }, normalizeUrl(url) { const address = url.startsWith('mailto:') ? url.slice(7).split('?')[0] : url; return `mailto:${address.toLowerCase()}`; }, }; //# sourceMappingURL=index.js.map