aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/Scripting.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/util/Scripting.ts')
-rw-r--r--src/client/util/Scripting.ts10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/client/util/Scripting.ts b/src/client/util/Scripting.ts
index 6948469cc..5202e62a3 100644
--- a/src/client/util/Scripting.ts
+++ b/src/client/util/Scripting.ts
@@ -88,7 +88,6 @@ function Run(script: string | undefined, customParams: string[], diagnostics: an
if (!options.editable) {
batch = Doc.MakeReadOnly();
}
-
const result = compiledFunction.apply(thisParam, params).apply(thisParam, argsArray);
batch?.end();
return { success: true, result };
@@ -184,14 +183,19 @@ function forEachNode(node: ts.Node, onEnter: Traverser, onExit?: Traverser, inde
);
}
+// ScriptField.CompileScript(value, {}, true, undefined, DocumentIconContainer.getTransformer());
+// //addreturn = true
+// //capturedvariables = undefined
+// //
+
export function CompileScript(script: string, options: ScriptOptions = {}): CompileResult {
- const captured = options.capturedVariables ?? {};
+ const captured = options.capturedVariables ?? {};
const signature = Object.keys(captured).reduce((p, v) => {
const formatCapture = (obj: any) => `${v}=${obj instanceof RefField ? 'XXX' : obj.toString()}`;
if (captured[v] instanceof Array) return p + (captured[v] as any).map(formatCapture);
return p + formatCapture(captured[v]);
}, '');
- const found = ScriptField.GetScriptFieldCache(script + ':' + signature);
+ const found = ScriptField.GetScriptFieldCache(script + ':' + signature); // if already compiled, found is the result; cache set below
if (found) return found as CompiledScript;
const { requiredType = '', addReturn = false, params = {}, capturedVariables = {}, typecheck = true } = options;
if (options.params && !options.params.this) options.params.this = Doc.name;