word-lib
v2.0.0
Published
Check if a word exists in English, or retrieve a random word.
Downloads
23
Maintainers
Readme
word-lib
word-libis a lightweight offline English word helper with no external dependencies based off of @Brandons42's word-exists. Its a tiny JS API for checking if a word exists and has the ability to generate a random word with options for a specified min/max length or a seed value for deterministic generations.
word-libis currently in production use on my game Word Wurm.
Table of contents
Install
$ npm install word-libUsage
Check if a word exists -- white space is trimmed, compares against lower-case. Hyphenated compound words aren't counted as words.
Imports
// CommonJS
const wordLib = require("word-lib");
// or cherry-pick
const { exists, random } = require("word-lib");// ES Modules
import wordLib, { exists, random } from "word-lib";Examples
wordLib.exists("word"); // true
wordLib.exists("library"); // true
wordLib.exists(" space "); // true
wordLib.exists("xyz"); // false
wordLib.exists("not-a-word"); // false
wordLib.exists("two words"); // false
wordLib.exists("a"); // false
wordLib.exists("a", { allowOneLetterWords: true }); // trueexists
word: string
The word that is being checked to exist
Options
type ExistsOptions = {
allowOneLetterWords?: boolean; // default false
};Rules
- If
allowOneLetterWordsis true,aandiare treated as valid one-letter words
Get a random word from the dictionary.
const { random } = require("word-lib");
// Any possible word (min defaults to 3)
random();
// Constrain by lengths
random({ maxLength: 5 });
random({ minLength: 6, maxLength: 10 });
// Seeded deterministic random
random({ seed: 42 });
random({ maxLength: 8, seed: "game-seed" });random
Returns a random word from the dictionary.
Options
type RandomOptions = {
minLength?: number; // default 3
maxLength?: number; // optional upper bound
seed?: number | string; // deterministic RNG when provided
};Rules
- If
minLengthis provided, it must be >= 3 - If
maxLengthis provided, it must be >= 3 - If both are provided,
maxLengthmust be >=minLength
API
This package exports two functions:
exists(word: string, options?: { allowOneLetterWords?: boolean }) => booleanrandom(options?: { minLength?: number; maxLength?: number; seed?: number | string }) => string
License
Licensed under
Contribute
Any PR's for improvements or missing words are welcome.
Data
The English dictionary is grouped by two-letter prefixes for fast lookups.
