A random animal name generator
A random animal name generator, forked fromrandom-animal-name-generator
.
import { generateRandomName } from 'randimal'
// In some async context...
const name = await generateRandomName()
console.log(name) // Geological Gnu
random-animal-name-generator
hasn’t been updated in awhile, so here’s a list
of adjustments:
The word lists are absolutely massive, with previously upwards of 1700 animals
and nearing 9000 adjectives. Loading these files is less of a problem in Node,
but in the browser, we don’t want to wait on these files to load with the main
bundle.
To combat this, the animals list and adjectives lists are loaded via dynamic
import, so you can rely on your bundler’s chunking features to load the lists
when their necessary. To support this, generateRandomName
is now an async
function.
In the future, I may consider a synchronous entry, but for now, I think this is
an improvement.
Whenever random-animal-name-generator
is included in your application, it
sorts the animal and adjective word lists into new objects keyed by their
starting letter. This is deterministic—the data never changes, and so we don’t
need to rearrange it every time! So, the word lists (moved into the data
folder and converted to JS modules) are now sorted by first letter by default.
While the adjectives have been capitalized, there are still quite a number of…
creative words in the list. It seems like it came from the Scribblenauts wiki,
which is cool, but it’ll take some effort to make sure there are only
dictionary-acknowledged adjectives in this project.