childEntity
childEntity
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 parent entity does not have the id of the related entity, but the related entity has the id of the parent entity.
declare function childEntity(
entityStateSelector,
keyId,
keyValue,
...relationships
);
entityStateSelector
- is an entity state selector of a desired entity.keyId
- a property name in the related entity which points to the id of the parent entity,addressId
fromAddress.id -> Company.addressId
.keyValue
- a property name in the parent entity where the related entity should be assigned,company
fromAddress.company
.relationships
- is an optional parameter which accepts relationship selectors for the related entity.
An example is the Address
. Its model has company
, but does not have companyId
.
However, Company
entity has addressId
.
Therefore, if we want a root selector which fetches an address with its company it might look like:
const address = rootEntity(
selectAddressState,
childEntity(
selectCompanyState,
'addressId',
'company',
),
);