An open API service indexing awesome lists of open source software.

https://github.com/omnidan/node-emoji

šŸ’– simple emoji support for node.js projects
https://github.com/omnidan/node-emoji

emoji emoji-support javascript node node-emoji nodejs

Last synced: about 1 month ago
JSON representation

šŸ’– simple emoji support for node.js projects

Awesome Lists containing this project

README

        

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`](https://npmjs.org/package/emojilib): provides a list of emojis and keyword search on top of it
- [`skin-tone`](https://npmjs.org/package/skin-tone): parses out base emojis from skin tones

## Install

```sh
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](https://github.com/omnidan/node-emoji/tree/legacy).

## Usage

```js
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.
1. **`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.

```js
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.

```js
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.

```js
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.

```js
import * as emoji from 'node-emoji'

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

### emoji.random()

Get a random emoji.

```js
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.

```js
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.

```js
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.
1. **`options`** _(optional)_:

- **`preserveSpaces`** (`boolean`): Whether to keep the extra space after a stripped emoji.

```js
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.

```js
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.
1. **`options`** _(optional)_:
- **`markdown`** (`boolean`; default: `false`): Whether to return a `":emoji:"` string instead of `"emoji"`

```js
import * as emoji from 'node-emoji'

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

## Development

See _[`.github/Development.md`](./github/Development.md)_.

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fomnidan%2Fnode-emoji.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fomnidan%2Fnode-emoji?ref=badge_large)

### Special Thanks

...to Anand Chowdhary (@AnandChowdhary) and his company [Pabio](https://github.com/pabio) for sponsoring this project via [GitHub Sponsors](https://github.com/sponsors/omnidan)!

## 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

šŸ’»