Skip to content

omnidan/node-emoji

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a36868c Β· Feb 7, 2025
Feb 7, 2025
Sep 7, 2023
Sep 7, 2023
Oct 8, 2024
Nov 13, 2023
Oct 8, 2024
Nov 13, 2023
Sep 7, 2023
Sep 7, 2023
Sep 7, 2023
Sep 7, 2023
Jan 24, 2025
Nov 13, 2023
Sep 7, 2023
Nov 13, 2023
Dec 3, 2024
Sep 7, 2023
Nov 18, 2023
Sep 7, 2023
Nov 13, 2023
Feb 7, 2025
Feb 7, 2025
Apr 19, 2024
Sep 7, 2023
Sep 7, 2023
Sep 7, 2023
Nov 20, 2023

Repository files navigation

node-emoji

Friendly emoji lookups and parsing utilities for Node.js. πŸ’–

All Contributors: 32 πŸ‘ͺ Codecov Test Coverage Contributor Covenant License: MIT Sponsor: On GitHub Style: Prettier TypeScript: Strict npm package version Contributor Covenant

node-emoji provides a fun, straightforward interface on top of the following excellent libraries:

  • emojilib: provides a list of emojis and keyword search on top of it
  • skin-tone: parses out base emojis from skin tones

Install

npm install node-emoji

2.0 Release πŸš€

This is the new 2.0 release of node-emoji, supporting ESM, new emoji and a new API.

If you want to use the old version, please check out the legacy branch.

Usage

import * as emoji from 'node-emoji'

emoji.emojify('I :heart: :coffee:!') // 'I ❀️ β˜•οΈ!'

emoji.find('heart') // { emoji: '❀', name: 'heart' }
emoji.find('❀️') // { emoji: '❀', name: 'heart' }

emoji.get('unicorn') // πŸ¦„
emoji.get(':unicorn:') // πŸ¦„

emoji.has(':pizza:') // true
emoji.has('πŸ•') // true
emoji.has('unknown') // false

emoji.random() // { name: 'house', emoji: '🏠' }

emoji.replace('I ❀️ coffee!', 'love', { preserveSpaces: true }) // 'I love coffee!'

emoji.search(':uni:') // [ { emoji: 'πŸ¦„', name: 'unicorn' }, ... ]

emoji.strip('I ❀️ coffee!') // 'I coffee!'

emoji.unemojify('πŸ• for πŸ’ƒ') // ':pizza: for :dancer:'

emoji.which('πŸ¦„') // 'unicorn'

API

emoji.emojify(input, options?)

Parse all markdown-encoded emojis in a string.

Parameters:

  1. input (string): The input string containing the markdown-encoding emojis.
  2. options (optional):
    • fallback (string; default: ""): The string to fallback to if an emoji was not found.
    • format (() => (emoji: string, part: string, string: string) => string; default: value => value): Add a middleware layer to modify each matched emoji after parsing.
import * as emoji from 'node-emoji'

console.log(emoji.emojify('The :unicorn: is a fictitious animal.'))
// 'The πŸ¦„ is a fictitious animal.'

emoji.find(emoji)

Get the name and character of an emoji.

Parameters:

  1. emoji (string): The emoji to get the data of.
import * as emoji from 'node-emoji'

console.log(emoji.find('πŸ¦„'))
// { name: 'unicorn', emoji: 'πŸ¦„' }

emoji.get(name)

Get an emoji from an emoji name.

Parameters:

  1. name (string): The name of the emoji to get.
import * as emoji from 'node-emoji'

console.log(emoji.get('unicorn'))
// 'πŸ¦„'

emoji.has(emoji)

Check if this library supports a specific emoji.

Parameters:

  1. emoji (string): The emoji to check.
import * as emoji from 'node-emoji'

console.log(emoji.has('πŸ¦„'))
// true

emoji.random()

Get a random emoji.

import * as emoji from 'node-emoji'

console.log(emoji.random())
// { name: 'unicorn', emoji: 'πŸ¦„' }

emoji.replace(input, replacement)

Replace the emojis in a string.

Parameters:

  • input (string): The input string.
  • replacement (string | (emoji: string, index: number, string: string) => string): The character to replace the emoji with. Can be either a string or a callback that returns a string.
import * as emoji from 'node-emoji'

console.log(emoji.replace('The πŸ¦„ is a fictitious animal.', 'unicorn'))
// 'The unicorn is a fictitious animal.'

emoji.search(keyword)

Search for emojis containing the provided name in their name.

Parameters:

  1. keyword (string): The keyword to search for.
import * as emoji from 'node-emoji'

console.log(emoji.search('honey'))
// [ { name: 'honeybee', emoji: '🐝' }, { name: 'honey_pot', emoji: '🍯' } ]

emoji.strip(input, options?)

Remove all of the emojis from a string.

Parameters:

  1. input (string): The input string to strip the emojis from.

  2. options (optional):

    • preserveSpaces (boolean): Whether to keep the extra space after a stripped emoji.
import * as emoji from 'node-emoji'

console.log(emoji.strip('πŸ¦„ The unicorn is a fictitious animal.'))
// 'The unicorn is a fictitious animal.'

console.log(
  emoji.strip('πŸ¦„ The unicorn is a fictitious animal.', {
    preserveSpaces: true,
  }),
)
// ' The unicorn is a fictitious animal.'

emoji.unemojify(input)

Convert all emojis in a string to their markdown-encoded counterparts.

Parameters:

  1. input (string): The input string containing the emojis.
import * as emoji from 'node-emoji'

console.log(emoji.unemojify('The πŸ¦„ is a fictitious animal.'))
// 'The :unicorn: is a fictitious animal.'

emoji.which(emoji, options?)

Get an emoji name from an emoji.

Parameters:

  1. emoji (string): The emoji to get the name of.
  2. options (optional):
    • markdown (boolean; default: false): Whether to return a ":emoji:" string instead of "emoji"
import * as emoji from 'node-emoji'

console.log(emoji.which('πŸ¦„'))
// 'unicorn'

Development

See .github/Development.md.

License

FOSSA Status

Special Thanks

...to Anand Chowdhary (@AnandChowdhary) and his company Pabio for sponsoring this project via GitHub Sponsors!

Contributors

./cΒ²
./cΒ²

πŸ’»
Adam Skoufis
Adam Skoufis

πŸ’»
Adrian Carolli
Adrian Carolli

πŸ’»
Alex Litel
Alex Litel

πŸ’»
Alex Rudenko
Alex Rudenko

πŸ’»
Antoine Hanriat
Antoine Hanriat

πŸ’»
Daniel Bugl
Daniel Bugl

πŸ› πŸ’» πŸ” πŸ€” πŸš‡ πŸ”§ 🚧
Daniel Hilton
Daniel Hilton

πŸ’»
Elizabeth
Elizabeth

πŸ’» 🚧
Gabriel Csapo
Gabriel Csapo

πŸ’»
Greenkeeper
Greenkeeper

πŸ’»
Josh Goldberg ✨
Josh Goldberg ✨

πŸ”§ πŸ’» πŸš‡ 🚧
Kevin Cooper
Kevin Cooper

πŸ’»
Kristoffer K.
Kristoffer K.

πŸ’»
Ludo Renzetti
Ludo Renzetti

πŸ’»
Nicolas Charpentier
Nicolas Charpentier

🚧
Nicolas Gryman
Nicolas Gryman

πŸ’»
Paul Barber
Paul Barber

πŸ’»
Richie Bendall
Richie Bendall

πŸ’» 🚧
Ritik Banger
Ritik Banger

πŸ’»
Roopak Venkatakrishnan
Roopak Venkatakrishnan

πŸ’»
Shivkanth Bagavathy
Shivkanth Bagavathy

πŸ’»
Siddharth Batra
Siddharth Batra

πŸ’»
Stephan Meijer
Stephan Meijer

πŸ’»
Thomas Beverley
Thomas Beverley

πŸ›
Tim Ruffles
Tim Ruffles

πŸ’»
Todd Mazierski
Todd Mazierski

πŸ›
fossabot
fossabot

πŸ’»
goodjun
goodjun

πŸ›
jackie luo
jackie luo

πŸ’»
tgbtyty
tgbtyty

πŸ’»
wtgtybhertgeghgtwtg
wtgtybhertgeghgtwtg

πŸ’»