diff options
author | anika-ahluwalia <anika.ahluwalia@gmail.com> | 2020-06-10 11:52:46 -0500 |
---|---|---|
committer | anika-ahluwalia <anika.ahluwalia@gmail.com> | 2020-06-10 11:52:46 -0500 |
commit | 367705cf6826766a9102315d75cd690d8e6b8929 (patch) | |
tree | 982d2b364828c7a5ae57c1c57fb7707920440ddd /src/client/util/ScriptManager.ts | |
parent | d6e17e1fd23ac867e13d601a2dae61acbf0a7195 (diff) |
fixed add global method in ScriptManager
Diffstat (limited to 'src/client/util/ScriptManager.ts')
-rw-r--r-- | src/client/util/ScriptManager.ts | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/client/util/ScriptManager.ts b/src/client/util/ScriptManager.ts index 6c90f43eb..2b82786b3 100644 --- a/src/client/util/ScriptManager.ts +++ b/src/client/util/ScriptManager.ts @@ -33,6 +33,7 @@ export class ScriptManager { public addScript(scriptDoc: Doc): boolean { console.log("in add script method"); + const scriptList = ScriptManager.Instance.getAllScripts(); scriptList.push(scriptDoc); if (ScriptManager.Instance.ScriptManagerDoc) { @@ -46,8 +47,10 @@ export class ScriptManager { public deleteScript(scriptDoc: Doc): boolean { - if (scriptDoc.funcName) { - Scripting.removeGlobal(StrCast(scriptDoc.funcName)); + console.log("in delete script method"); + + if (scriptDoc.functionName) { + Scripting.removeGlobal(StrCast(scriptDoc.functionName)); } const scriptList = ScriptManager.Instance.getAllScripts(); const index = ScriptManager.Instance.getAllScripts().indexOf(scriptDoc); @@ -62,9 +65,22 @@ export class ScriptManager { } public static addScriptToGlobals(scriptDoc: Doc): void { + + Scripting.removeGlobal(StrCast(scriptDoc.functionName)); + const params = Cast(scriptDoc.compileParams, listSpec("string"), []); - const p = params.reduce((o: ScriptParam, p: string) => { o[p] = "any"; return o; }, {} as ScriptParam); - const f = new Function(...Array.from(Object.keys(p)), StrCast(scriptDoc.rawScript)); + const paramNames = params.reduce((o: string, p: string) => { + if (params.indexOf(p) === params.length - 1) { + o = o + p.split(":")[0].trim(); + } else { + o = o + p.split(":")[0].trim() + ","; + } + return o; + }, "" as string); + + const f = new Function(paramNames, StrCast(scriptDoc.rawScript)); + + Object.defineProperty(f, 'name', { value: StrCast(scriptDoc.functionName), writable: false }); let parameters = "("; params.forEach((element: string, i: number) => { @@ -76,9 +92,9 @@ export class ScriptManager { }); if (parameters === "(") { - Scripting.addGlobal(f, StrCast(scriptDoc.description), "", StrCast(scriptDoc.funcName)); + Scripting.addGlobal(f, StrCast(scriptDoc.functionDescription)); } else { - Scripting.addGlobal(f, StrCast(scriptDoc.description), parameters, StrCast(scriptDoc.funcName)); + Scripting.addGlobal(f, StrCast(scriptDoc.functionDescription), parameters); } } } |