From 901df11e8c5a82c80f4709268db359dc23828a89 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 14 Feb 2025 11:12:57 +0100 Subject: [PATCH] Validate helpers --- .../src/components/common/CodeEditor/CodeEditor.svelte | 10 ++++++---- .../src/components/common/bindings/BindingPanel.svelte | 6 ++++++ packages/builder/src/types/bindings.ts | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte index 1571b9ad22..74126c1c70 100644 --- a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte +++ b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte @@ -284,17 +284,19 @@ return } - const config = validations[helperName] + const { arguments: expectedArguments = [] } = + validations[helperName] const providedParams = node.params - if (providedParams.length !== config.arguments.length) { + + if (providedParams.length !== expectedArguments.length) { diagnostics.push({ from, to, severity: "error", message: `Helper "${helperName}" expects ${ - config.arguments.length - } parameters (${config.arguments.join(", ")}), but got ${ + expectedArguments.length + } parameters (${expectedArguments.join(", ")}), but got ${ providedParams.length }.`, }) diff --git a/packages/builder/src/components/common/bindings/BindingPanel.svelte b/packages/builder/src/components/common/bindings/BindingPanel.svelte index 4f124140cd..a9e7c1ffdf 100644 --- a/packages/builder/src/components/common/bindings/BindingPanel.svelte +++ b/packages/builder/src/components/common/bindings/BindingPanel.svelte @@ -110,6 +110,12 @@ } return validations }, {}), + ...helperOptions.reduce((validations, option) => { + validations[option.label] = { + arguments: option.args, + } + return validations + }, {}), } $: { diff --git a/packages/builder/src/types/bindings.ts b/packages/builder/src/types/bindings.ts index 3e62149ed4..3879a18c7d 100644 --- a/packages/builder/src/types/bindings.ts +++ b/packages/builder/src/types/bindings.ts @@ -12,6 +12,6 @@ export interface BindingCompletionOption extends Completion { export type CodeValidator = Record< string, { - arguments: any[] + arguments?: any[] } >