// @preval // http://www.unicode.org/Public/emoji/5.0/emoji-test.txt const emojis = require('./emoji_map.json'); const { emojiIndex } = require('emoji-mart'); const excluded = ['®', '©', '™']; const skins = ['🏻', '🏼', '🏽', '🏾', '🏿']; const shortcodeMap = {}; Object.keys(emojiIndex.emojis).forEach(key => { shortcodeMap[emojiIndex.emojis[key].native] = emojiIndex.emojis[key].id; }); const stripModifiers = unicode => { skins.forEach(tone => { unicode = unicode.replace(tone, ''); }); return unicode; }; Object.keys(emojis).forEach(key => { if (excluded.includes(key)) { delete emojis[key]; return; } const normalizedKey = stripModifiers(key); let shortcode = shortcodeMap[normalizedKey]; if (!shortcode) { shortcode = shortcodeMap[normalizedKey + '\uFE0F']; } emojis[key] = [emojis[key], shortcode]; }); module.exports.unicodeMapping = emojis;