import type { CallTemplateFunctionArgs, Context, PluginDefinition } from "@yaakapp/api"; export const plugin: PluginDefinition = { templateFunctions: [ { name: "random.range", description: "Generate a random number between two values", previewArgs: ["min", "max"], args: [ { type: "text", name: "min", label: "Minimum", defaultValue: "0", }, { type: "text", name: "max", label: "Maximum", defaultValue: "1", }, { type: "text", name: "decimals", optional: true, label: "Decimal Places", }, ], async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise { const min = args.values.min ? Number.parseInt(String(args.values.min ?? "0"), 10) : 0; const max = args.values.max ? Number.parseInt(String(args.values.max ?? "1"), 10) : 1; const decimals = args.values.decimals ? Number.parseInt(String(args.values.decimals ?? "0"), 10) : null; let value = Math.random() * (max - min) + min; if (decimals !== null) { value = Math.round(value * 10 ** decimals) / 10 ** decimals; } return String(value); }, }, ], };