@kitmi/utils
Version:
A JavaScript utility library for both server and browser
36 lines (35 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const unexistDelegate = (target, unexistHandler, immutable)=>{
const handlers = {
get (target, prop, receiver) {
if (prop in target) {
// eslint-disable-next-line no-undef
return Reflect.get(...arguments);
}
return unexistHandler(target, prop, receiver);
}
};
if (immutable) {
handlers.set = (_target, prop, _value, _receiver)=>{
throw new Error(`Cannot set property "${prop}" of immutable object.`);
};
handlers.deleteProperty = (_target, prop)=>{
throw new Error(`Cannot delete property "${prop}" of immutable object.`);
};
handlers.defineProperty = (_target, prop, _descriptor)=>{
throw new Error(`Cannot define property "${prop}" of immutable object.`);
};
}
return new Proxy(target, handlers);
};
const _default = unexistDelegate;
//# sourceMappingURL=unexistDelegate.js.map