similar.cjs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 'use strict';
  2. const emoji_data = require('../data.cjs');
  3. const emoji_test_components = require('./components.cjs');
  4. const emoji_test_name = require('./name.cjs');
  5. require('../format.cjs');
  6. require('../convert.cjs');
  7. function findComponentsInEmojiTestItem(item, componentsData) {
  8. const name = emoji_test_name.splitEmojiNameVariations(
  9. item.name,
  10. item.sequence,
  11. componentsData
  12. );
  13. const sequence = [...item.sequence];
  14. name.variations?.forEach((item2) => {
  15. if (typeof item2 !== "string") {
  16. sequence[item2.index] = item2.type;
  17. }
  18. });
  19. const sequenceKey = emoji_test_components.emojiSequenceWithComponentsToString(
  20. sequence.filter((code) => code !== emoji_data.vs16Emoji)
  21. );
  22. return {
  23. ...item,
  24. name,
  25. sequenceKey,
  26. sequence
  27. };
  28. }
  29. function combineSimilarEmojiTestData(data, componentsData) {
  30. const results = /* @__PURE__ */ Object.create(null);
  31. componentsData = componentsData || emoji_test_components.mapEmojiTestDataComponents(data);
  32. for (const key in data) {
  33. const sourceItem = data[key];
  34. if (sourceItem.status !== "component") {
  35. const item = findComponentsInEmojiTestItem(
  36. sourceItem,
  37. componentsData
  38. );
  39. results[item.sequenceKey] = item;
  40. }
  41. }
  42. return results;
  43. }
  44. exports.combineSimilarEmojiTestData = combineSimilarEmojiTestData;
  45. exports.findComponentsInEmojiTestItem = findComponentsInEmojiTestItem;