JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q47934F
  • License MIT

Generates hash of string in emoji

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 🍌

Version npm License: MIT PRs Welcome Minsize CodeQL Node.js CI codecov Coverage

Table of Contents

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.


ko-fi