Skip to content

coffee-and-fun/google-profanity-words

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

alt text

β˜• Google Profanity Words

A fun and developer-friendly profanity detection library brought to you by Coffee & Fun LLC β˜•πŸŽ‰
Built and maintained with love by Robert James Gabriel πŸ’»βœ¨

npm version Stars


πŸš€ What’s This?

Google Profanity Words is a Node.js library that helps you detect and filter out naughty language (in multiple languages!) from your apps or content. Whether you’re building a chat app, a comment section, or a gameβ€”this one’s your profanity-slaying sidekick.

Made by devs for devs. Maintained by Robert at Coffee & Fun β˜•β€οΈ


✨ Features

  • 🌐 Multilingual support – English and Spanish out of the box. More coming soon!
  • πŸ” Monthly updates – Stay fresh with the latest no-no words
  • πŸ’‘ Easy to use API – Straightforward methods, async/await friendly
  • πŸ”¬ Tested with Jest – Fully covered and ready for production
  • ⚑ Tiny & Fast – Minimal deps = speedy installs and performance

πŸ“¦ Install Me

npm install @coffeeandfun/google-profanity-words

⚑ Quickstart Guide

import { ProfanityEngine } from '@coffeeandfun/google-profanity-words';

// Default is English
const profanity = new ProfanityEngine();

// EspaΓ±ol? You got it.
const profanityES = new ProfanityEngine({ language: 'es' });

// Check a single word
const isBad = await profanity.search('example');

// Or check a full sentence
const hasCurses = await profanity.hasCurseWords('This is a test sentence');

console.log(isBad, hasCurses); // true / false

πŸ” API Docs (But Make It Chill)

πŸ› οΈ new ProfanityEngine(options?)

Create a new profanity detector engine!

const profanity = new ProfanityEngine(); // Defaults to English

Or choose a specific language:

const spanishProfanity = new ProfanityEngine({ language: 'es' });

Options:

  • language (string, optional):
    • 'en' = English (default)
    • 'es' = Spanish
    • If a language isn’t available, it falls back to English.

πŸ”Ž search(word)

Check a single word to see if it's naughty.

const isProfane = await profanity.search('heck');
console.log(isProfane); // true or false

πŸ’¬ hasCurseWords(sentence)

Check a full sentence or phrase for profanity.

const result = await profanity.hasCurseWords('You silly goose');
console.log(result); // probably false, unless goose is banned now πŸͺΏ

πŸ“œ all()

Get the full list of bad words in the current language.

const badWords = await profanity.all();
console.log(badWords); // ['word1', 'word2', 'etc']

πŸ’‘ Real Talk: Edge Cases

  • Empty strings? We gotchu. Returns false.
  • search() and hasCurseWords() are case-insensitive.
  • Special characters and punctuation? No problem.

πŸ§ͺ Testing with Jest

We've got testing covered like whipped cream on a latte β˜•πŸŽ‚

Run the default test suite:

npm test

Or use more specific Jest commands:

# Watch mode (great for dev workflow)
npx jest --watch

# Run tests in a specific file
npx jest path/to/your/file.test.js

# Run coverage report
npx jest --coverage

# Run with verbose output (get all the juicy details)
npx jest --verbose

Tests are located in the /__tests__/ directory and use the real profanity files, so you know it’s legit πŸ‘€βœ…


πŸ”€ Example Use Cases

βœ… Filter User Input

async function filterInput(input) {
  if (await profanity.hasCurseWords(input)) {
    return '⚠️ Whoa there! Language, please.';
  }
  return input;
}

🌍 Multi-language Setup

const en = new ProfanityEngine({ language: 'en' });
const es = new ProfanityEngine({ language: 'es' });

const englishResult = await en.search('bad');
const spanishResult = await es.search('malo');

🌍 Want to Contribute?

We love open source buddies πŸ’›

Add a New Language

  1. Fork it 🍴
  2. Add a file to /data/ named like fr.txt for French
  3. Fill it with one profane word per line
  4. Push & open a pull request!

πŸ™Œ Who Made This?

Built by Robert James Gabriel and the good people at Coffee & Fun LLC. We make dev tools with accessibility, coffee, and good vibes in mind.

Wanna support? Send a coffee our way or just spread the word! β˜•πŸš€


🧑 License

MIT – because sharing is caring.


πŸ’¬ Support & Community


Made with β˜•, code, and a sprinkle of magic at Coffee & Fun LLC πŸ’–

AI Usage

Calude AI was used to help with this read me & adding extra Jest tests.

About

Full list of bad words and top swear words banned by Google.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Contributors 7