relatedEntity
relatedEntity
is a relationship selector factory,
its call produces a relationship selector which can be used within root selectors and another suitable relationship selectors.
It is useful when the id of the related entity is stored in the parent entity.
declare function relatedEntity(
entityStateSelector,
keyId,
keyValue,
...relationships
);
entityStateSelector
- is an entity state selector of a desired entity.keyId
- a property name in the parent entity which points to the id of the related entity,companyId
fromUser.companyId -> Company.id
.keyValue
- a property name in the parent entity where the related entity should be assigned,company
fromUser.company
if
keyId
is an array of ids, thenkeyValue
has to be an array of the related entities too.relationships
- is an optional parameter which accepts relationship selectors for the parent entity.
An example is the User
. Its model has companyId
, company
,
and there is selectCompanyState
that returns EntityState<Company>
.
Therefore, if we want a root selector which fetches a user with its company it might look like:
const user = rootEntity(
selectUserState,
relatedEntity(
selectCompanyState,
'companyId',
'company',
),
);