@ayanaware/bento
Version:
Modular runtime framework designed to solve complex tasks
24 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Subscribe = exports.getSubscriptions = void 0;
const SUBSCRIBE_KEY = '@ayanaware/bento:Subscribe';
// eslint-disable-next-line @typescript-eslint/ban-types
function getSubscriptions(target) {
const subscriptions = Reflect.getMetadata(SUBSCRIBE_KEY, target);
if (!Array.isArray(subscriptions))
return [];
return subscriptions;
}
exports.getSubscriptions = getSubscriptions;
function Subscribe(reference, event) {
return (target, propertyKey, descriptor) => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
if (target.prototype === undefined)
target = target.constructor;
const subscriptions = Reflect.getMetadata(SUBSCRIBE_KEY, target) || [];
subscriptions.push({ reference, event, handler: descriptor.value });
Reflect.defineMetadata(SUBSCRIBE_KEY, subscriptions, target);
};
}
exports.Subscribe = Subscribe;
//# sourceMappingURL=Subscribe.js.map