Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/RienNeVaPlus/human-id
💃🆔 Generates human readable identifier strings by chaning common (short) words of the english language.
https://github.com/RienNeVaPlus/human-id
human-id human-readable-id readable-identifier word-generator
Last synced: 5 days ago
JSON representation
💃🆔 Generates human readable identifier strings by chaning common (short) words of the english language.
- Host: GitHub
- URL: https://github.com/RienNeVaPlus/human-id
- Owner: RienNeVaPlus
- License: mit
- Created: 2018-05-26T01:03:11.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-02T05:44:01.000Z (11 days ago)
- Last Synced: 2024-11-02T06:22:47.948Z (11 days ago)
- Topics: human-id, human-readable-id, readable-identifier, word-generator
- Language: TypeScript
- Homepage:
- Size: 44.9 KB
- Stars: 195
- Watchers: 3
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
💃🆔
## Human-Readable Identifiers
[![Downloads](https://img.shields.io/npm/dm/human-id)](https://www.npmjs.com/human-id)
[![License](https://img.shields.io/npm/l/human-id)](https://github.com/RienNeVaPlus/human-id/blob/master/LICENSE)> Using words to identify datasets (instead of numbers) provides various advantages when humans are involved, ie increased distinction and rememberability.
Human-ID generates readable strings by chaining common short words of the english language in a semi-meaningful way.
The result is concatenated of `adjective + noun + verb` resulting in a [minimum](#extended-pool-size) pool size of **15 000 000** possible combinations.- **SFW**: no bad words; family friendly results
- No dependencies## Examples
- FortyGhostsTalk
- CalmSnailsDream
- TastyRocksSparkle
- HealthyCowsSmile
- AfraidWallsExist
- StrangeCarsRush
- TwoLizardsSing
- HappyLionsJump## Install
Yarn
```
yarn add human-id
```NPM
```
npm install human-id
```## Usage
### Command line
```sh
npx human-id
# RareGeckosJamnpx human-id lowercase + 2x
# rare+geckos+jam
# healthy+cows+smile
```### Programmatic
```js
import {humanId, poolSize, minLength, maxLength} from 'human-id'// RareGeckosJam
humanId()// Rare~Geckos~Jam
// alias for { separator: '~' }
humanId('~')// rare-geckos-jam
humanId({
separator: '-',
capitalize: false,
})poolSize() // 15,000,000
minLength() // 8
maxLength() // 19
```## Extended Pool Size
For most cases, the default pool size should be large enough. However, the options `adjectiveCount` and `addAdverb` can be utilized to increase the pool size for the price of the string length.
```js
const options = {
adjectiveCount: 2,
addAdverb: true,
separator: '.'
}humanId(options) // Ten.Wet.Files.Cheer.Lazily
poolSize(options) // 630,000,000
minLength(options) // 20
maxLength(options) // 41
```## Executable arguments
Use the following arguments to modify the default options or print multiple results.
| Argument | Effect |
| -------------------------- | ------------------------------------------------- |
| `a`, `adverb`, `addAdverb` | Sets `option.addAdverb` to `true` |
| `l`, `lower`, `lowercase` | Sets `option.capitalize` to `false` |
| `space` | Sets `option.separator` to an empty space ` ` |
| any number | Sets `option.adjectiveCount` to the given integer |
| any single character | Sets `option.separator` to the character |
| any number followed by `x` | Repeats the output `number` times |### Example
```bash
npx human-id adverb lower 2 _ 3x
# clever_shaggy_memes_sit_quietly
# cuddly_spicy_boxes_wave_politely
# sweet_fair_wombats_fetch_bravely
```## API
#### `humanId(options?: string | Option): string`
Generates a human ID. **Options** can be a `string` (separator), a `boolean` (capitalize) or an `Options` object of:
- **separator** `string = ''` - Separates the words from each other
- **capitalize** `boolean = true` - Whether to transform the first character of each word to upper case
- **adjectiveCount** `number = 1` - How many adjectives to return
- **addAdverb** `boolean = false` - Adds a fourth part to the id*This function is also available as the default export*
#### `poolSize(options?: string | Option): number`
Returns the number of possible combinations for a given set of options.#### `minLength(options?: Option): number`
The length of the shortest possible id for a given set of options.#### `maxLength(options?: Option): number`
The length of the longest possible id for a given set of options.#### `adjectives: string[]`
List of possible values for the first part of the human id.#### `nouns: string[]`
List of possible values for the second part of the human id.#### `verbs: string[]`
List of possible values for the third part of the human id.#### `adverbs: string[]`
List of possible values for the optional fourth part of the human id.💃🆔