parse.mjs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { getEmojiSequenceFromString, getUnqualifiedEmojiSequence } from './cleanup.mjs';
  2. import { getEmojiSequenceKeyword } from './format.mjs';
  3. import { createOptimisedRegexForEmojiSequences } from './regex/create.mjs';
  4. import { findMissingEmojis } from './test/missing.mjs';
  5. import { parseEmojiTestFile } from './test/parse.mjs';
  6. import { combineSimilarEmojiTestData } from './test/similar.mjs';
  7. import { getEmojiTestDataTree } from './test/tree.mjs';
  8. import { getQualifiedEmojiVariations } from './test/variations.mjs';
  9. import './convert.mjs';
  10. import './data.mjs';
  11. import './regex/tree.mjs';
  12. import './regex/base.mjs';
  13. import './regex/numbers.mjs';
  14. import './regex/similar.mjs';
  15. import './test/components.mjs';
  16. import './test/name.mjs';
  17. function prepareEmojiForIconsList(icons, rawTestData) {
  18. const testData = rawTestData ? parseEmojiTestFile(rawTestData) : void 0;
  19. let iconsList = [];
  20. for (const char in icons) {
  21. const sequence = getEmojiSequenceFromString(char);
  22. iconsList.push({
  23. icon: icons[char],
  24. sequence
  25. });
  26. }
  27. iconsList = getQualifiedEmojiVariations(iconsList);
  28. if (testData) {
  29. iconsList = iconsList.concat(
  30. findMissingEmojis(
  31. iconsList,
  32. getEmojiTestDataTree(combineSimilarEmojiTestData(testData))
  33. )
  34. );
  35. }
  36. const preparedIcons = iconsList.map((item) => {
  37. const sequence = getEmojiSequenceKeyword(
  38. getUnqualifiedEmojiSequence(item.sequence)
  39. );
  40. return {
  41. icon: item.icon,
  42. sequence
  43. };
  44. });
  45. const regex = createOptimisedRegexForEmojiSequences(
  46. iconsList.map((item) => item.sequence)
  47. );
  48. return {
  49. regex,
  50. icons: preparedIcons
  51. };
  52. }
  53. function prepareEmojiForIconSet(iconSet, rawTestData) {
  54. return prepareEmojiForIconsList(iconSet.chars || {}, rawTestData);
  55. }
  56. export { prepareEmojiForIconSet, prepareEmojiForIconsList };