This package determines whether an email domain is disposable. The data used in this package is provided by disposable-email-domains/disposable-email-domains and was created to be offered as an NPM package.
var disposableEmailDomains = require('disposable-email-domains-js');
disposableEmailDomains.isDisposableEmailDomain('example.com'); // return false
disposableEmailDomains.isDisposableEmail('[email protected]'); // return false
disposableEmailDomains.isDisposableEmailDomain('mailinator.com'); // return true
disposableEmailDomains.isDisposableEmail('[email protected]'); // return trueimport {
isDisposableEmail,
isDisposableEmailDomain,
} from 'disposable-email-domains-js';
isDisposableEmailDomain('example.com'); // return false
isDisposableEmail('[email protected]'); // return false
isDisposableEmailDomain('mailinator.com'); // return true
isDisposableEmail('[email protected]'); // return true- Use TypeScript and Prettier for all code. Run
npm run lintto check,npm run lint:fixto auto-fix. - All code and examples should pass
npm run buildandnpm run test. - PRs and issues are welcome. For blocklist changes, contribute upstream first (disposable-email-domains/disposable-email-domains)。
GitHub Actions automatically run tests, lint, and build on all PRs and pushes. Domain list updates and package publishing are also automated.
This repository generates disposable_email_blocklist.json from disposable_email_blocklist.conf of disposable-email-domains/disposable-email-domains. You can update the JSON file with the following command.
npm run generate:disposable_email_blocklist_jsonAfter updating the JSON file, please publish the NPM package. To publish, you can push the tag v*.*.* to release the NPM package.
If you want to update the domain list, please make a pull request to disposable-email-domains/disposable-email-domains. When it is reflected in disposable-email-domains/disposable-email-domains, it will also be reflected in this package.
The example/ directory contains sample code in both JavaScript and TypeScript. It serves as:
- A reference for library consumers (see API usage examples)
- Integration testing (run with
npm run test:example) - A check to ensure the example code stays in sync with the main API
This project and its data are licensed under CC0 1.0 Universal (public domain dedication).