1 | 'use strict';
|
2 |
|
3 | const emojis = require('./data/emojis.json');
|
4 |
|
5 | const emojiAliases = {};
|
6 |
|
7 | function lookupEmoji (name) {
|
8 | let lookup = name.toLowerCase().replace(/\s/g, '_');
|
9 | lookup = emojiAliases[lookup] || lookup;
|
10 |
|
11 | if (emojis[lookup]) {
|
12 | return emojis[lookup].emoji;
|
13 | }
|
14 | for (const emoji in emojis) {
|
15 | if (emoji.tags && emoji.tags.includes(lookup)) {
|
16 | return emoji.emoji;
|
17 | }
|
18 | }
|
19 |
|
20 | return name;
|
21 | }
|
22 |
|
23 | function emojify (string) {
|
24 | if (/[:\s]/.test(string)) {
|
25 | return string.replace(/:(.*?):/g, (match, name) => lookupEmoji(name));
|
26 | }
|
27 | return lookupEmoji(string);
|
28 | }
|
29 |
|
30 | emojify.alias = function (to, from) {
|
31 | emojiAliases[to] = from;
|
32 | };
|