aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/debug/Test.tsx50
-rw-r--r--src/server/index.ts14
2 files changed, 35 insertions, 29 deletions
diff --git a/src/debug/Test.tsx b/src/debug/Test.tsx
index 6a677f80f..47cfac2c1 100644
--- a/src/debug/Test.tsx
+++ b/src/debug/Test.tsx
@@ -46,34 +46,34 @@ class Test extends React.Component {
doc.fields = "test";
doc.test = "hello doc";
doc.url = url;
- doc.testDoc = doc2;
+ //doc.testDoc = doc2;
- const test1: TestDoc = TestDoc(doc);
- const test2: Test2Doc = Test2Doc(doc);
- assert(test1.hello === 5);
- assert(test1.fields === undefined);
- assert(test1.test === "hello doc");
- assert(test1.url === url);
- assert(test1.testDoc === doc2);
- test1.myField = 20;
- assert(test1.myField === 20);
+ // const test1: TestDoc = TestDoc(doc);
+ // const test2: Test2Doc = Test2Doc(doc);
+ // assert(test1.hello === 5);
+ // assert(test1.fields === undefined);
+ // assert(test1.test === "hello doc");
+ // assert(test1.url === url);
+ // //assert(test1.testDoc === doc2);
+ // test1.myField = 20;
+ // assert(test1.myField === 20);
- assert(test2.hello === undefined);
- // assert(test2.fields === "test");
- assert(test2.test === undefined);
- assert(test2.url === undefined);
- assert(test2.testDoc === undefined);
- test2.url = 35;
- assert(test2.url === 35);
- const l = new List<number>();
- //TODO push, and other array functions don't go through the proxy
- l.push(1);
- //TODO currently length, and any other string fields will get serialized
- l.length = 3;
- l[2] = 5;
- console.log(l.slice());
- console.log(SerializationHelper.Serialize(l));
+ // assert(test2.hello === undefined);
+ // // assert(test2.fields === "test");
+ // assert(test2.test === undefined);
+ // assert(test2.url === undefined);
+ // assert(test2.testDoc === undefined);
+ // test2.url = 35;
+ // assert(test2.url === 35);
+ // const l = new List<number>();
+ // //TODO push, and other array functions don't go through the proxy
+ // l.push(1);
+ // //TODO currently length, and any other string fields will get serialized
+ // l.length = 3;
+ // l[2] = 5;
+ // console.log(l.slice());
+ // console.log(SerializationHelper.Serialize(l));
}
render() {
diff --git a/src/server/index.ts b/src/server/index.ts
index 464d3f68f..b57e5c482 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -295,23 +295,29 @@ function UpdateField(socket: Socket, diff: Diff) {
//console.log("set field");
//}
const docid = { id: diff.id };
- const docfield = diff.diff;
+ var docfield = diff.diff;
+ docfield = JSON.parse(JSON.stringify(docfield).split("fields.").join(""));
console.log("FIELD: ", docfield);
var dynfield = false;
for (var key in docfield) {
const val = docfield[key];
if (typeof val === 'number') {
- key = key + "_n";
+ const new_key: string = key + "_n";
+ docfield = JSON.parse(JSON.stringify(docfield).split(key).join(new_key));
+ //docfield[new_key] = { 'set': val };
dynfield = true;
}
else if (typeof val === 'string') {
- key = key + "_t";
+ const new_key: string = key + "_t";
+ docfield = JSON.parse(JSON.stringify(docfield).split(key).join(new_key));
+ docfield[new_key] = { 'set': val };
dynfield = true;
}
- console.log(key);
}
var merged = {};
_.extend(merged, docid, docfield);
+ console.log(merged);
+ console.log(docfield);
if (dynfield) {
console.log("dynamic field detected!");
Search.Instance.updateDocument(merged);