this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

added tests

akshat 0d3f5ace 5e22404d

+241 -14
+15 -10
README.md
··· 2 2 3 3 [![CodeScene Code Health](https://codescene.io/projects/50926/status-badges/code-health)](https://codescene.io/projects/50926) 4 4 ![workflow](https://github.com/IntegerAlex/disposable-email-detector/actions/workflows/main.yml/badge.svg) 5 - [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8456/badge)](https://www.bestpractices.dev/projects/8456) 5 + [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8638/badge)](https://www.bestpractices.dev/projects/8638) 6 6 ![NPM Version](https://img.shields.io/npm/v/disposable-email-detector) 7 7 8 8 ## Overview ··· 22 22 - Node.js 23 23 - npm 24 24 25 - ### Installation 25 + ### Implementation Details 26 + 27 + ```javascript 28 + npm i disposable-email-detector 29 + ``` 26 30 27 - 1. Clone the repository. 28 - 2. Install dependencies: 31 + ```javascript 32 + import { disposableEmailDetector } from 'disposable-email-detector'; 29 33 30 - ```bash 31 - npm install 34 + const email = 'test@mailinator.com'; 32 35 33 - ### Implementation Details 36 + disposableEmailDetector(email) 37 + .then((response) => console.log(response)); // true 38 + ``` 34 39 35 40 The disposableEmailDetector function reads a list of disposable email domains from index.json. It checks whether the provided email address belongs to a disposable domain and returns a boolean indicating the result. 36 41 37 42 ### Error Handling 38 43 39 - If index.json is not found, the script informs you to create it with disposable domains. 40 - If index.json has an invalid JSON format, it prompts you to correct the file. 41 - Unexpected errors are logged to the console. 44 + - If `index.json` is not found, the script informs you to create it with disposable domains. 45 + - If `index.json` has an invalid JSON format, it prompts you to correct the file. 46 + - Unexpected errors are logged to the console.
+6 -4
index.ts
··· 1 1 import fs from 'fs/promises'; 2 - import Path from 'path'; 2 + import Path from 'path'; 3 + 4 + // Function to detect disposable email addresses 3 5 export default async function disposableEmailDetector(email: string): Promise<boolean> { 4 6 try { 5 7 // Load the list of disposable email domains from the index.json file 6 8 const disposableDomainsBuffer = await fs.readFile(Path.join(__dirname, 'index.json')); 7 9 const disposableDomains = JSON.parse(disposableDomainsBuffer.toString()); 8 - 10 + 9 11 // Extract the domain from the email address 10 - const domain = email.split('@')[1].toLowerCase(); 12 + const domain = email.split('@')[1].toLowerCase(); // Get the domain part of the email address and convert it to lowercase 11 13 12 - // Check if the domain is in the list of disposable domains 14 + // Check if the domain is in the list of disposable domains 13 15 return disposableDomains.includes(domain); 14 16 15 17 } catch (error: any) {
+200
test/testEmails.txt
··· 1 + user1@gmail.com 2 + user2@yahoo.com 3 + user3@hotmail.com 4 + user4@outlook.com 5 + user5@aol.com 6 + user6@protonmail.com 7 + user7@mailinator.com 8 + user8@temp-mail.org 9 + user9@guerrillamail.com 10 + user10@icloud.com 11 + user11@yandex.com 12 + user12@live.com 13 + user13@zoho.com 14 + user14@fastmail.com 15 + user15@tutanota.com 16 + user16@dispostable.com 17 + user17@inbox.lv 18 + user18@me.com 19 + user19@rocketmail.com 20 + user20@boxbe.com 21 + user21@lavabit.com 22 + user22@hushmail.com 23 + user23@runbox.com 24 + user24@keemail.me 25 + user25@8chan.co 26 + user26@sogetthis.com 27 + user27@mailinator2.com 28 + user28@tempmail.net 29 + user29@throwawayemailaddress.com 30 + user30@maildrop.cc 31 + user31@mytemp.email 32 + user32@guerrillamailblock.com 33 + user33@disposableemailaddresses.com 34 + user34@mailinater.com 35 + user35@tempmailer.de 36 + user36@notsharingmy.info 37 + user37@discardmail.com 38 + user38@zippymail.info 39 + user39@tempmailer.de 40 + user40@spambog.com 41 + user41@sharklasers.com 42 + user42@spamex.com 43 + user43@jetable.org 44 + user44@discard.email 45 + user45@mytempemail.com 46 + user46@mailexpire.com 47 + user47@spaml.de 48 + user48@discardmail.de 49 + user49@trashmail.com 50 + user50@mailnesia.com 51 + user51@spamgourmet.com 52 + user52@tempinbox.com 53 + user53@pookmail.com 54 + user54@trashcanmail.com 55 + user55@mailinator.net 56 + user56@tempmailer.de 57 + user57@spamhole.com 58 + user58@disposableinbox.com 59 + user59@mailme.lv 60 + user60@chammy.info 61 + user61@spam.la 62 + user62@anonymbox.com 63 + user63@mailforspam.com 64 + user64@trashmail.org 65 + user65@spamtrail.com 66 + user66@xmaily.com 67 + user67@trbvm.com 68 + user68@spambox.us 69 + user69@spamavert.com 70 + user70@spam.su 71 + user71@temporarymail.net 72 + user72@spambob.net 73 + user73@spamgoes.in 74 + user74@spamcannon.com 75 + user75@spamoff.de 76 + user76@spamslicer.com 77 + user77@spamex.org 78 + user78@discardmail.org 79 + user79@spamgourmet.org 80 + user80@tempinbox.org 81 + user81@mailinator.org 82 + user82@notsharingmy.info 83 + user83@getonemail.com 84 + user84@quickinbox.com 85 + user85@spamtrail.com 86 + user86@mailforspam.com 87 + user87@trashmail.org 88 + user88@spambox.us 89 + user89@spamavert.com 90 + user90@spam.su 91 + user91@temporarymail.net 92 + user92@spambob.net 93 + user93@spamgoes.in 94 + user94@spamcannon.com 95 + user95@spamoff.de 96 + user96@spamslicer.com 97 + user97@spamex.org 98 + user98@discardmail.org 99 + user99@spamgourmet.org 100 + user100@tempinbox.org 101 + user101@mailinator.org 102 + user102@notsharingmy.info 103 + user103@getonemail.com 104 + user104@quickinbox.com 105 + user105@spamtrail.com 106 + user106@mailforspam.com 107 + user107@trashmail.org 108 + user108@spambox.us 109 + user109@spamavert.com 110 + user110@spam.su 111 + user111@temporarymail.net 112 + user112@spambob.net 113 + user113@spamgoes.in 114 + user114@spamcannon.com 115 + user115@spamoff.de 116 + user116@spamslicer.com 117 + user117@spamex.org 118 + user118@discardmail.org 119 + user119@spamgourmet.org 120 + user120@tempinbox.org 121 + user121@mailinator.org 122 + user122@notsharingmy.info 123 + user123@getonemail.com 124 + user124@quickinbox.com 125 + user125@spamtrail.com 126 + user126@mailforspam.com 127 + user127@trashmail.org 128 + user128@spambox.us 129 + user129@spamavert.com 130 + user130@spam.su 131 + user131@temporarymail.net 132 + user132@spambob.net 133 + user133@spamgoes.in 134 + user134@spamcannon.com 135 + user135@spamoff.de 136 + user136@spamslicer.com 137 + user137@spamex.org 138 + user138@discardmail.org 139 + user139@spamgourmet.org 140 + user140@tempinbox.org 141 + user141@mailinator.org 142 + user142@notsharingmy.info 143 + user143@getonemail.com 144 + user144@quickinbox.com 145 + user145@spamtrail.com 146 + user146@mailforspam.com 147 + user147@trashmail.org 148 + user148@spambox.us 149 + user149@spamavert.com 150 + user150@spam.su 151 + user151@temporarymail.net 152 + user152@spambob.net 153 + user153@spamgoes.in 154 + user154@spamcannon.com 155 + user155@spamoff.de 156 + user156@spamslicer.com 157 + user157@spamex.org 158 + user158@discardmail.org 159 + user159@spamgourmet.org 160 + user160@tempinbox.org 161 + user161@mailinator.org 162 + user162@notsharingmy.info 163 + user163@getonemail.com 164 + user164@quickinbox.com 165 + user165@spamtrail.com 166 + user166@mailforspam.com 167 + user167@trashmail.org 168 + user168@spambox.us 169 + user169@spamavert.com 170 + user170@spam.su 171 + user171@temporarymail.net 172 + user172@spambob.net 173 + user173@spamgoes.in 174 + user174@spamcannon.com 175 + user175@spamoff.de 176 + user176@spamslicer.com 177 + user177@spamex.org 178 + user178@discardmail.org 179 + user179@spamgourmet.org 180 + user180@tempinbox.org 181 + user181@mailinator.org 182 + user182@notsharingmy.info 183 + user183@getonemail.com 184 + user184@quickinbox.com 185 + user185@spamtrail.com 186 + user186@mailforspam.com 187 + user187@trashmail.org 188 + user188@spambox.us 189 + user189@spamavert.com 190 + user190@spam.su 191 + user191@temporarymail.net 192 + user192@spambob.net 193 + user193@spamgoes.in 194 + user194@spamcannon.com 195 + user195@spamoff.de 196 + user196@spamslicer.com 197 + user197@spamex.org 198 + user198@discardmail.org 199 + user199@spamgourmet.org 200 + user200@tempinbox.org
+20
test/usage.ts
··· 1 + import fs from 'fs/promises'; 2 + import { disposableEmailDetector } from './index.js'; // Adjust path as needed 3 + import path from 'path'; 4 + // Load test emails from file 5 + const filePath = path.join(__dirname ,'./testEmails.txt'); 6 + async function loadTestEmails(filePath) { 7 + const rawData = await fs.readFile(filePath); 8 + return rawData.toString().trim().split('\n'); 9 + } 10 + 11 + async function runTests() { 12 + const testEmails = await loadTestEmails('./testEmails.txt'); 13 + 14 + for (const email of testEmails) { 15 + const isDisposable = await disposableEmailDetector(email); 16 + console.log(email, '- Disposable:', isDisposable); 17 + } 18 + } 19 + 20 + runTests();