vue-facing-decorator
Version:
Vue typescript class and decorator based component.
33 lines • 1.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.build = void 0;
const optionBuilder_1 = require("../optionBuilder");
const utils_1 = require("../utils");
function build(cons, optionBuilder) {
const slot = (0, utils_1.obtainSlot)(cons.prototype);
const vanillaMap = slot.getMap('vanilla');
if (!vanillaMap || vanillaMap.size === 0) {
return;
}
const protoArr = (0, utils_1.toComponentReverse)(cons.prototype);
const map = new Map;
(0, optionBuilder_1.applyAccessors)(optionBuilder, (ctx) => {
protoArr.forEach(proto => {
const deses = Object.getOwnPropertyDescriptors(proto);
for (const name in deses) {
const des = deses[name];
if (des && vanillaMap.has(name)) {
if (typeof des.get === 'function' || typeof des.set === 'function') {
map.set(name, {
set: typeof des.set === 'function' ? des.set.bind(ctx) : undefined,
get: typeof des.get === 'function' ? des.get.bind(ctx) : undefined,
});
}
}
}
});
return map;
});
}
exports.build = build;
//# sourceMappingURL=accessor.js.map
;