respond-framework
Version:
create as fast you think
26 lines (24 loc) • 767 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _utils = require("./utils.js");
var _createProxy = require("../createProxy.js");
const createHandler = (vns, cache, refIds, notify) => ({
deleteProperty(o, k) {
if (!o.hasOwnProperty(k)) return true;
delete o[k];
notify();
return true;
},
set(o, k, v) {
const prev = o[k];
if (prev === v) return true; // re-assigning same proxy (or primitive value)
if (prev && prev === cache.get(v)) return true; // re-assigning same underlying object
o[k] = (0, _utils.canProxy)(v) ? (0, _createProxy.default)(v, vns, cache, refIds, notify) : v;
notify();
return true;
}
});
var _default = exports.default = createHandler;