Coder Social home page Coder Social logo

bryanmylee / zoo-ids Goto Github PK

View Code? Open in Web Editor NEW
12.0 1.0 3.0 642 KB

Generate predictable and unique identifiers composed of adjectives and animal names

JavaScript 5.32% TypeScript 94.68%
unique-identifiers seed random generator id style adjectives animals

zoo-ids's Introduction

zoo-ids

npm version npm downloads license build coverage size

Generate predictable and unique identifiers composed of adjectives and animal names, with the ability to seed the random identifiers.

Range of IDs

Currently, there are 1347 adjectives and 221 animals. The more adjectives used, the more possible combinations of IDs available.

For a quick reference, with 2 adjectives used, there are 400,984,389 possible unique IDs.

With 3 adjectives, there are 540,125,971,983 possible unique IDs.

Installation

$ npm install zoo-ids

Usage

Examples

import { generateId } from 'zoo-ids';

generateId('short seed'); // KnobbyNauticalKingfisher

// Any object can be used as a seed.
generateId(
	{ key: 'value' },
	{
		caseStyle: 'camelcase',
	}
); // weeklyGreatRacoon

// Defaults to the current time if seed is null.
generateId(null, {
	caseStyle: 'lowercase',
	delimiter: '🍓',
}); // enchanted🍓narrow🍓wallaby

Documentation

generateId(seed, opts?)

seed: any

The seed used to generate the id. This allows us to generate predictable, but random and unique identifiers.

Defaults to the current time in milliseconds.

opts.numAdjectives: number

The number of adjectives to use in the identifier.

Defaults to 2.

opts.delimiter: string

The delimiter used between words. The delimiter will also be used between multi-word adjectives.

Defaults to ''.

opts.caseStyle: string

The case style for the words. Possible options are 'titlecase', 'camelcase', 'uppercase', 'lowercase', and 'togglecase'.

generateId('titlecase', { caseStyle: 'titlecase' }); // FineAntiqueElk

generateId('camelcase', { caseStyle: 'camelcase' }); // pertinentPoshGoldfinch

generateId('uppercase', { caseStyle: 'uppercase' }); // PIERCINGRESPONSIBLECAMEL

generateId('lowercase', { caseStyle: 'lowercase' }); // imaginarywingedsalamander

generateId('togglecase', { caseStyle: 'togglecase' }); // sTuNnInGdEsCrIpTiVepEaFoWl

Defaults to 'titlecase'.

Credits

This project was inspired by the url ids used by gfycat.com.

The seeded random number generator used is powered by the alea algorithm by Johannes Baagøe <[email protected]>, ported by nquinlan/better-random-numbers-for-javascript-mirror.

zoo-ids's People

Contributors

bryanmylee avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

zoo-ids's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.