--- /dev/null
+// @preval
+const data = require('emoji-mart/dist/data').default;
+const pick = require('lodash/pick');
+const values = require('lodash/values');
+
+const condensedEmojis = Object.keys(data.emojis).map(key => {
+ if (!data.emojis[key].short_names[0] === key) {
+ throw new Error('The condenser expects the first short_code to be the ' +
+ 'key. It may need to be rewritten if the emoji change such that this ' +
+ 'is no longer the case.');
+ }
+ return values(pick(data.emojis[key], ['short_names', 'unified', 'search']));
+});
+
+// JSON.parse/stringify is to emulate what @preval is doing and avoid any
+// inconsistent behavior in dev mode
+module.exports = JSON.parse(JSON.stringify({
+ emojis: condensedEmojis,
+ skins: data.skins,
+ categories: data.categories,
+ short_names: data.short_names,
+}));
-// @preval
-const data = require('emoji-mart/dist/data').default;
-const pick = require('lodash/pick');
+const data = require('./emoji_data_compressed');
-const condensedEmojis = {};
-Object.keys(data.emojis).forEach(key => {
- condensedEmojis[key] = pick(data.emojis[key], ['short_names', 'unified', 'search']);
+// decompress
+const emojis = {};
+data.emojis.forEach(compressedEmoji => {
+ const [ short_names, unified, search ] = compressedEmoji;
+ emojis[short_names[0]] = {
+ short_names,
+ unified,
+ search,
+ };
});
-// JSON.parse/stringify is to emulate what @preval is doing and avoid any
-// inconsistent behavior in dev mode
-module.exports = JSON.parse(JSON.stringify({
- emojis: condensedEmojis,
- skins: data.skins,
- categories: data.categories,
- short_names: data.short_names,
-}));
+data.emojis = emojis;
+
+module.exports = data;