UNPKG

password-blacklist

Version:
34 lines (28 loc) 881 B
const readline = require('readline') const path = require('path') const zlib = require('zlib') const fs = require('fs') const passwordFilename = path.resolve(__dirname, './data/passwords.txt.gz') module.exports = (password) => new Promise((resolve, reject) => { const file = fs.createReadStream(passwordFilename).on('error', onError) const gunzip = zlib.createGunzip().on('error', onError) const lines = readline.createInterface({ input: file.pipe(gunzip) }).on('line', (input) => { if (input === password || input.trim().toLowerCase() === password.trim().toLowerCase()) { resolve(true) cleanup() } }).on('close', () => resolve(false)) .on('error', onError) function onError (err) { reject(err) cleanup() } function cleanup () { file.close() // crashes for some reason // gunzip.close() lines.close() } })