Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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: 5 days 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

šŸ’»