@shovelandsandbox/humanid
TypeScript icon, indicating that this package has built-in type declarations

0.2.2 • Public • Published

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

option type default
prefix `string (...args: any) => string`
suffix `string (...args: any) => string`
includeColorAttribute boolean false
separator string -

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

Readme

Keywords

none

Package Sidebar

Install

npm i @shovelandsandbox/humanid

Weekly Downloads

1

Version

0.2.2

License

MIT

Unpacked Size

59.6 kB

Total Files

31

Last publish

Collaborators

  • shovelandsandbox