weaked
Version:
weak decorator, wraps it with a WeakRef descriptor
18 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Weaked = void 0;
function Weaked() {
return function (target, propertyKey) {
let sym = Symbol('WeakRef-' + (propertyKey.toString()));
Object.defineProperty(target, propertyKey, {
get() {
return this[sym]?.deref();
},
set(v) {
this[sym] = typeof v === 'object' && v ? new WeakRef(v) : undefined;
},
});
};
}
exports.Weaked = Weaked;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsTUFBTTtJQUVsQixPQUFPLFVBQVUsTUFBTSxFQUFFLFdBQVc7UUFDaEMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO1lBQ3ZDLEdBQUc7Z0JBQ0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELEdBQUcsQ0FBQyxDQUFTO2dCQUNULElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hGLENBQUM7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDLENBQUE7QUFDTCxDQUFDO0FBZEQsd0JBY0MifQ==