UNPKG

social-link-parser

Version:

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

41 lines 1.27 kB
import { Platforms } from '../../core/types.js'; const EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i; export const email = { id: 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