Package Exports
- emoji-hash-gen
- emoji-hash-gen/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (emoji-hash-gen) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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:
typescript getHash(input: string, options?: Options): string;
getBitwise
Description: Generates random integer, based on input string. Source
Interface:
typescript getBitwise(str: string): number;
transformBinary
Description: A function used by getHash. Requires integer as input and generates an emoji-hash based on it
Interface:
typescript 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:
Symbols | Count |
---|---|
a-z |
26 |
A-Z |
26 |
0-9 |
10 |
Re-generate:
$> yarn generate-table
Current table:
javascript // 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.