diff options
author | tschicke-brown <tyler_schicke@brown.edu> | 2019-02-07 23:50:47 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-07 23:50:47 -0500 |
commit | 35574735a60fbc7b1c7051c59db56a8485f50a21 (patch) | |
tree | 42dc1f8fbe639d53e7c6d3db144bd30d984c21de /src/util/Scripting.ts | |
parent | 8d264be35a511204449c22d0a4b1754e241a3421 (diff) | |
parent | 90296f23320df43e73fb1bd936428f19f0f705a9 (diff) |
Merge pull request #5 from browngraphicslab/schema
Schema
Diffstat (limited to 'src/util/Scripting.ts')
-rw-r--r-- | src/util/Scripting.ts | 17 |
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 |