diff --git a/frontend/src/lib/components/apps/components/helpers/InputValue.svelte b/frontend/src/lib/components/apps/components/helpers/InputValue.svelte index d22668319c..cda976a396 100644 --- a/frontend/src/lib/components/apps/components/helpers/InputValue.svelte +++ b/frontend/src/lib/components/apps/components/helpers/InputValue.svelte @@ -271,7 +271,8 @@ $mode == 'dnd', $componentControl, $worldStore, - $runnableComponents + $runnableComponents, + false ) error = '' return r @@ -295,7 +296,8 @@ $mode == 'dnd', $componentControl, $worldStore, - $runnableComponents + $runnableComponents, + false ) error = '' return r diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index 819c7ea38d..80241a97cb 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -258,7 +258,8 @@ isEditor, $componentControl, $worldStore, - $runnableComponents + $runnableComponents, + true ) await setResult(r, job, setRunnableJobEditorPanel) @@ -459,7 +460,8 @@ isEditor, $componentControl, $worldStore, - $runnableComponents + $runnableComponents, + true ) return transformerResult } catch (err) { diff --git a/frontend/src/lib/components/apps/components/helpers/eval.ts b/frontend/src/lib/components/apps/components/helpers/eval.ts index 459960695b..3a39d2b2f8 100644 --- a/frontend/src/lib/components/apps/components/helpers/eval.ts +++ b/frontend/src/lib/components/apps/components/helpers/eval.ts @@ -18,7 +18,11 @@ export function computeGlobalContext(world: World | undefined, extraContext: any } } -function create_context_function_template(eval_string: string, contextKeys: string[]) { +function create_context_function_template( + eval_string: string, + contextKeys: string[], + noReturn: boolean +) { let hasReturnAsLastLine = eval_string.split('\n').some((x) => x.startsWith('return ')) return ` return async function (context, state, goto, setTab, recompute, getAgGrid, setValue, setSelectedIndex, openModal, closeModal, open, close, validate, invalidate, validateAll, clearFiles, showToast) { @@ -29,7 +33,7 @@ ${ : `` } ${ - hasReturnAsLastLine + hasReturnAsLastLine || noReturn ? eval_string : ` return ${eval_string.startsWith('return ') ? eval_string.substring(7) : eval_string}` @@ -60,12 +64,12 @@ type WmFunctor = ( ) => Promise let functorCache: Record = {} -function make_context_evaluator(eval_string, contextKeys: string[]): WmFunctor { +function make_context_evaluator(eval_string, contextKeys: string[], noReturn: boolean): WmFunctor { let cacheKey = hashCode(JSON.stringify({ eval_string, contextKeys })) if (functorCache[cacheKey]) { return functorCache[cacheKey] } - let template = create_context_function_template(eval_string, contextKeys) + let template = create_context_function_template(eval_string, contextKeys, noReturn) let functor = Function(template) let r = functor() functorCache[cacheKey] = r @@ -139,7 +143,8 @@ export async function eval_like( } >, worldStore: World | undefined, - runnableComponents: Record void)[] }> + runnableComponents: Record void)[] }>, + noReturn: boolean ) { const proxiedState = new Proxy(state, { set(target, key, value) { @@ -157,7 +162,7 @@ export async function eval_like( } }) - let evaluator = make_context_evaluator(text, Object.keys(context ?? {})) + let evaluator = make_context_evaluator(text, Object.keys(context ?? {}), noReturn) // console.log(i, j) return await evaluator( context,