1 | 'use strict';
|
2 |
|
3 | const emojis = require('./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) => {
|
26 | return lookupEmoji(name);
|
27 | });
|
28 | }
|
29 | return lookupEmoji(string);
|
30 | }
|
31 |
|
32 | emojify.alias = function(to, from) {
|
33 | emojiAliases[to] = from;
|
34 | };
|