sup.search
The sup.search package provides search capabilities for finding patches and emojis on the platform. It is accessed through sup.search.
// Search for patchesconst aiPatches = sup.search.patches("ai image generation", 5);console.log(aiPatches); // Array of up to 5 matching patches
// Search for emojisconst dogEmojis = sup.search.emojis("dog", 3);console.log(dogEmojis); // Array of up to 3 matching emojis
// Use found patchesconst imagePatch = sup.search.patches("image editor", 1)[0];if (imagePatch) { const result = imagePatch.run(sup.input.image); return result;}
// Use found emojisconst emoji = sup.search.emojis("fire", 1)[0];if (emoji) { return [emoji, "Found the emoji!"];}Methods
sup.search.patches()
(query: string, numResults?: number) → SupPatch[]
// Search for patches related to "music"const patches = sup.search.patches("music player", 5);
// Get first resultconst topPatch = sup.search.patches("weather", 1)[0];
// Use default number of results (if not specified)const results = sup.search.patches("calculator");
// Execute a found patchconst imagePatches = sup.search.patches("blur image");if (imagePatches.length > 0) { const result = imagePatches[0].run(sup.input.image); return result;}Searches for patches on the platform using semantic search. Returns patches that match the query based on their names, descriptions, and functionality.
Parameters:
query(string): Search query describing what patches to findnumResults(optional number): Maximum number of results to return (default varies)
Returns: Array of SupPatch objects matching the query
Example use cases:
// Find utility patchesconst converters = sup.search.patches("unit converter");const timers = sup.search.patches("countdown timer");
// Find creative toolsconst imageTools = sup.search.patches("photo editor effects");const musicMakers = sup.search.patches("beat maker synthesizer");
// Call a found patch's public functionsconst mathPatch = sup.search.patches("advanced calculator", 1)[0];if (mathPatch.public.factorial) { const result = mathPatch.public.factorial(5); console.log(result); // 120}sup.search.emojis()
(query: string, numResults?: number) → SupEmoji[]
// Search for animal emojisconst animals = sup.search.emojis("cat dog", 10);
// Get a specific emojiconst fire = sup.search.emojis("fire", 1)[0];
// Use default number of resultsconst hearts = sup.search.emojis("heart");
// Display found emojisconst results = sup.search.emojis("happy face", 5);return ["Found emojis:", ...results];Searches for emojis on the platform. Returns custom and standard emojis that match the query.
Parameters:
query(string): Search query describing what emojis to findnumResults(optional number): Maximum number of results to return (default varies)
Returns: Array of SupEmoji objects matching the query
Example use cases:
// Find reaction emojisconst reactions = sup.search.emojis("thumbs up like yes");const celebrations = sup.search.emojis("party celebrate confetti");
// Check emoji propertiesconst emoji = sup.search.emojis("robot", 1)[0];if (emoji) { console.log(emoji.name); // 'robot' console.log(emoji.id); // Unique ID console.log(emoji.image); // SupImage if available console.log(emoji.audio); // SupAudio if available}
// Build an emoji responseconst randomEmoji = sup.search.emojis(sup.input.text, 1)[0];if (randomEmoji) { return [randomEmoji, "Here's an emoji for you!"];}Return Types
SupPatch
Returned patches are SupPatch objects with these capabilities:
const patch = sup.search.patches("calculator", 1)[0];
// Propertiespatch.id; // Unique patch IDpatch.code; // Source codepatch.public; // Public functions and data
// Methodspatch.run(...args); // Execute main() functionpatch.public.functionName(); // Call public functionsSee the Patch type reference for more details.
SupEmoji
Returned emojis are SupEmoji objects with these properties:
const emoji = sup.search.emojis("star", 1)[0];
emoji.id; // string - Unique emoji IDemoji.name; // string - Emoji name/shortnameemoji.image; // SupImage | undefined - Visual representationemoji.audio; // SupAudio | undefined - Sound effectSee the Emoji type reference for more details.
Examples
Finding and Using Related Patches
// Search for image processing patchesconst imagePatches = sup.search.patches("image filter effects", 3);
if (imagePatches.length === 0) { return "No image patches found!";}
// Let user know what we foundconst patchNames = imagePatches.map(p => p.id).join(", ");sup.status(`Found patches: ${patchNames}`);
// Use the first oneconst result = imagePatches[0].run(sup.input.image);return result;Building an Emoji Picker
const query = sup.input.text || "random emoji";const emojis = sup.search.emojis(query, 10);
if (emojis.length === 0) { return "No emojis found for: " + query;}
// Return grid of emojisreturn [ `Found ${emojis.length} emojis for "${query}":`, ...emojis];Composing Multiple Patches
// Find related patchesconst blurPatch = sup.search.patches("blur image", 1)[0];const sharpenPatch = sup.search.patches("sharpen enhance", 1)[0];
if (!blurPatch || !sharpenPatch) { return "Required patches not found";}
// Apply multiple effectslet image = sup.input.image;image = blurPatch.run(image);image = sharpenPatch.run(image);
return image;Notes
- Search uses semantic matching, not just keyword matching
- Results are ranked by relevance to the query
- Search includes only public patches