respond-framework
Version:
create as fast you think
32 lines (29 loc) • 963 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const findExistingProxy = (po, vns, cache, refIds, notify) => {
const vn = vns.get(po); // po is proxy
if (vn) {
// proxy assigned that exists elsewhere (po is proxy)
vn.parents.add(notify);
if (!refIds.has(vn.obj)) {
refIds.set(vn.obj, genId());
}
return po;
}
const proxy = cache.get(po); // po is object
if (proxy) {
// object assigned that exists somewhere else as a proxy (po is object)
const vn = vns.get(proxy);
vn.parents.add(notify);
if (!refIds.has(po)) {
refIds.set(po, genId());
}
return proxy;
}
};
var _default = exports.default = findExistingProxy;
const genId = () => start++;
let start = new Date().getTime(); // use time as initial count instead of 0 to avoid collisions between new and existing references after refreshes (where sessionStorage restores old references)