ipc: add store
This commit is contained in:
parent
13dd731052
commit
a2ce686fdd
@ -79,6 +79,49 @@ window.Gluon = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const _store = {};
|
||||||
|
const updateBackend = (key, value) => { // update backend with a key/value change
|
||||||
|
Gluon.ipc.send('web store change', { key, value });
|
||||||
|
};
|
||||||
|
|
||||||
|
Gluon.ipc.store = new Proxy({
|
||||||
|
get: (key) => {
|
||||||
|
return _store[key];
|
||||||
|
},
|
||||||
|
|
||||||
|
set: (key) => {
|
||||||
|
_store[key] = value;
|
||||||
|
|
||||||
|
updateBackend(key, value);
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
keys: () => Object.keys(_store)
|
||||||
|
}, {
|
||||||
|
get(_obj, key) {
|
||||||
|
return _store[key];
|
||||||
|
},
|
||||||
|
|
||||||
|
set(_obj, key, value) {
|
||||||
|
_store[key] = value;
|
||||||
|
|
||||||
|
updateBackend(key, value);
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
deleteProperty(_obj, key) {
|
||||||
|
delete _store[key];
|
||||||
|
|
||||||
|
updateBackend(key, undefined);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Gluon.ipc.on('backend store change', ({ key, value }) => {
|
||||||
|
if (value === undefined) delete _store[key];
|
||||||
|
else _store[key] = value;
|
||||||
|
});
|
||||||
|
|
||||||
delete window._gluonSend;
|
delete window._gluonSend;
|
||||||
})();`;
|
})();`;
|
||||||
|
|
||||||
@ -178,6 +221,50 @@ delete window._gluonSend;
|
|||||||
|
|
||||||
API.unexpose = unexpose;
|
API.unexpose = unexpose;
|
||||||
|
|
||||||
|
const _store = {};
|
||||||
|
const updateWeb = (key, value) => { // update web with a key/value change
|
||||||
|
API.send('backend store change', { key, value });
|
||||||
|
};
|
||||||
|
|
||||||
|
API.store = new Proxy({
|
||||||
|
get: (key) => {
|
||||||
|
return _store[key];
|
||||||
|
},
|
||||||
|
|
||||||
|
set: (key) => {
|
||||||
|
_store[key] = value;
|
||||||
|
|
||||||
|
updateWeb(key, value);
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
keys: () => Object.keys(_store)
|
||||||
|
}, {
|
||||||
|
get(_obj, key) {
|
||||||
|
return _store[key];
|
||||||
|
},
|
||||||
|
|
||||||
|
set(_obj, key, value) {
|
||||||
|
_store[key] = value;
|
||||||
|
|
||||||
|
updateWeb(key, value);
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
|
||||||
|
deleteProperty(_obj, key) {
|
||||||
|
delete _store[key];
|
||||||
|
|
||||||
|
updateWeb(key, undefined);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
API.on('web store change', ({ key, value }) => {
|
||||||
|
console.log('web store change', key, value);
|
||||||
|
if (value === undefined) delete _store[key];
|
||||||
|
else _store[key] = value;
|
||||||
|
});
|
||||||
|
|
||||||
API = new Proxy(API, { // setter and deleter API
|
API = new Proxy(API, { // setter and deleter API
|
||||||
set(_obj, key, value) {
|
set(_obj, key, value) {
|
||||||
expose(key, value);
|
expose(key, value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user