24 lines
803 B
TypeScript
24 lines
803 B
TypeScript
import { isDefined } from '~/utils/isDefined';
|
|
|
|
import { ActivityTargetableObject } from '../types/ActivityTargetableEntity';
|
|
|
|
export const flattenTargetableObjectsAndTheirRelatedTargetableObjects = (
|
|
targetableObjectsWithRelatedTargetableObjects: ActivityTargetableObject[],
|
|
): ActivityTargetableObject[] => {
|
|
const flattenedTargetableObjects: ActivityTargetableObject[] = [];
|
|
|
|
for (const targetableObject of targetableObjectsWithRelatedTargetableObjects ??
|
|
[]) {
|
|
flattenedTargetableObjects.push(targetableObject);
|
|
|
|
if (isDefined(targetableObject.relatedTargetableObjects)) {
|
|
for (const relatedEntity of targetableObject.relatedTargetableObjects ??
|
|
[]) {
|
|
flattenedTargetableObjects.push(relatedEntity);
|
|
}
|
|
}
|
|
}
|
|
|
|
return flattenedTargetableObjects;
|
|
};
|