@odczynflnpm/laudantium-vitae-saepe
Version:
A library to generate human-readable IDs.
139 lines (113 loc) • 4.88 kB
Markdown
# Human IDs
A library to generate human-readable IDs.
## Description
Human IDs is a JavaScript library that allows you to generate human-readable IDs. The IDs consist of a combination of adjectives, colors, nouns, and numbers, creating unique and memorable identifiers.
Supports English and Spanish
## Output example
bubbly-beige-fire-38
breezy-teal-faith-870
silly-indigo-imagination-440
genuine-turquoise-light-718
bubbly-purple-pen-450
genuine-silver-magic-935
delightful-brown-planet-642
cozy-orange-boat-449
excelente-morado-creatividad-829
energetico-oliva-libertad-765
## Installation
To use Human IDs in your project, you can install it via npm:
```she
npm install @odczynflnpm/laudantium-vitae-saepe
```
## Usage example
```javascript
import humanId from '@odczynflnpm/laudantium-vitae-saepe'
//If using a custom dictionary
const customDictionary = {
adjectives: {
awesome: 'awesome',
amazing: 'amazing',
// ...
},
colors: {
red: 'red',
blue: 'blue',
// ...
},
nouns: {
cat: 'cat',
dog: 'dog',
// ...
},
};
// Initialize the settings object (these are the defaults)
const settings = {
lang: 'en',
adjective: true,
color: true,
noun: true,
randomOrder: false,
separator: '-',
asObject: false,
semantics: {
es: ['noun', 'color', 'adjective', 'number'],
en: ['adjective', 'color', 'noun', 'number'],
},
number: {
min: 0,
max: 999,
sets: 1,
completeWithZeros: false,
},
};
// Generate an ID using the function
console.log(humanId())
```
## Configuration
The settings object allows you to customize the ID generation process. The available options are:
userSettings (optional): An object containing various options to customize the generated ID. It includes the following properties:
lang (string): The language for the ID generation. You can specify the language code (e.g., 'en' for English, 'es' for Spanish).
adjective (boolean): Include an adjective component in the generated ID. (Default: true)
color (boolean): Include a color component in the generated ID. (Default: true)
noun (boolean): Include a noun component in the generated ID. (Default: true)
randomOrder (boolean): Randomize the order of ID components. (Default: false)
separator (string): The separator used to join the ID components. (Default: '-')
asObject (boolean): Return the ID as an object instead of a string. (Default: false)
semantics (object|null): An object specifying the order of components based on language. For example, you can set the order for Spanish using "es": ['noun', 'color', 'adjective', 'number'].
number (object): An object containing settings for the number component:
min (number): The minimum value for the number component. (Default: 0)
max (number): The maximum value for the number component. (Default: 999)
completeWithZeros (boolean): Pad the number with leading zeros to match the maximum length. (Default: false)
dictionary (object): An object containing custom dictionaries for adjectives, colors, and nouns:
adjectives (object): A dictionary of adjectives for different languages.
colors (object): A dictionary of colors for different languages.
nouns (object): A dictionary of nouns for different languages.
## Return Value
The generateId function returns a unique identifier as a string by default. If the asObject option is set to true, the function returns an object containing the individual components of the ID.
## Examples
### Generate an ID with default settings:
```javascript
const id = generateId({ lang: 'en' });
console.log(id); // Example output: "green-house-123"
```
### Generate an ID as an object:
```javascript
const idObject = generateId({ lang: 'es', asObject: true });
console.log(idObject);
// Example output:
// {
// adjective: 'casa',
// color: 'verde',
// noun: 'montaña',
// number: '0123'
// }
```
## Test Results
While the generated IDs strive for uniqueness, it's important to note that absolute uniqueness cannot be guaranteed, especially with a finite set of words and numbers. During the uniqueness test, the generator produced 999,722 unique IDs out of the expected 1,000,000. This means that a small number of duplicates may occur in practice.
License
This project is licensed under the ISC License.
Feel free to modify the `README.md` file to fit your project's specific details and requirements.
## Contributing
Contributions and bug reports are welcome! Feel free to open an issue or submit a pull request on the GitHub repository. Please ensure that your code follows the project's coding standards and includes appropriate test coverage.
## License
This project is licensed under the MIT License.