UNPKG

wechat-emojis

Version:

完整的微信内置表情资源库,包含 109 个高清 PNG 图片和类型安全的 TypeScript API

315 lines (314 loc) 16 kB
"use strict"; /** * 微信表情包 TypeScript 模块 * 提供类型安全的表情访问和图片路径获取功能 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.EMOJI_CATEGORIES = exports.EmojiCategory = void 0; exports.getEmojiPath = getEmojiPath; exports.getEmojiInfo = getEmojiInfo; exports.getEmojisByCategory = getEmojisByCategory; exports.getAllEmojis = getAllEmojis; exports.searchEmojis = searchEmojis; exports.hasEmoji = hasEmoji; exports.getEmojiNames = getEmojiNames; exports.getRandomEmoji = getRandomEmoji; /** * 表情类别枚举 */ var EmojiCategory; (function (EmojiCategory) { /** 人脸表情 */ EmojiCategory["FACE"] = "face"; /** 手势表情 */ EmojiCategory["GESTURE"] = "gesture"; /** 动物表情 */ EmojiCategory["ANIMAL"] = "animal"; /** 祝福表情 */ EmojiCategory["BLESSING"] = "blessing"; /** 其他表情 */ EmojiCategory["OTHER"] = "other"; })(EmojiCategory || (exports.EmojiCategory = EmojiCategory = {})); /** * 表情数据映射 * 将表情名称映射到完整的表情信息 */ const EMOJI_DATA = { // 人脸表情 '微笑': { name: '微笑', category: EmojiCategory.FACE, path: 'assets/face/微笑.png' }, '撇嘴': { name: '撇嘴', category: EmojiCategory.FACE, path: 'assets/face/撇嘴.png' }, '色': { name: '色', category: EmojiCategory.FACE, path: 'assets/face/色.png' }, '发呆': { name: '发呆', category: EmojiCategory.FACE, path: 'assets/face/发呆.png' }, '得意': { name: '得意', category: EmojiCategory.FACE, path: 'assets/face/得意.png' }, '流泪': { name: '流泪', category: EmojiCategory.FACE, path: 'assets/face/流泪.png' }, '害羞': { name: '害羞', category: EmojiCategory.FACE, path: 'assets/face/害羞.png' }, '闭嘴': { name: '闭嘴', category: EmojiCategory.FACE, path: 'assets/face/闭嘴.png' }, '睡': { name: '睡', category: EmojiCategory.FACE, path: 'assets/face/睡.png' }, '大哭': { name: '大哭', category: EmojiCategory.FACE, path: 'assets/face/大哭.png' }, '尴尬': { name: '尴尬', category: EmojiCategory.FACE, path: 'assets/face/尴尬.png' }, '发怒': { name: '发怒', category: EmojiCategory.FACE, path: 'assets/face/发怒.png' }, '调皮': { name: '调皮', category: EmojiCategory.FACE, path: 'assets/face/调皮.png' }, '呲牙': { name: '呲牙', category: EmojiCategory.FACE, path: 'assets/face/呲牙.png' }, '惊讶': { name: '惊讶', category: EmojiCategory.FACE, path: 'assets/face/惊讶.png' }, '难过': { name: '难过', category: EmojiCategory.FACE, path: 'assets/face/难过.png' }, '囧': { name: '囧', category: EmojiCategory.FACE, path: 'assets/face/囧.png' }, '抓狂': { name: '抓狂', category: EmojiCategory.FACE, path: 'assets/face/抓狂.png' }, '吐': { name: '吐', category: EmojiCategory.FACE, path: 'assets/face/吐.png' }, '偷笑': { name: '偷笑', category: EmojiCategory.FACE, path: 'assets/face/偷笑.png' }, '愉快': { name: '愉快', category: EmojiCategory.FACE, path: 'assets/face/愉快.png' }, '白眼': { name: '白眼', category: EmojiCategory.FACE, path: 'assets/face/白眼.png' }, '傲慢': { name: '傲慢', category: EmojiCategory.FACE, path: 'assets/face/傲慢.png' }, '困': { name: '困', category: EmojiCategory.FACE, path: 'assets/face/困.png' }, '惊恐': { name: '惊恐', category: EmojiCategory.FACE, path: 'assets/face/惊恐.png' }, '憨笑': { name: '憨笑', category: EmojiCategory.FACE, path: 'assets/face/憨笑.png' }, '悠闲': { name: '悠闲', category: EmojiCategory.FACE, path: 'assets/face/悠闲.png' }, '咒骂': { name: '咒骂', category: EmojiCategory.FACE, path: 'assets/face/咒骂.png' }, '疑问': { name: '疑问', category: EmojiCategory.FACE, path: 'assets/face/疑问.png' }, '嘘': { name: '嘘', category: EmojiCategory.FACE, path: 'assets/face/嘘.png' }, '晕': { name: '晕', category: EmojiCategory.FACE, path: 'assets/face/晕.png' }, '衰': { name: '衰', category: EmojiCategory.FACE, path: 'assets/face/衰.png' }, '骷髅': { name: '骷髅', category: EmojiCategory.FACE, path: 'assets/face/骷髅.png' }, '敲打': { name: '敲打', category: EmojiCategory.FACE, path: 'assets/face/敲打.png' }, '再见': { name: '再见', category: EmojiCategory.FACE, path: 'assets/face/再见.png' }, '擦汗': { name: '擦汗', category: EmojiCategory.FACE, path: 'assets/face/擦汗.png' }, '抠鼻': { name: '抠鼻', category: EmojiCategory.FACE, path: 'assets/face/抠鼻.png' }, '鼓掌': { name: '鼓掌', category: EmojiCategory.FACE, path: 'assets/face/鼓掌.png' }, '坏笑': { name: '坏笑', category: EmojiCategory.FACE, path: 'assets/face/坏笑.png' }, '右哼哼': { name: '右哼哼', category: EmojiCategory.FACE, path: 'assets/face/右哼哼.png' }, '鄙视': { name: '鄙视', category: EmojiCategory.FACE, path: 'assets/face/鄙视.png' }, '委屈': { name: '委屈', category: EmojiCategory.FACE, path: 'assets/face/委屈.png' }, '快哭了': { name: '快哭了', category: EmojiCategory.FACE, path: 'assets/face/快哭了.png' }, '阴险': { name: '阴险', category: EmojiCategory.FACE, path: 'assets/face/阴险.png' }, '亲亲': { name: '亲亲', category: EmojiCategory.FACE, path: 'assets/face/亲亲.png' }, '可怜': { name: '可怜', category: EmojiCategory.FACE, path: 'assets/face/可怜.png' }, '笑脸': { name: '笑脸', category: EmojiCategory.FACE, path: 'assets/face/笑脸.png' }, '生病': { name: '生病', category: EmojiCategory.FACE, path: 'assets/face/生病.png' }, '脸红': { name: '脸红', category: EmojiCategory.FACE, path: 'assets/face/脸红.png' }, '破涕为笑': { name: '破涕为笑', category: EmojiCategory.FACE, path: 'assets/face/破涕为笑.png' }, '恐惧': { name: '恐惧', category: EmojiCategory.FACE, path: 'assets/face/恐惧.png' }, '失望': { name: '失望', category: EmojiCategory.FACE, path: 'assets/face/失望.png' }, '无语': { name: '无语', category: EmojiCategory.FACE, path: 'assets/face/无语.png' }, '嘿哈': { name: '嘿哈', category: EmojiCategory.FACE, path: 'assets/face/嘿哈.png' }, '捂脸': { name: '捂脸', category: EmojiCategory.FACE, path: 'assets/face/捂脸.png' }, '机智': { name: '机智', category: EmojiCategory.FACE, path: 'assets/face/机智.png' }, '皱眉': { name: '皱眉', category: EmojiCategory.FACE, path: 'assets/face/皱眉.png' }, '耶': { name: '耶', category: EmojiCategory.FACE, path: 'assets/face/耶.png' }, '吃瓜': { name: '吃瓜', category: EmojiCategory.FACE, path: 'assets/face/吃瓜.png' }, '加油': { name: '加油', category: EmojiCategory.FACE, path: 'assets/face/加油.png' }, '汗': { name: '汗', category: EmojiCategory.FACE, path: 'assets/face/汗.png' }, '天啊': { name: '天啊', category: EmojiCategory.FACE, path: 'assets/face/天啊.png' }, 'Emm': { name: 'Emm', category: EmojiCategory.FACE, path: 'assets/face/Emm.png' }, '社会社会': { name: '社会社会', category: EmojiCategory.FACE, path: 'assets/face/社会社会.png' }, '旺柴': { name: '旺柴', category: EmojiCategory.FACE, path: 'assets/face/旺柴.png' }, '好的': { name: '好的', category: EmojiCategory.FACE, path: 'assets/face/好的.png' }, '打脸': { name: '打脸', category: EmojiCategory.FACE, path: 'assets/face/打脸.png' }, '哇': { name: '哇', category: EmojiCategory.FACE, path: 'assets/face/哇.png' }, '翻白眼': { name: '翻白眼', category: EmojiCategory.FACE, path: 'assets/face/翻白眼.png' }, '666': { name: '666', category: EmojiCategory.FACE, path: 'assets/face/666.png' }, '让我看看': { name: '让我看看', category: EmojiCategory.FACE, path: 'assets/face/让我看看.png' }, '叹气': { name: '叹气', category: EmojiCategory.FACE, path: 'assets/face/叹气.png' }, '苦涩': { name: '苦涩', category: EmojiCategory.FACE, path: 'assets/face/苦涩.png' }, '裂开': { name: '裂开', category: EmojiCategory.FACE, path: 'assets/face/裂开.png' }, '奸笑': { name: '奸笑', category: EmojiCategory.FACE, path: 'assets/face/奸笑.png' }, // 手势表情 '握手': { name: '握手', category: EmojiCategory.GESTURE, path: 'assets/gesture/握手.png' }, '胜利': { name: '胜利', category: EmojiCategory.GESTURE, path: 'assets/gesture/胜利.png' }, '抱拳': { name: '抱拳', category: EmojiCategory.GESTURE, path: 'assets/gesture/抱拳.png' }, '勾引': { name: '勾引', category: EmojiCategory.GESTURE, path: 'assets/gesture/勾引.png' }, '拳头': { name: '拳头', category: EmojiCategory.GESTURE, path: 'assets/gesture/拳头.png' }, 'OK': { name: 'OK', category: EmojiCategory.GESTURE, path: 'assets/gesture/OK.png' }, '合十': { name: '合十', category: EmojiCategory.GESTURE, path: 'assets/gesture/合十.png' }, '强': { name: '强', category: EmojiCategory.GESTURE, path: 'assets/gesture/强.png' }, '拥抱': { name: '拥抱', category: EmojiCategory.GESTURE, path: 'assets/gesture/拥抱.png' }, '弱': { name: '弱', category: EmojiCategory.GESTURE, path: 'assets/gesture/弱.png' }, // 动物表情 '猪头': { name: '猪头', category: EmojiCategory.ANIMAL, path: 'assets/animal/猪头.png' }, '跳跳': { name: '跳跳', category: EmojiCategory.ANIMAL, path: 'assets/animal/跳跳.png' }, '发抖': { name: '发抖', category: EmojiCategory.ANIMAL, path: 'assets/animal/发抖.png' }, '转圈': { name: '转圈', category: EmojiCategory.ANIMAL, path: 'assets/animal/转圈.png' }, // 祝福表情 '庆祝': { name: '庆祝', category: EmojiCategory.BLESSING, path: 'assets/blessing/庆祝.png' }, '礼物': { name: '礼物', category: EmojiCategory.BLESSING, path: 'assets/blessing/礼物.png' }, '红包': { name: '红包', category: EmojiCategory.BLESSING, path: 'assets/blessing/红包.png' }, '發': { name: '發', category: EmojiCategory.BLESSING, path: 'assets/blessing/發.png' }, '福': { name: '福', category: EmojiCategory.BLESSING, path: 'assets/blessing/福.png' }, '烟花': { name: '烟花', category: EmojiCategory.BLESSING, path: 'assets/blessing/烟花.png' }, '爆竹': { name: '爆竹', category: EmojiCategory.BLESSING, path: 'assets/blessing/爆竹.png' }, // 其他表情 '嘴唇': { name: '嘴唇', category: EmojiCategory.OTHER, path: 'assets/other/嘴唇.png' }, '爱心': { name: '爱心', category: EmojiCategory.OTHER, path: 'assets/other/爱心.png' }, '心碎': { name: '心碎', category: EmojiCategory.OTHER, path: 'assets/other/心碎.png' }, '啤酒': { name: '啤酒', category: EmojiCategory.OTHER, path: 'assets/other/啤酒.png' }, '咖啡': { name: '咖啡', category: EmojiCategory.OTHER, path: 'assets/other/咖啡.png' }, '蛋糕': { name: '蛋糕', category: EmojiCategory.OTHER, path: 'assets/other/蛋糕.png' }, '凋谢': { name: '凋谢', category: EmojiCategory.OTHER, path: 'assets/other/凋谢.png' }, '菜刀': { name: '菜刀', category: EmojiCategory.OTHER, path: 'assets/other/菜刀.png' }, '炸弹': { name: '炸弹', category: EmojiCategory.OTHER, path: 'assets/other/炸弹.png' }, '便便': { name: '便便', category: EmojiCategory.OTHER, path: 'assets/other/便便.png' }, '太阳': { name: '太阳', category: EmojiCategory.OTHER, path: 'assets/other/太阳.png' }, '月亮': { name: '月亮', category: EmojiCategory.OTHER, path: 'assets/other/月亮.png' }, '玫瑰': { name: '玫瑰', category: EmojiCategory.OTHER, path: 'assets/other/玫瑰.png' } }; /** * 获取所有表情数据的辅助函数 */ function getAllEmojiData() { const result = []; for (const key in EMOJI_DATA) { if (EMOJI_DATA.hasOwnProperty(key)) { result.push(EMOJI_DATA[key]); } } return result; } /** * 按类别分组的表情数据 */ exports.EMOJI_CATEGORIES = { [EmojiCategory.FACE]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.FACE), [EmojiCategory.GESTURE]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.GESTURE), [EmojiCategory.ANIMAL]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.ANIMAL), [EmojiCategory.BLESSING]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.BLESSING), [EmojiCategory.OTHER]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.OTHER) }; /** * 获取表情图片路径 * @param name 表情名称 * @returns 图片路径,如果表情不存在则返回 null * * @example * ```typescript * const path = getEmojiPath('微笑'); // 'assets/face/微笑.png' * const invalidPath = getEmojiPath('不存在'); // null * ``` */ function getEmojiPath(name) { const emoji = EMOJI_DATA[name]; return emoji ? emoji.path : null; } /** * 获取表情信息 * @param name 表情名称 * @returns 表情信息对象,如果表情不存在则返回 null * * @example * ```typescript * const emoji = getEmojiInfo('微笑'); * // { name: '微笑', category: EmojiCategory.FACE, path: 'assets/face/微笑.png' } * ``` */ function getEmojiInfo(name) { return EMOJI_DATA[name] || null; } /** * 根据类别获取表情列表 * @param category 表情类别 * @returns 该类别下的所有表情信息 * * @example * ```typescript * const faceEmojis = getEmojisByCategory(EmojiCategory.FACE); * ``` */ function getEmojisByCategory(category) { return exports.EMOJI_CATEGORIES[category]; } /** * 获取所有表情信息 * @returns 所有表情的信息数组 * * @example * ```typescript * const allEmojis = getAllEmojis(); * console.log(`总共有 ${allEmojis.length} 个表情`); * ``` */ function getAllEmojis() { return getAllEmojiData(); } /** * 搜索表情 * @param keyword 搜索关键词 * @returns 匹配的表情信息数组 * * @example * ```typescript * const results = searchEmojis('笑'); * // 返回包含 '微笑', '偷笑', '坏笑' 等的表情 * ``` */ function searchEmojis(keyword) { return getAllEmojiData().filter(emoji => emoji.name.indexOf(keyword) !== -1); } /** * 检查表情是否存在 * @param name 表情名称 * @returns 是否存在该表情 * * @example * ```typescript * const exists = hasEmoji('微笑'); // true * const notExists = hasEmoji('不存在的表情'); // false * ``` */ function hasEmoji(name) { return name in EMOJI_DATA; } /** * 获取表情名称列表 * @param category 可选的类别筛选 * @returns 表情名称数组 * * @example * ```typescript * const allNames = getEmojiNames(); * const faceNames = getEmojiNames(EmojiCategory.FACE); * ``` */ function getEmojiNames(category) { if (category) { return getEmojisByCategory(category).map(emoji => emoji.name); } const names = []; for (const key in EMOJI_DATA) { if (EMOJI_DATA.hasOwnProperty(key)) { names.push(key); } } return names; } /** * 随机获取表情 * @param category 可选的类别筛选 * @returns 随机表情信息 * * @example * ```typescript * const randomEmoji = getRandomEmoji(); * const randomFaceEmoji = getRandomEmoji(EmojiCategory.FACE); * ``` */ function getRandomEmoji(category) { const emojis = category ? getEmojisByCategory(category) : getAllEmojis(); const randomIndex = Math.floor(Math.random() * emojis.length); return emojis[randomIndex]; } /** * 默认导出对象,包含所有主要功能 */ const WeChatEmojis = { // 枚举和类型 EmojiCategory, // 数据 EMOJI_CATEGORIES: exports.EMOJI_CATEGORIES, // 工具函数 getEmojiPath, getEmojiInfo, getEmojisByCategory, getAllEmojis, searchEmojis, hasEmoji, getEmojiNames, getRandomEmoji }; exports.default = WeChatEmojis;