36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // A mapping of unicode strings to an object containing the filename
 | |
| // (i.e. the svg filename) and a shortCode intended to be shown
 | |
| // as a "title" attribute in an HTML element (aka tooltip).
 | |
| 
 | |
| const [
 | |
|   shortCodesToEmojiData,
 | |
|   skins, // eslint-disable-line no-unused-vars
 | |
|   categories, // eslint-disable-line no-unused-vars
 | |
|   short_names, // eslint-disable-line no-unused-vars
 | |
|   emojisWithoutShortCodes,
 | |
| ] = require('./emoji_compressed');
 | |
| const { unicodeToFilename } = require('./unicode_to_filename');
 | |
| 
 | |
| // decompress
 | |
| const unicodeMapping = {};
 | |
| 
 | |
| function processEmojiMapData(emojiMapData, shortCode) {
 | |
|   let [ native, filename ] = emojiMapData;
 | |
|   if (!filename) {
 | |
|     // filename name can be derived from unicodeToFilename
 | |
|     filename = unicodeToFilename(native);
 | |
|   }
 | |
|   unicodeMapping[native] = {
 | |
|     shortCode: shortCode,
 | |
|     filename: filename,
 | |
|   };
 | |
| }
 | |
| 
 | |
| Object.keys(shortCodesToEmojiData).forEach((shortCode) => {
 | |
|   let [ filenameData ] = shortCodesToEmojiData[shortCode];
 | |
|   filenameData.forEach(emojiMapData => processEmojiMapData(emojiMapData, shortCode));
 | |
| });
 | |
| emojisWithoutShortCodes.forEach(emojiMapData => processEmojiMapData(emojiMapData));
 | |
| 
 | |
| module.exports = unicodeMapping;
 |