@getsolara/solara.canvas
Version:
Optional canvas and image manipulation functionality for @getsolara/solara.js
27 lines • 1.43 kB
JavaScript
module.exports = {
name: "$loadImage",
description: "Loads an image for drawing onto the canvas. Stores internally. Args: urlOrPath;[variableName]",
takesBrackets: true,
execute: async (context, args) => {
if (context.client.canvasInitialized === false) {
return "[Error: $loadImage requires canvas features to be enabled. Ensure @getsolara/solara.canvas is installed and configured correctly.]";
}
if (!args[0]) return "[Error: $loadImage requires an image URL or file path]";
const source = args[0];
const varName = args[1]?.trim() || `loadedImage_${Date.now()}`;
try {
const { loadImage } = require('canvas');
const image = await loadImage(source);
context.localVariables = context.localVariables || new Map();
context.localVariables.set(varName, image);
return varName;
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND' && e.message.includes('canvas')) {
console.error("Solara.canvas ($loadImage): 'canvas' module not found. This is a dependency of @getsolara/solara.canvas.");
return "[Error: $loadImage - canvas module missing.]";
}
console.error(`Solara.canvas Error ($loadImage for source "${source}"):`, e);
return `[Error loading image: ${e.message}]`;
}
}
};