create.mjs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import { getSequenceFromEmojiStringOrKeyword } from '../cleanup.mjs';
  2. import { convertEmojiSequenceToUTF32 } from '../convert.mjs';
  3. import { getQualifiedEmojiVariations } from '../test/variations.mjs';
  4. import { createEmojisTree, parseEmojiTree } from './tree.mjs';
  5. import '../data.mjs';
  6. import '../format.mjs';
  7. import './base.mjs';
  8. import './numbers.mjs';
  9. import './similar.mjs';
  10. function createOptimisedRegexForEmojiSequences(sequences) {
  11. sequences = sequences.map((item) => convertEmojiSequenceToUTF32(item));
  12. const tree = createEmojisTree(sequences);
  13. const regex = parseEmojiTree(tree);
  14. return regex.regex;
  15. }
  16. function createOptimisedRegex(emojis) {
  17. let sequences = emojis.map(
  18. (item) => typeof item === "string" ? getSequenceFromEmojiStringOrKeyword(item) : item
  19. );
  20. sequences = getQualifiedEmojiVariations(
  21. sequences.map((sequence) => {
  22. return {
  23. sequence
  24. };
  25. })
  26. ).map((item) => item.sequence);
  27. return createOptimisedRegexForEmojiSequences(sequences);
  28. }
  29. export { createOptimisedRegex, createOptimisedRegexForEmojiSequences };