You can not select more than 25 topics 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. }