aboutsummaryrefslogtreecommitdiff
path: root/src/util/Scripting.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-02-04 22:20:27 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-02-05 18:48:53 -0500
commitfa2c1b3304cd55654e23a3bf3d3b0ec6d7f6d9a0 (patch)
tree0c4a36ee576226daec098f777e58147c1ff909d5 /src/util/Scripting.ts
parent136194eba78c0427926cba0be9a11650e6f4be2b (diff)
More scripting/typescript stuff
Diffstat (limited to 'src/util/Scripting.ts')
-rw-r--r--src/util/Scripting.ts22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/util/Scripting.ts b/src/util/Scripting.ts
index ac7d1550a..eae138fcd 100644
--- a/src/util/Scripting.ts
+++ b/src/util/Scripting.ts
@@ -1,5 +1,8 @@
-import * as ts from "typescript"
+// import * as ts from "typescript"
import { Opt, Field } from "../fields/Field";
+import { Document } from "../fields/Document";
+import { NumberField } from "../fields/NumberField";
+import { KeyStore } from "../fields/Key";
export interface ExecutableScript {
(): any;
@@ -7,15 +10,20 @@ export interface ExecutableScript {
compiled: boolean;
}
-function ExecScript(script: string, diagnostics: Opt<ts.Diagnostic[]>): ExecutableScript {
- const compiled = !(diagnostics && diagnostics.some(diag => diag.category == ts.DiagnosticCategory.Error));
+function ExecScript(script: string, diagnostics: Opt<any[]>): ExecutableScript {
+ const compiled = !(diagnostics && diagnostics.some(diag => diag.category == 1));
let func: () => Opt<Field>;
if (compiled) {
func = function (): Opt<Field> {
let window = undefined;
let document = undefined;
- let retVal = eval.call(undefined, script);
+ let scope = {
+ Document,
+ NumberField,
+ KeyStore
+ }
+ let retVal = function () { return eval(script); }.call(scope);
return retVal;
};
@@ -30,11 +38,7 @@ function ExecScript(script: string, diagnostics: Opt<ts.Diagnostic[]>): Executab
}
export function CompileScript(script: string): ExecutableScript {
- let result = ts.transpileModule(script, {
- compilerOptions: {
- module: ts.ModuleKind.CommonJS
- }
- })
+ let result = (window as any).ts.transpileModule(script, {})
return ExecScript(result.outputText, result.diagnostics);
} \ No newline at end of file