create.cjs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict';
  2. const emoji_cleanup = require('../cleanup.cjs');
  3. const emoji_convert = require('../convert.cjs');
  4. const emoji_test_variations = require('../test/variations.cjs');
  5. const emoji_regex_tree = require('./tree.cjs');
  6. require('../data.cjs');
  7. require('../format.cjs');
  8. require('./base.cjs');
  9. require('./numbers.cjs');
  10. require('./similar.cjs');
  11. function createOptimisedRegexForEmojiSequences(sequences) {
  12. sequences = sequences.map((item) => emoji_convert.convertEmojiSequenceToUTF32(item));
  13. const tree = emoji_regex_tree.createEmojisTree(sequences);
  14. const regex = emoji_regex_tree.parseEmojiTree(tree);
  15. return regex.regex;
  16. }
  17. function createOptimisedRegex(emojis) {
  18. let sequences = emojis.map(
  19. (item) => typeof item === "string" ? emoji_cleanup.getSequenceFromEmojiStringOrKeyword(item) : item
  20. );
  21. sequences = emoji_test_variations.getQualifiedEmojiVariations(
  22. sequences.map((sequence) => {
  23. return {
  24. sequence
  25. };
  26. })
  27. ).map((item) => item.sequence);
  28. return createOptimisedRegexForEmojiSequences(sequences);
  29. }
  30. exports.createOptimisedRegex = createOptimisedRegex;
  31. exports.createOptimisedRegexForEmojiSequences = createOptimisedRegexForEmojiSequences;