Compress emoji_data_light.js (#5201)
This commit is contained in:
		
							parent
							
								
									875d943c18
								
							
						
					
					
						commit
						82d9ade7a6
					
				
					 2 changed files with 35 additions and 14 deletions
				
			
		
							
								
								
									
										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; | ||||
|  |  | |||
		Reference in a new issue