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); }, }, ], };