Skip to main content

Circular dependency

To fix WARNING in Circular dependency detected, simply repeat the rule #1 and put the created selectors into a separate file.

A file, where we have entity state selectors (anything, but not root selectors with relationships): store.ts

export const selectUserState =  createFeatureSelector<fromUser.State>(    'users',  );export const selectCompanyState =  createFeatureSelector<fromCompany.State>(    'companies',  );export const selectAddressState =  createFeatureSelector<fromAddress.State>(    'addresses',  );

A separate file, where we import all entity state selectors and declare root selectors with relationships: selectors.ts

import {  selectUserState,  selectCompanyState,  selectAddressState,} from 'store.ts';
export const selectUser = rootEntity(  selectUserState,
  relatedEntity(    selectCompanyState,    'companyId',    'company',
    relatedEntity(      selectAddressState,      'addressId',      'address',    ),  ),);

This approach helps to solve circular dependencies.