Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apostrophecms/random-words
Generate one or more common English words. Intended for use as sample text, for example generating random blog posts for testing
https://github.com/apostrophecms/random-words
Last synced: 3 days ago
JSON representation
Generate one or more common English words. Intended for use as sample text, for example generating random blog posts for testing
- Host: GitHub
- URL: https://github.com/apostrophecms/random-words
- Owner: apostrophecms
- License: mit
- Created: 2013-05-31T18:31:42.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-03-18T00:04:13.000Z (10 months ago)
- Last Synced: 2024-12-19T18:15:26.817Z (13 days ago)
- Language: JavaScript
- Size: 51.8 KB
- Stars: 249
- Watchers: 19
- Forks: 72
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# random-words
## Generate one or more common English words
`random-words` generates random words for use as sample text. We use it to generate random blog posts when testing [Apostrophe](http://apostrophecms.org).
Cryptographic-quality randomness is NOT the goal, as speed matters for generating sample text and security does not. As such, `Math.random()` is used in most cases.
The `seed` option can be used with the `generate` function for situations that require deterministic output. When given the same `seed` with the same input, `generate()` will yield deterministic results, in regards to both actual word selection and the number of words returned (when using `min` and `max`). The underlying implementation of this option utilizes the [seedrandom](https://www.npmjs.com/package/seedrandom) package as a replacement for `Math.random()`.
The `count` function can be used to calculate the total number of words in the word list that meet the specified minimum and maximum length criteria.
Installation:
npm install random-words
Examples:
```js
import { generate, count } from "random-words";console.log(generate());
//output: 'army'console.log(generate(5));
//output: ['army', 'beautiful', 'became', 'if', 'actually']console.log(generate({ minLength: 2 }));
//output: 'hello'console.log(generate({ maxLength: 6 }));
//output: 'blue'console.log(generate({ minLength: 5, maxLength: 5 }));
//output : 'world'console.log(generate({ minLength: 11, maxLength: 10000 })); //maxLength limited to the longest possible word
//output: 'environment'console.log(generate({ minLength: 10000, maxLength: 5 })); //minLength limited to the maxLength
//output: 'short'console.log(generate({ min: 3, max: 10 }));
//output: ['became', 'arrow', 'article', 'therefore']console.log(generate({ exactly: 2 }));
//output: ['beside', 'between']console.log(generate({ min: 2, max: 3, seed: "my-seed" }));
//output: ['plenty', 'pure']// this call will yield exactly the same results as the last since the same `seed` was used and the other inputs are identical
console.log(generate({ min: 2, max: 3, seed: "my-seed" }));
//output: ['plenty', 'pure']console.log(generate({ exactly: 5, join: " " }));
//output: 'army beautiful became if exactly'console.log(generate({ exactly: 5, join: "" }));
//output: 'armybeautifulbecameifexactly'console.log(generate({ exactly: 2, minLength: 4 }));
//output: ['atom', 'window']console.log(generate({ exactly: 5, maxLength: 4 }));
//output: ['army', 'come', 'eye', 'five', 'fur']console.log(generate({ exactly: 2, minLength: 3, maxLength: 3 }));
//output: ['you, 'are']console.log(generate({ exactly: 3, minLength: 5, maxLength: 100000 }));
//output: ['understanding', 'should', 'yourself']console.log(generate({ exactly: 5, wordsPerString: 2 }));
//output: [ 'salt practical', 'also brief', 'country muscle', 'neighborhood beyond', 'grew pig' ]console.log(generate({ exactly: 5, wordsPerString: 2, separator: "-" }));
//output: [ 'equator-variety', 'salt-usually', 'importance-becoming', 'stream-several', 'goes-fight' ]console.log(
generate({
exactly: 5,
wordsPerString: 2,
formatter: (word) => word.toUpperCase(),
})
);
//output: [ 'HAVING LOAD', 'LOST PINE', 'GAME SLOPE', 'SECRET GIANT', 'INDEED LOCATION' ]console.log(
generate({
exactly: 5,
wordsPerString: 2,
formatter: (word, index) => {
return index === 0
? word.slice(0, 1).toUpperCase().concat(word.slice(1))
: word;
},
})
);
//output: [ 'Until smoke', 'Year strength', 'Pay knew', 'Fallen must', 'Chief arrow' ]console.log(count());
//output: 1952console.log(count({ minLength: 5 }));
//output: 1318console.log(count({ maxLength: 7 }));
//output: 1649console.log(count({ minLength: 5, maxLength: 7 }));
//output: 1015```