EmojiHash
Lightweight, zero-dependency library for hash-generation in emoji style 🍌
Table of Contents
- 🔌 Installation
- 🐥 Usage
- 🔨 API
- 🎠 getHash
- 🏠 getBitwise
- 🎪 transformBinary
- 🏆 useTable
- 📑 Table
- 😻 Contributing
- 📄 License
Installation
You can install emoji-hash-gen
using standard tools:
$> npm install emoji-hash-gen
# or
$> yarn add emoji-hash-gen
Usage
import { getHash } from 'emoji-hash-gen';
getHash('Hello, world'); // "🥳🤫🦁"
getHash('https://github.com/opa-oz/emoji-hash'); // "💥3️⃣🕕🕠🔇🈺"
getHash('@gahara'); // "✨🎸🍭❔🕕"
// You can restrct an amount of emojies in the hash
const longText = 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book';
getHash(longText, { length: 5 }) // "💥🔻🈲🈵😺"
Hash-function is fully deterministic - you will get the same result with the same set of input data:
import { getHash } from 'emoji-hash-gen';
getHash('@gahara') === getHash('@gahara'); // true
getHash('@gahara') === getHash('gahara'); // false
API
getHash
Description: Generates random hash from input string.
Interface:
getHash(input: string, options?: Options): string;
getBitwise
Description: Generates random integer, based on input string. Source
Interface:
getBitwise(str: string): number;
transformBinary
Description: A function used by getHash. Requires integer as input and generates an emoji-hash based on it
Interface:
transformBinary(input: number, options?: Options): string;
useTable
Description:
Original library uses pre-generated table [number]: emoji
, which used for hash-generation. useTable
provides possibility to override the default table.
Interface:
useTable(newTable: EmojiTable): void;
Table
Description: Default table contains 62 literals, generated from:
| a-z | 26 |
| A-Z | 26 |
| 0-9 | 10 |
Re-generate:
$> yarn generate-table
Current table:
// 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
{
0: '💥',
1: '❔',
2: '⛔️',
3: '👹',
4: '👌',
5: '🐞',
6: '🛄',
7: '👾',
8: '🈶',
9: '🈲',
10: '🐗',
11: '🔝',
12: '👝',
13: '🍖',
14: '🌍',
15: '😜',
16: '😍',
17: '🍭',
18: '🔇',
19: '✨',
20: '📌',
21: '👆',
22: '🎬',
23: '👵',
24: '🔻',
25: '🈵',
26: '🍘',
27: '🌂',
28: '💭',
29: '🎸',
30: '😺',
31: '🚎',
32: '🚛',
33: '🐥',
34: '🈺',
35: '🐂',
36: '🚴',
37: '✔️',
38: '🈹',
39: '📗',
40: '🕠',
41: '👯',
42: '3️⃣',
43: '💶',
44: '🐫',
45: '🇯🇵',
46: '👮',
47: '🏯',
48: '👏',
49: '📍',
50: '🔅',
51: '🐯',
52: '🕕',
53: '😁',
54: '🏬',
55: '🔍',
56: '🚺',
57: '🗾',
58: '🎯',
59: '4️⃣',
60: '🕘',
61: '🎅'
}
Contributing
Please, use PRs for your proposals.
Setting up local development
For start, just clone repo and install dependencies via npm
/yarn
:
$> git clone https://github.com/opa-oz/emoji-hash.git
$> yarn install
# or
$> npm install
Tests
To run test, simply use command:
$> yarn test
#or
$> npm run test
Lint & Prettier
Easy to check code style and formatting:
$> yarn lint && yarn prettier-format
License
emoji-hash-gen is copyright © 2020 opa_oz. It is free software and may be redistributed under the terms specified in the license.