logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 82d9ade7a6abc663b30b3df4ae08a8980d61e233
parent: 875d943c189afe9887200f357d916a9f8fd19fe8
Author: Nolan Lawson <nolan@nolanlawson.com>
Date:   Tue,  3 Oct 2017 11:43:57 -0700

Compress emoji_data_light.js (#5201)


Diffstat:

Aapp/javascript/mastodon/emoji_data_compressed.js22++++++++++++++++++++++
Mapp/javascript/mastodon/emoji_data_light.js27+++++++++++++--------------
2 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/app/javascript/mastodon/emoji_data_compressed.js b/app/javascript/mastodon/emoji_data_compressed.js @@ -0,0 +1,22 @@ +// @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, +})); diff --git a/app/javascript/mastodon/emoji_data_light.js b/app/javascript/mastodon/emoji_data_light.js @@ -1,17 +1,16 @@ -// @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;