Skip to content

sinansonmez/easy-emojis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

48 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

easy-emojis

A comprehensive TypeScript library for emoji utilities including intelligent text-to-emoji replacement, flag conversion, and emoji lookup functions.

Features

✨ Smart Text Replacement - Convert natural language to emojis with contextual awareness
πŸ” Emoji Lookup - Find emojis by name, shortname, or get random selections
🏳️ Flag Conversion - Convert between country codes and flag emojis
πŸ”€ Letter Conversion - Transform letters to regional indicator emojis
⚑ High Performance - Optimized for speed with configurable options
🎯 TypeScript Support - Full type definitions included

Installation

# npm
npm install easy-emojis

# yarn
yarn add easy-emojis

# pnpm
pnpm add easy-emojis

Quick Start

Basic Emoji Lookup

import * as EasyEmojis from 'easy-emojis';

// Get random emoji
EasyEmojis.getRandomEmoji(); // returns a random emoji like 'πŸŽ‰'

// Lookup by name or shortname
EasyEmojis.getEmojiByName('red apple'); // returns '🍎'
EasyEmojis.getEmojiByShortName(':apple:'); // returns '🍎'

// Universal lookup (accepts both name and shortname)
EasyEmojis.getEmoji('red apple'); // returns '🍎'
EasyEmojis.getEmoji(':apple:'); // returns '🍎'

Flag & Letter Conversion

// Country code to flag conversion
EasyEmojis.countryCodeToFlag('US'); // returns 'πŸ‡ΊπŸ‡Έ'
EasyEmojis.flagToCountryCode('πŸ‡ΊπŸ‡Έ'); // returns 'US'

// Letter to regional indicator emoji
EasyEmojis.letterToEmoji('S'); // returns 'πŸ‡Έ'
EasyEmojis.emojiToLetter('πŸ‡Έ'); // returns 'S'

πŸš€ New: Smart Text Replacement

Transform your text with intelligent emoji replacements! Perfect for social media, chat applications, and creative content.

Basic Usage

import { replaceTextWithEmojis } from 'easy-emojis';

const result = replaceTextWithEmojis("I love pizza and coffee!");
console.log(result.text); // "I ❀️ πŸ• and β˜•!"

Replacement Modes

Choose from different replacement strategies:

import { 
  replaceTextSubtle,     // Conservative approach
  replaceTextBalanced,   // Moderate replacements  
  replaceTextExpressive, // More aggressive
  replaceTextSmart       // Context-aware
} from 'easy-emojis';

const text = "Having a great morning with coffee and friends!";

replaceTextSubtle(text);     // "Having a great morning with β˜• and friends!"
replaceTextBalanced(text);   // "Having a great morning with β˜• and friends!"
replaceTextExpressive(text); // "Having a great πŸŒ… with β˜• and friends!"
replaceTextSmart(text);      // Context-aware replacements based on sentiment

Advanced Configuration

import { replaceTextWithEmojis, EmojiReplaceMode } from 'easy-emojis';

const result = replaceTextWithEmojis("I love programming and pizza", {
  mode: EmojiReplaceMode.MODERATE,
  confidenceThreshold: 0.8,
  maxReplacements: 3,
  categories: ['food', 'emotion', 'tech'], // Only replace food and emotion words
  customMappings: {
    'programming': { emoji: 'πŸ’»', confidence: 0.9, category: 'tech' }
  }
});

console.log(result.text); // "I β€οΈπŸ’» and πŸ•"
console.log(result.stats); 
// {
//   totalReplacements: 3,
//   averageConfidence: 0.9,
//   categoriesUsed: ['emotion', 'tech', 'food']
// }

Replacement Modes Explained

Mode Description Use Case
CONSERVATIVE High-confidence, minimal replacements Professional communication
MODERATE Balanced approach with good coverage Social media posts
AGGRESSIVE Maximum replacements, lower threshold Creative content, casual chat
CONTEXTUAL AI-powered context analysis Smart assistants, adaptive UX

Configuration Options

interface EmojiReplaceOptions {
  mode: EmojiReplaceMode;           // Replacement strategy
  confidenceThreshold: number;      // Minimum confidence (0-1)
  maxReplacements?: number;         // Limit total replacements
  preserveCase?: boolean;           // Maintain original casing
  categories?: string[];            // Filter by emoji categories
  customMappings?: object;          // Add your own word→emoji mappings
}

Return Value

interface EmojiReplaceResult {
  text: string;                     // Transformed text
  replacements: EmojiReplacement[]; // Detailed replacement info
  originalText: string;             // Original input
  stats: {
    totalReplacements: number;
    averageConfidence: number;
    categoriesUsed: string[];
  };
}

API Reference

Core Functions

Function Description Example
getRandomEmoji() Returns a random emoji 🎲
getEmojiByName(name) Find emoji by name getEmojiByName('pizza') β†’ πŸ•
getEmojiByShortName(shortname) Find emoji by shortname getEmojiByShortName(':pizza:') β†’ πŸ•
getEmoji(query) Universal emoji lookup getEmoji('pizza') or getEmoji(':pizza:')

Conversion Functions

Function Description Example
countryCodeToFlag(code) Country code β†’ flag countryCodeToFlag('JP') β†’ πŸ‡―πŸ‡΅
flagToCountryCode(flag) Flag β†’ country code flagToCountryCode('πŸ‡―πŸ‡΅') β†’ JP
letterToEmoji(letter) Letter β†’ regional indicator letterToEmoji('A') β†’ πŸ‡¦
emojiToLetter(emoji) Regional indicator β†’ letter emojiToLetter('πŸ‡¦') β†’ A

Text Replacement Functions

Function Description
replaceTextWithEmojis(text, options) Advanced replacement with full control
replaceTextSubtle(text) Conservative preset
replaceTextBalanced(text) Moderate preset
replaceTextExpressive(text) Aggressive preset
replaceTextSmart(text) Context-aware preset

Real-World Examples

Social Media Enhancement

const post = "Just finished an amazing workout! Time for coffee and relaxation.";
const enhanced = replaceTextBalanced(post);
// "Just finished an amazing workout! Time for β˜• and relaxation. 😊"

Chat Application

const message = "Good morning! Having breakfast - eggs and coffee";
const fun = replaceTextExpressive(message);
// "πŸŒ…! Having breakfast - πŸ₯š and β˜•"

Email Subject Lines

const subject = "Meeting tomorrow - pizza lunch provided";
const professional = replaceTextSubtle(subject);
// "Meeting tomorrow - πŸ• lunch provided"

Performance

  • ⚑ Fast: Optimized regex patterns and efficient algorithms
  • πŸ”„ Memory efficient: Smart caching and minimal footprint
  • πŸ“¦ Lightweight: Tree-shakeable ES modules
  • 🎯 Scalable: Handles large texts efficiently

Development Setup

# Clone the repository
git clone https://github.com/sinansonmez/easy-emojis.git

# Install dependencies
npm install

# Run tests
npm run test

# Build the project
npm run build

Running Tests

npm run test        # Run all tests

License

MIT Β© Sinan Chaush

Packages

No packages published

Contributors 2

  •  
  •