aboutsummaryrefslogtreecommitdiff
path: root/src/util/Scripting.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-02-07 23:33:44 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-02-07 23:33:44 -0500
commit9b942166ca6b09ce4f310928c3daf8503a63ee5c (patch)
treecec530ff1bf61f02f3d1a9e722325d78aa935d70 /src/util/Scripting.ts
parent090093a50397ddc2a8fc2c50f5097f4a4ea8a74c (diff)
Restored Opt<T> and made a new FieldValue<T> type to replace old Opt<T>
Diffstat (limited to 'src/util/Scripting.ts')
-rw-r--r--src/util/Scripting.ts17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/util/Scripting.ts b/src/util/Scripting.ts
index 804c67bc5..e0d39bdfa 100644
--- a/src/util/Scripting.ts
+++ b/src/util/Scripting.ts
@@ -1,9 +1,9 @@
// import * as ts from "typescript"
let ts = (window as any).ts;
-import { Opt, Field, FieldWaiting } from "../fields/Field";
+import { Opt, Field } from "../fields/Field";
import { Document as DocumentImport } from "../fields/Document";
-import { NumberField as NumberFieldImport } from "../fields/NumberField";
-import { TextField as TextFieldImport } from "../fields/TextField";
+import { NumberField as NumberFieldImport, NumberField } from "../fields/NumberField";
+import { TextField as TextFieldImport, TextField } from "../fields/TextField";
import { RichTextField as RichTextFieldImport } from "../fields/RichTextField";
import { KeyStore as KeyStoreImport } from "../fields/Key";
@@ -14,7 +14,7 @@ export interface ExecutableScript {
}
function ExecScript(script: string, diagnostics: Opt<any[]>): ExecutableScript {
- const compiled = !(diagnostics && diagnostics != FieldWaiting && diagnostics.some(diag => diag.category == ts.DiagnosticCategory.Error));
+ const compiled = !(diagnostics && diagnostics.some(diag => diag.category == ts.DiagnosticCategory.Error));
let func: () => Opt<Field>;
if (compiled) {
@@ -44,4 +44,13 @@ export function CompileScript(script: string): ExecutableScript {
let result = (window as any).ts.transpileModule(script, {})
return ExecScript(result.outputText, result.diagnostics);
+}
+
+export function ToField(data: any): Opt<Field> {
+ if (typeof data == "string") {
+ return new TextField(data);
+ } else if (typeof data == "number") {
+ return new NumberField(data);
+ }
+ return undefined;
} \ No newline at end of file