@live-change/framework
Advanced tools
Comparing version 0.3.18 to 0.3.19
@@ -37,15 +37,11 @@ const ReactiveDao = require("@live-change/dao") | ||
if(options.idFromIndex) objectMapper = (obj, ind) => obj && ({ ...obj, id: ind.id, to: ind.to }) | ||
const objectChangeCallback = (id, ind) => { | ||
let object | ||
return async (objp) => { | ||
const obj = objectMapper(objp, ind) | ||
output.change(obj, object) | ||
object = obj | ||
} | ||
const mapper = async (res) => input.table(tableName).object(res.to).get() | ||
const objectStates = new Map() | ||
const objectChange = async (ind, oldInd) => { | ||
const obj = ind && ind.to && objectMapper(await mapper(ind), ind) | ||
const oldObj = oldInd && oldInd.to && objectMapper(await mapper(oldInd), oldInd) | ||
output.change(obj, oldObj) | ||
} | ||
const mapper = async (res) => input.table(tableName).object(res.to).get() | ||
await (await input.index(indexName)).range(range).onChange(async (obj, oldObj) => { | ||
let cb | ||
if(obj && obj.to) { | ||
cb = objectChangeCallback(obj.to, obj) | ||
const currentObserver = objectObservers.get(obj.to) | ||
@@ -56,3 +52,3 @@ if(currentObserver) { | ||
const reader = input.table(tableName).object(obj.to) | ||
const observer = await reader.onChange(obj => cb(obj)) | ||
const observer = await reader.onChange(obj => objectChange(obj, oldObj)) | ||
objectObservers.set(obj.to, { reader, observer }) | ||
@@ -65,7 +61,7 @@ } else if(oldObj && oldObj.to) { | ||
} | ||
cb(null) | ||
objectChange(null, oldObj) | ||
} | ||
output.change( | ||
obj && objectMapper(await mapper(obj), obj), | ||
objectMapper(oldObj && await mapper(oldObj), oldObj) | ||
oldObj && objectMapper( await mapper(oldObj), oldObj) | ||
) | ||
@@ -72,0 +68,0 @@ }) |
{ | ||
"name": "@live-change/framework", | ||
"version": "0.3.18", | ||
"version": "0.3.19", | ||
"description": "Live Change Framework - ultimate solution for real time mobile/web apps", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
124229
3434