aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbob <bcz@cs.brown.edu>2019-06-07 11:18:28 -0400
committerbob <bcz@cs.brown.edu>2019-06-07 11:18:28 -0400
commit411a453970d96b145875031ffbecbee9461162fb (patch)
treee9d319e9cb6c0bdfaa11f591b96f138fdb1a3121 /src
parentac63044fad5968cca83108f6dd3015ef657840bd (diff)
fixes for computed script deserialization
Diffstat (limited to 'src')
-rw-r--r--src/client/util/type_decls.d3
-rw-r--r--src/fields/ScriptField.ts10
2 files changed, 8 insertions, 5 deletions
diff --git a/src/client/util/type_decls.d b/src/client/util/type_decls.d
index b3c049d02..2cbe1dd40 100644
--- a/src/client/util/type_decls.d
+++ b/src/client/util/type_decls.d
@@ -162,6 +162,9 @@ declare class ImageField extends URLField { [Copy](): ObjectField; }
declare class WebField extends URLField { [Copy](): ObjectField; }
declare class PdfField extends URLField { [Copy](): ObjectField; }
+declare const ComputedField: any;
+declare const CompileScript: any;
+
// @ts-ignore
declare type Extract<T, U> = T extends U ? T : never;
declare type Field = number | string | boolean | ObjectField | RefField;
diff --git a/src/fields/ScriptField.ts b/src/fields/ScriptField.ts
index 05ed57ea5..ac46ccf90 100644
--- a/src/fields/ScriptField.ts
+++ b/src/fields/ScriptField.ts
@@ -44,14 +44,14 @@ export class ScriptField extends ObjectField {
this._script = script;
}
- @serializable(object(optionsSchema))
+ @serializable(custom(object(optionsSchema).serializer, () => SKIP))
get options() {
- return this._script.options;
+ return this._script && this._script.options;
}
- @serializable(true)
+ @serializable(custom(primitive().serializer, () => SKIP))
get scriptString(): string {
- return this._script.originalScript;
+ return this._script && this._script.originalScript;
}
// init(callback: (res: Field) => any) {
@@ -84,7 +84,7 @@ export class ScriptField extends ObjectField {
}
}
-@Deserializable("computed")
+@Deserializable("computed", deserializeScript)
export class ComputedField extends ScriptField {
@computed
get value() {