dana/no-import-bus-outside-services

This rule checks if class is well declared and prevents usage of event buses in other class than Service or Application.

Incorrect

export default $WtvObject.declare("MyClass", { // MyClass is not a service
    properties: {
        eventBus: {
            class: $EventBus
        }
    },
    constructor: function () {
        this.eventBus.subscribe('some.event', this._onSomeEventEmitted, this);
    }
});

Incorrect

export default $Abstract.declare("MyService", { // MyService is a service
    properties: {
        eventBus: {
            class: $EventBus
        }
    },
    constructor: function () {
        this.eventBus.subscribe("some.event", this._onSomeEventEmitted, this);
    }
});