aboutsummaryrefslogtreecommitdiff
path: root/src/util/Scripting.ts
diff options
context:
space:
mode:
authortschicke-brown <tyler_schicke@brown.edu>2019-02-07 23:50:47 -0500
committerGitHub <noreply@github.com>2019-02-07 23:50:47 -0500
commit35574735a60fbc7b1c7051c59db56a8485f50a21 (patch)
tree42dc1f8fbe639d53e7c6d3db144bd30d984c21de /src/util/Scripting.ts
parent8d264be35a511204449c22d0a4b1754e241a3421 (diff)
parent90296f23320df43e73fb1bd936428f19f0f705a9 (diff)
Merge pull request #5 from browngraphicslab/schema
Schema
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