UNPKG

@odczynflnpm/laudantium-vitae-saepe

Version:
139 lines (113 loc) 4.88 kB
# 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.