vue-nonreactivity-decorator
Version:
Non reactivity property decorator for vue-class-component
30 lines (29 loc) • 909 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const NON_REACTIVITY = new WeakMap;
function ensureMap(component) {
if (!NON_REACTIVITY.has(component)) {
NON_REACTIVITY.set(component, new Map);
}
return NON_REACTIVITY.get(component);
}
function setNonReactivity(component, key, value) {
ensureMap(component).set(key, value);
}
function getNonReactivity(component, key) {
return ensureMap(component).get(key);
}
function NonReactivity(value) {
return function (target, property) {
setNonReactivity(target, property, value);
Object.defineProperty(target, property, {
get() {
return getNonReactivity(target, property);
},
set(v) {
setNonReactivity(target, property, v);
}
});
};
}
exports.default = NonReactivity;