@lobehub/fluent-emoji
Version:
Fluent Emoji are a collection of familiar, friendly, and modern emoji from Microsoft
40 lines (39 loc) • 1.34 kB
JavaScript
//#region src/getFluentEmojiCDN/utils.ts
function emojiToUnicode(emoji) {
return [...emoji].map((char) => char?.codePointAt(0)?.toString(16)).join("-");
}
function emojiAnimPkg(emoji) {
const mainPart = emojiToUnicode(emoji).split("-")[0];
if (mainPart < "1f469") return "@lobehub/fluent-emoji-anim-1";
else if (mainPart >= "1f469" && mainPart < "1f620") return "@lobehub/fluent-emoji-anim-2";
else if (mainPart >= "1f620" && mainPart < "1f9a0") return "@lobehub/fluent-emoji-anim-3";
else return "@lobehub/fluent-emoji-anim-4";
}
const genEmojiUrl = (emoji, type) => {
const ext = ["anim", "3d"].includes(type) ? "webp" : "svg";
switch (type) {
case "anim": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: emojiAnimPkg(emoji)
};
case "3d": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-3d"
};
case "flat": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-flat"
};
case "modern": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-modern"
};
case "mono": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-mono"
};
}
};
//#endregion
export { emojiAnimPkg, emojiToUnicode, genEmojiUrl };
//# sourceMappingURL=utils.mjs.map