Files
infocom-systems-design/node_modules/@iconify/utils/lib/emoji/test/similar.js
2025-10-03 22:27:28 +03:00

38 lines
1.2 KiB
JavaScript

import { vs16Emoji } from "../data.js";
import { emojiSequenceWithComponentsToString, mapEmojiTestDataComponents } from "./components.js";
import { splitEmojiNameVariations } from "./name.js";
/**
* Find components in item, generate CombinedEmojiTestDataItem
*/
function findComponentsInEmojiTestItem(item, componentsData) {
const name = splitEmojiNameVariations(item.name, item.sequence, componentsData);
const sequence = [...item.sequence];
name.variations?.forEach((item$1) => {
if (typeof item$1 !== "string") sequence[item$1.index] = item$1.type;
});
const sequenceKey = emojiSequenceWithComponentsToString(sequence.filter((code) => code !== vs16Emoji));
return {
...item,
name,
sequenceKey,
sequence
};
}
/**
* Combine similar items in one iteratable item
*/
function combineSimilarEmojiTestData(data, componentsData) {
const results = Object.create(null);
componentsData = componentsData || mapEmojiTestDataComponents(data);
for (const key in data) {
const sourceItem = data[key];
if (sourceItem.status !== "component") {
const item = findComponentsInEmojiTestItem(sourceItem, componentsData);
results[item.sequenceKey] = item;
}
}
return results;
}
export { combineSimilarEmojiTestData, findComponentsInEmojiTestItem };