aboutsummaryrefslogtreecommitdiff
path: root/src/fields/Field.ts
diff options
context:
space:
mode:
authoryipstanley <stanley_yip@brown.edu>2019-02-13 16:38:09 -0500
committeryipstanley <stanley_yip@brown.edu>2019-02-13 16:38:09 -0500
commit430878f6dd8d36b1322e15d0898ada0d44fecacb (patch)
tree027fb9b578a3fee8d97b16922a930806da00afaa /src/fields/Field.ts
parent2eb147ab8f25e6dd90f47cf21499c7340642f0c9 (diff)
Asdfjkla/sdfklj
Diffstat (limited to 'src/fields/Field.ts')
-rw-r--r--src/fields/Field.ts43
1 files changed, 2 insertions, 41 deletions
diff --git a/src/fields/Field.ts b/src/fields/Field.ts
index 1a5cfb29c..4b9d996ac 100644
--- a/src/fields/Field.ts
+++ b/src/fields/Field.ts
@@ -9,6 +9,7 @@ import { ImageField } from "./ImageField";
import { ListField } from "./ListField";
import { Document } from "./Document";
import { Server } from "../client/Server";
+import { ObjectID } from "bson";
export function Cast<T extends Field>(field: FieldValue<Field>, ctor: { new(): T }): Opt<T> {
if (field) {
@@ -64,45 +65,5 @@ export abstract class Field {
abstract Copy(): Field;
- abstract ToJson(): { id: string, type: Types, data: any }
-
- public static FromJson(obj: { id: string, type: number, data: any }): Field {
- let data: any = obj.data
- let id: string = obj.id
-
- switch (obj.type) {
- case Types.Number:
- return new NumberField(data, id)
- case Types.Text:
- return new TextField(data, id)
- case Types.RichText:
- return new RichTextField(data, id)
- case Types.Key:
- return new Key(data, id)
- case Types.Image:
- return new ImageField(data, id)
- case Types.List:
- return new ListField(data, id)
- case Types.Document:
- let doc: Document = new Document(id)
- let fields: [string, string][] = data as [string, string][]
- fields.forEach(element => {
- doc._proxies.set(element[0], element[1]);
- let keyId: string = element[0]
- let valueId: string = element[1]
- Server.GetField(keyId, (key: Field) => {
- if (key instanceof Key) {
- Server.GetField(valueId, (field: Field) => {
- doc.Set(key as Key, field)
- })
- }
- else {
- console.log("how did you get a key that isnt a key wtf")
- }
- })
- });
- return doc
- }
- return new TextField(data, id)
- }
+ abstract ToJson(): { _id: ObjectID, type: Types, data: any }
} \ No newline at end of file