From 0c7b0585935d27d7e5c0c2cf50cf47418d88b653 Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Fri, 5 Dec 2025 00:51:24 +1000 Subject: [PATCH] fix(emoji-magic): add defensive checks for missing required parameters - Add validation in both textToEmoji and emojiMood to handle missing text parameter - Return descriptive error instead of crashing with undefined error - Bump to v0.2.1 --- packages/tools/emoji-magic/package.json | 2 +- packages/tools/emoji-magic/src/tools/emojiMood.ts | 12 ++++++++++++ packages/tools/emoji-magic/src/tools/textToEmoji.ts | 12 ++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/tools/emoji-magic/package.json b/packages/tools/emoji-magic/package.json index 126eab3..73cdec7 100644 --- a/packages/tools/emoji-magic/package.json +++ b/packages/tools/emoji-magic/package.json @@ -1,6 +1,6 @@ { "name": "@tpmjs/emoji-magic", - "version": "0.2.0", + "version": "0.2.1", "description": "AI SDK tools for emoji-magic - convert text to emojis and back!", "type": "module", "main": "dist/index.js", diff --git a/packages/tools/emoji-magic/src/tools/emojiMood.ts b/packages/tools/emoji-magic/src/tools/emojiMood.ts index acec19c..f42d276 100644 --- a/packages/tools/emoji-magic/src/tools/emojiMood.ts +++ b/packages/tools/emoji-magic/src/tools/emojiMood.ts @@ -15,6 +15,18 @@ export const emojiMood = tool({ async execute(input: z.infer) { const { text, count } = input; + // Validate required parameters (defensive check) + if (!text) { + return { + success: false, + error: 'Missing required parameter: text', + mood: 'unknown', + suggestions: [], + text_length: 0, + analysis: 'Cannot analyze mood without text input', + }; + } + // Simple sentiment analysis based on keywords const positiveWords = [ 'happy', diff --git a/packages/tools/emoji-magic/src/tools/textToEmoji.ts b/packages/tools/emoji-magic/src/tools/textToEmoji.ts index 3cd5c66..285a57f 100644 --- a/packages/tools/emoji-magic/src/tools/textToEmoji.ts +++ b/packages/tools/emoji-magic/src/tools/textToEmoji.ts @@ -18,6 +18,18 @@ export const textToEmoji = tool({ async execute(input: z.infer) { const { text, style } = input; + // Validate required parameters (defensive check) + if (!text) { + return { + success: false, + error: 'Missing required parameter: text', + original: '', + converted: '', + style, + emoji_count: 0, + }; + } + // Simple word-to-emoji mappings const emojiMap: Record = { // Emotions