You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Circular dependency between base-widget.ts and gridstack.component.ts #2955
There is a circular dependency between gridstack.component.ts and base-widget.ts, which in some scenarios will lead to errors. One of those scenario's can be found in the example below where we cannot extend from BaseWidget.
Worth mentioning is that we have other unit tests and other code in the same codebase that extend BaseWidget without any problems.
The issue was discovered in version 11.3.0, but has likely existed long before.
Example.
test-base-widget.spec.ts (jest unit test)
import { BaseWidget } from 'gridstack/dist/angular';
class TestComponent extends BaseWidget {}
it('test', () => {
// nothing
});
Running this unit test will throw the following error:
We have seen similar weird issues in the past with other code that were eventually tracked down to be caused by Circular Dependencies and often those circular dependencies had existed for a longer period of time, it just never manifested in errors before.
So it is just a matter of time before actual issues occur in other parts of a client's codebase.
I see BaseWidget doing import { NgCompInputs, NgGridStackWidget } from './gridstack.component';
so there is circular, BUT those changes are 21 months old so this isn't new so maybe something else ???
We have seen enough circular dependencies in the last few years to know that the order of imports can also matter for either seeing an error or not. So perhaps import changes of any of the dependencies might be the reason the problem never appeared before.
Activity
adumesny commentedon Feb 24, 2025
I see BaseWidget doing
import { NgCompInputs, NgGridStackWidget } from './gridstack.component';so there is circular, BUT those changes are 21 months old so this isn't new so maybe something else ???
d-luitwieler-anva commentedon Feb 24, 2025
We have seen enough circular dependencies in the last few years to know that the order of imports can also matter for either seeing an error or not. So perhaps import changes of any of the dependencies might be the reason the problem never appeared before.
fix /angular circular dependencies
fix /angular circular dependencies
adumesny commentedon Feb 25, 2025
hopefully fixed in next release...