"use strict"; const got = require("got"); const path = require("path"); const fs = require("fs"); // same regex as found in client/../parse.js const emojiModifiersRegex = /[\u{1f3fb}-\u{1f3ff}]|\u{fe0f}/gu; (async () => { const response = await got( "https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json" ); const emojiStrategy = JSON.parse(response.body); const emojiMap = {}; const fullNameEmojiMap = {}; for (const emoji of emojiStrategy) { const cleanEmoji = emoji.emoji.replace(emojiModifiersRegex, ""); fullNameEmojiMap[cleanEmoji] = emoji.description; for (let alias of emoji.aliases) { if (alias !== "-1") { // Replace dashes to underscores except for :-1: // This removes autocompletion prompt for :-P // prompting for :non-potable_water: alias = alias.replace(/-/g, "_"); } emojiMap[alias] = emoji.emoji; } } const emojiMapOutput = JSON.stringify(emojiMap, null, 2) + "\n"; const fullNameEmojiMapOutput = JSON.stringify(fullNameEmojiMap, null, 2) + "\n"; fs.writeFileSync( path.resolve(path.join(__dirname, "..", "client", "js", "helpers", "simplemap.json")), emojiMapOutput ); fs.writeFileSync( path.resolve(path.join(__dirname, "..", "client", "js", "helpers", "fullnamemap.json")), fullNameEmojiMapOutput ); })();