25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12 lines
431 B

  1. import { emojis as compressed } from './emojis.generated';
  2. import { decompressFromBase64LZString } from './system/string';
  3. const emojiRegex = /:([-+_a-z0-9]+):/g;
  4. let emojis: Record<string, string> | undefined = undefined;
  5. export function emojify(message: string) {
  6. if (emojis == null) {
  7. emojis = JSON.parse(decompressFromBase64LZString(compressed));
  8. }
  9. return message.replace(emojiRegex, (s, code) => emojis![code] || s);
  10. }