mirror of
https://github.com/mastodon/mastodon
synced 2024-11-28 06:48:28 +09:00
Compress emoji_data_light.js (#5201)
This commit is contained in:
parent
875d943c18
commit
82d9ade7a6
22
app/javascript/mastodon/emoji_data_compressed.js
Normal file
22
app/javascript/mastodon/emoji_data_compressed.js
Normal file
@ -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,
|
||||
}));
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user