dana/no-private-access-instance

This rule checks for code that you don’t access Dana private properties ($$data, $$instance, etc…)

Incorrect

export default $Class.declare("MyClass", {
    properties: {
        listModel: null
    },
    methods: {
        doStuff: function () {
            if ($SomeSingleton.$$instance) {
                $SomeSingleton.$$instance.someMethod();
            }
        },
        filterListModel: function () {
            this.listModel = new $ListModel();
            this.listModel.$$data.filter((a, b) => a - b)
        }
    }
});

Correct

export default $Class.declare("MyClass", {
    properties: {
        someSingleton: {
            class: $SomeSingleton
        },
        listModel: null
    },
    methods: {
        doStuff: function () {
            this.someSingleton.someMethod();
        },
        filterListModel: function () {
            this.listModel = new $ListModel();
            this.listModel.filter((a, b) => a - b)
        }
    }
});