UNPKG

@petition-blitz/email-verifiers

Version:

Unified interface for checking email address deliverability

45 lines (34 loc) 915 B
const verifiers = { datavalidation: require('./verifiers/datavalidation'), neverbounce: require('./verifiers/neverbounce'), mailgun: require('./verifiers/mailgun') }; function detectVerifier (env = {}, fallback = null) { if (env.DATAVALIDATION_API_KEY) { return 'datavalidation'; } if (env.NEVERBOUNCE_API_KEY) { return 'neverbounce'; } if (env.MAILGUN_API_KEY) { return 'mailgun'; } return fallback; } function createVerifier (verifier, options = {}) { if (!verifier) { throw new Error('verifier is required'); } if (!verifiers[verifier]) { throw new Error(`Unsupported verifier: ${verifier}`); } const config = { ...verifiers[verifier].DEFAULTS, ...options }; if (!config.apiKey) { throw new Error('options.apiKey is required'); } return verifiers[verifier](config); } module.exports = { verifiers, createVerifier, detectVerifier };