@devmehq/email-validator-js
Version:
Advanced email validation with MX records, SMTP verification, disposable email detection, batch processing, and caching. Production-ready with TypeScript support.
42 lines (41 loc) • 1.63 kB
TypeScript
/**
* Core serverless email validator
* Platform-agnostic implementation without Node.js dependencies
*/
import type { DomainSuggesterOptions, EmailValidationResult, ValidateEmailOptions } from '../types';
export declare class EdgeCache<T> {
private cache;
private maxSize;
private ttl;
constructor(maxSize?: number, ttl?: number);
get(key: string): T | undefined;
set(key: string, value: T): void;
clear(): void;
size(): number;
}
export declare const validationCache: EdgeCache<EmailValidationResult>;
export declare const mxCache: EdgeCache<string[]>;
export declare const COMMON_DOMAINS: string[];
export interface DNSResolver {
resolveMx(domain: string): Promise<Array<{
exchange: string;
priority: number;
}>>;
resolveTxt(domain: string): Promise<string[]>;
}
export declare class StubDNSResolver implements DNSResolver {
resolveMx(_domain: string): Promise<Array<{
exchange: string;
priority: number;
}>>;
resolveTxt(_domain: string): Promise<string[]>;
}
export declare function suggestDomain(domain: string, options?: DomainSuggesterOptions): string | null;
export declare function validateEmailCore(email: string, options?: ValidateEmailOptions & {
dnsResolver?: DNSResolver;
}): Promise<EmailValidationResult>;
export declare function validateEmailBatch(emails: string[], options?: ValidateEmailOptions & {
dnsResolver?: DNSResolver;
}): Promise<EmailValidationResult[]>;
export declare function clearCache(): void;
export type { DomainSuggesterOptions, EmailValidationResult, ValidateEmailOptions, } from '../types';