0.2.2 • Published 1 year ago

@shovelandsandbox/humanid v0.2.2

Weekly downloads
2
License
MIT
Repository
github
Last release
1 year ago

Human ID

Memorable and reasonably collision-resistant identifiers with corresponding hashes; built using Node v12.13.0 and Typescript.

Installation

npm i --save @shovelandsandbox/humanid or yarn add @shovelandsandbox/humanid

Usage

import { humanid, isSegmentGenerator } from '@shovelandsandbox/humanid'

const getSuffix = () => 'randomSuffix'
const [id, hash] = humanid()
const [id2] = humanid({ suffix: getSuffix })

console.log(isSegmentGenerator(getSuffix)) // true
console.log(id) // magenta-jealous-deer-b17de
console.log(hash) // befb40615238054022dd92934aa65cc14ead1c0812e6c05830aef6aa1b4bfeba
console.log(id2) // gold-acute-beaver-randomSuffix

Identifier Anatomy

(prefix)-(color attribute)-[color]-[adjective]-[animal]-(suffix)

Options

optiontypedefault
prefixstring | (...args: any) => stringnull
suffixstring | (...args: any) => stringrandomHexSeed()
includeColorAttributebooleanfalse
separatorstring-

Dictionaries

animals

adjectives

color-attributes

colors

Other Exports/Utilities

Types

// string generator function
export type SegmentGenerator = (...args: any) => string;

// type guard
export const isSegmentGenerator = (v: any): v is SegmentGenerator =>
  v !== null && (v as SegmentGenerator).call !== undefined;

export type Configuration = {
  prefix?: string | SegmentGenerator;
  suffix?: string | SegmentGenerator;
  separator?: string;
  includeColorAttribute?: boolean;
};

Functions

randomHexSeed

Roadmap

  • Allow dictionary overrides
  • Expand randomHexSeed to allow overriding the generated buffer, format, and length

Credits & Thanks

bitjson/typescript-starter—for providing such a painless tsc library starter kit and hashing

0.2.2

1 year ago

0.2.0

4 years ago

0.1.0

4 years ago

0.1.1

4 years ago

0.0.2

4 years ago