add preval again and fix import issues with build

This commit is contained in:
ChaosExAnima 2025-05-06 12:54:39 +02:00
parent a030fb77f4
commit d0ccb030ad
No known key found for this signature in database
GPG Key ID: 8F2B333100FB6117
6 changed files with 19 additions and 26 deletions

View File

@ -1,8 +0,0 @@
<html>
<head>
<script type="module" src="./application.ts"></script>
</head>
<body>
<div id="mastodon"></div>
</body>
</html>

View File

@ -22,14 +22,14 @@ emojiMartUncompress(data);
const emojiMartData = data; const emojiMartData = data;
const emojiIndex = new NimbleEmojiIndex(emojiMartData); const emojiIndex = new NimbleEmojiIndex(emojiMartData);
const excluded = ['®', '©', '™']; const excluded = ['®', '©', '™'];
const skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿']; const skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿'];
const shortcodeMap = {}; const shortcodeMap = {};
const shortCodesToEmojiData = {}; const shortCodesToEmojiData = {};
const emojisWithoutShortCodes = []; const emojisWithoutShortCodes = [];
Object.keys(emojiIndex.emojis).forEach(key => { Object.keys(emojiIndex.emojis).forEach((key) => {
let emoji = emojiIndex.emojis[key]; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this // Emojis with skin tone modifiers are stored like this
@ -40,22 +40,22 @@ Object.keys(emojiIndex.emojis).forEach(key => {
shortcodeMap[emoji.native] = emoji.id; shortcodeMap[emoji.native] = emoji.id;
}); });
const stripModifiers = unicode => { const stripModifiers = (unicode) => {
skinTones.forEach(tone => { skinTones.forEach((tone) => {
unicode = unicode.replace(tone, ''); unicode = unicode.replace(tone, '');
}); });
return unicode; return unicode;
}; };
Object.keys(emojiMap).forEach(key => { Object.keys(emojiMap).forEach((key) => {
if (excluded.includes(key)) { if (excluded.includes(key)) {
delete emojiMap[key]; delete emojiMap[key];
return; return;
} }
const normalizedKey = stripModifiers(key); const normalizedKey = stripModifiers(key);
let shortcode = shortcodeMap[normalizedKey]; let shortcode = shortcodeMap[normalizedKey];
if (!shortcode) { if (!shortcode) {
shortcode = shortcodeMap[normalizedKey + '\uFE0F']; shortcode = shortcodeMap[normalizedKey + '\uFE0F'];
@ -81,7 +81,7 @@ Object.keys(emojiMap).forEach(key => {
} }
}); });
Object.keys(emojiIndex.emojis).forEach(key => { Object.keys(emojiIndex.emojis).forEach((key) => {
let emoji = emojiIndex.emojis[key]; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this // Emojis with skin tone modifiers are stored like this
@ -93,9 +93,11 @@ Object.keys(emojiIndex.emojis).forEach(key => {
let { short_names, search, unified } = emojiMartData.emojis[key]; let { short_names, search, unified } = emojiMartData.emojis[key];
if (short_names[0] !== key) { if (short_names[0] !== key) {
throw new Error('The compressor expects the first short_code to be the ' + throw new Error(
'key. It may need to be rewritten if the emoji change such that this ' + 'The compressor expects the first short_code to be the ' +
'is no longer the case.'); 'key. It may need to be rewritten if the emoji change such that this ' +
'is no longer the case.',
);
} }
short_names = short_names.slice(1); // first short name can be inferred from the key short_names = short_names.slice(1); // first short name can be inferred from the key

View File

@ -4,8 +4,8 @@
import type { BaseEmoji } from 'emoji-mart'; import type { BaseEmoji } from 'emoji-mart';
import type { Emoji } from 'emoji-mart/dist-es/utils/data'; import type { Emoji } from 'emoji-mart/dist-es/utils/data';
import type { Search, ShortCodesToEmojiData } from './emoji_compressed'; import type { Search, ShortCodesToEmojiData } from './emoji_compressed.mjs';
import emojiCompressed from './emoji_compressed'; import emojiCompressed from './emoji_compressed.mjs';
import { unicodeToUnifiedName } from './unicode_to_unified_name'; import { unicodeToUnifiedName } from './unicode_to_unified_name';
type Emojis = Record< type Emojis = Record<

View File

@ -5,8 +5,8 @@
import type { import type {
FilenameData, FilenameData,
ShortCodesToEmojiDataKey, ShortCodesToEmojiDataKey,
} from './emoji_compressed'; } from './emoji_compressed.mjs';
import emojiCompressed from './emoji_compressed'; import emojiCompressed from './emoji_compressed.mjs';
import { unicodeToFilename } from './unicode_to_filename'; import { unicodeToFilename } from './unicode_to_filename';
type UnicodeMapping = Record< type UnicodeMapping = Record<

View File

@ -104,7 +104,7 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => {
}), }),
react({ react({
babel: { babel: {
plugins: ['formatjs', 'transform-react-remove-prop-types'], plugins: ['formatjs', 'transform-react-remove-prop-types', 'preval'],
}, },
}), }),
MastodonServiceWorkerLocales(), MastodonServiceWorkerLocales(),
@ -132,7 +132,6 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => {
}, },
}), }),
svgr(), svgr(),
// manifestSRI(),
// Old library types need to be converted // Old library types need to be converted
optimizeLodashImports() as PluginOption, optimizeLodashImports() as PluginOption,
!!process.env.ANALYZE_BUNDLE_SIZE && analyzer({ analyzerMode: 'static' }), !!process.env.ANALYZE_BUNDLE_SIZE && analyzer({ analyzerMode: 'static' }),