@allgemein/eventbus
Version:
37 lines • 1.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.subscribe = subscribe;
exports.unsubscribe = unsubscribe;
const EventBusMeta_1 = require("../bus/EventBusMeta");
const lodash_1 = require("lodash");
function subscribe(eventClass, configuration = 'default', configurationOptions = null) {
return function (object, methodName, value) {
// can be used as annotation or directly for a special object
const target = value && object.constructor ? object.constructor : object;
if ((0, lodash_1.isFunction)(eventClass)) {
EventBusMeta_1.default.$().register({
type: 'subscribe',
target: target,
methodName: methodName,
eventClass: eventClass,
configuration: configuration,
configurationOptions: configurationOptions
});
}
else {
const options = eventClass;
EventBusMeta_1.default.$().register({
type: 'subscribe',
target: target,
methodName: methodName,
eventClass: options.eventClass,
configuration: options.configuration ? options.configuration : 'default',
configurationOptions: options.configurationOptions ? options.configurationOptions : null
});
}
};
}
function unsubscribe(target, eventClass, method) {
EventBusMeta_1.default.$().unregister(target, eventClass, method);
}
//# sourceMappingURL=subscribe.js.map