aboutsummaryrefslogtreecommitdiff
path: root/src/fields/ScriptField.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-06-24 13:41:39 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-06-24 13:41:48 -0400
commitc9f77d5aab98e6e7865cdcad957d5c937631775d (patch)
tree3b8c3686bfdf0376177d8c20db7a3dc3170d19c7 /src/fields/ScriptField.ts
parent52051829373bc4acfe9d705b64c30e3fddebf439 (diff)
Added ReadOnly mode for docs and changed computed values a bit
Diffstat (limited to 'src/fields/ScriptField.ts')
-rw-r--r--src/fields/ScriptField.ts9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/fields/ScriptField.ts b/src/fields/ScriptField.ts
index ac46ccf90..dbca74720 100644
--- a/src/fields/ScriptField.ts
+++ b/src/fields/ScriptField.ts
@@ -3,7 +3,7 @@ import { CompiledScript, CompileScript } from "../client/util/Scripting";
import { Copy, ToScriptString, Parent, SelfProxy } from "../new_fields/FieldSymbols";
import { serializable, createSimpleSchema, map, primitive, object, deserialize, PropSchema, custom, SKIP } from "serializr";
import { Deserializable } from "../client/util/SerializationHelper";
-import { computed } from "mobx";
+import { Doc } from "../new_fields/Doc";
function optional(propSchema: PropSchema) {
return custom(value => {
@@ -23,6 +23,7 @@ const optionsSchema = createSimpleSchema({
requiredType: true,
addReturn: true,
typecheck: true,
+ readonly: true,
params: optional(map(primitive()))
});
@@ -86,9 +87,9 @@ export class ScriptField extends ObjectField {
@Deserializable("computed", deserializeScript)
export class ComputedField extends ScriptField {
- @computed
- get value() {
- const val = this._script.run({ this: (this[Parent] as any)[SelfProxy] });
+ //TODO maybe add an observable cache based on what is passed in for doc, considering there shouldn't really be that many possible values for doc
+ value(doc: Doc) {
+ const val = this._script.run({ this: doc });
if (val.success) {
return val.result;
}