aboutsummaryrefslogtreecommitdiff
path: root/src/util/Scripting.ts
diff options
context:
space:
mode:
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