diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/util/type_decls.d | 3 | ||||
-rw-r--r-- | src/fields/ScriptField.ts | 10 |
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() { |