aboutsummaryrefslogtreecommitdiff
path: root/src/new_fields/Doc.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-04-27 21:40:17 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-04-27 21:40:17 -0400
commitd4a77dd055685dd81a762ef40e0c3b7606586e9c (patch)
tree9c2c31267041716d8a7e90ceb796ea632ee572e4 /src/new_fields/Doc.ts
parent7a820b3b175ea52712927e75ce16e32f0ed3a131 (diff)
Split more files up
Diffstat (limited to 'src/new_fields/Doc.ts')
-rw-r--r--src/new_fields/Doc.ts37
1 files changed, 4 insertions, 33 deletions
diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts
index fb7b6e360..4ef2a465f 100644
--- a/src/new_fields/Doc.ts
+++ b/src/new_fields/Doc.ts
@@ -8,38 +8,8 @@ import { Cast, ToConstructor, PromiseValue, FieldValue } from "./Types";
import { UndoManager, undoBatch } from "../client/util/UndoManager";
import { listSpec } from "./Schema";
import { List } from "./List";
-
-export type FieldId = string;
-export const HandleUpdate = Symbol("HandleUpdate");
-export const Id = Symbol("Id");
-export abstract class RefField {
- @serializable(alias("id", primitive()))
- private __id: FieldId;
- readonly [Id]: FieldId;
-
- constructor(id?: FieldId) {
- this.__id = id || Utils.GenerateGuid();
- this[Id] = this.__id;
- }
-
- protected [HandleUpdate]?(diff: any): void;
-}
-
-export const Update = Symbol("Update");
-export const OnUpdate = Symbol("OnUpdate");
-export const Parent = Symbol("Parent");
-export class ObjectField {
- protected [OnUpdate]?: (diff?: any) => void;
- private [Parent]?: Doc;
- readonly [Id] = "";
-}
-
-export namespace ObjectField {
- export function MakeCopy(field: ObjectField) {
- //TODO Types
- return field;
- }
-}
+import { ObjectField } from "./ObjectField";
+import { RefField, FieldId, Id } from "./RefField";
export function IsField(field: any): field is Field {
return (typeof field === "string")
@@ -53,6 +23,7 @@ export type Opt<T> = T | undefined;
export type FieldWaiting<T extends RefField = RefField> = T extends undefined ? never : Promise<T | undefined>;
export type FieldResult<T extends Field = Field> = Opt<T> | FieldWaiting<Extract<T, RefField>>;
+export const Update = Symbol("Update");
export const Self = Symbol("Self");
@Deserializable("doc").withFields(["id"])
@@ -161,7 +132,7 @@ export namespace Doc {
copy[key] = field;
}
}
- })
+ });
return copy;
}