diff options
author | Sam Wilkins <samwilkins333@gmail.com> | 2020-05-15 00:03:41 -0700 |
---|---|---|
committer | Sam Wilkins <samwilkins333@gmail.com> | 2020-05-15 00:03:41 -0700 |
commit | 2b79008596351f6948d8de80c7887446d97b068c (patch) | |
tree | 7f393199bf780936cee1427c07c64bd2745fa3f9 /src/fields/RefField.ts | |
parent | b9440e34d89b28acacdd6eed2cda39cd2a1d8c46 (diff) |
renamed new_fields to fields
Diffstat (limited to 'src/fields/RefField.ts')
-rw-r--r-- | src/fields/RefField.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/fields/RefField.ts b/src/fields/RefField.ts new file mode 100644 index 000000000..b6ef69750 --- /dev/null +++ b/src/fields/RefField.ts @@ -0,0 +1,21 @@ +import { serializable, primitive, alias } from "serializr"; +import { Utils } from "../Utils"; +import { Id, HandleUpdate, ToScriptString, ToString } from "./FieldSymbols"; +import { afterDocDeserialize } from "../client/util/SerializationHelper"; + +export type FieldId = string; +export abstract class RefField { + @serializable(alias("id", primitive({ afterDeserialize: afterDocDeserialize }))) + private __id: FieldId; + readonly [Id]: FieldId; + + constructor(id?: FieldId) { + this.__id = id || Utils.GenerateGuid(); + this[Id] = this.__id; + } + + protected [HandleUpdate]?(diff: any): void | Promise<void>; + + abstract [ToScriptString](): string; + abstract [ToString](): string; +} |