diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-02-04 22:20:27 -0500 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-02-05 18:48:53 -0500 |
commit | fa2c1b3304cd55654e23a3bf3d3b0ec6d7f6d9a0 (patch) | |
tree | 0c4a36ee576226daec098f777e58147c1ff909d5 /src/util/Scripting.ts | |
parent | 136194eba78c0427926cba0be9a11650e6f4be2b (diff) |
More scripting/typescript stuff
Diffstat (limited to 'src/util/Scripting.ts')
-rw-r--r-- | src/util/Scripting.ts | 22 |
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 |