diff --git a/backend/src/services/learning-paths/database-learning-path-provider.ts b/backend/src/services/learning-paths/database-learning-path-provider.ts index fa8f42c6..8cd6807b 100644 --- a/backend/src/services/learning-paths/database-learning-path-provider.ts +++ b/backend/src/services/learning-paths/database-learning-path-provider.ts @@ -29,7 +29,7 @@ async function getLearningObjectsForNodes(nodes: LearningPathNode[]): Promise it === null)) { + if (Array.from(nullableNodesToLearningObjects.values()).some((it) => it === null)) { throw new Error('At least one of the learning objects on this path could not be found.'); } return nullableNodesToLearningObjects as Map; @@ -41,15 +41,11 @@ async function getLearningObjectsForNodes(nodes: LearningPathNode[]): Promise { const nodesToLearningObjects: Map = await getLearningObjectsForNodes(learningPath.nodes); - const targetAges = nodesToLearningObjects - .values() - .flatMap((it) => it.targetAges || []) - .toArray(); + const targetAges = Array.from(nodesToLearningObjects.values()) + .flatMap((it) => it.targetAges || []); - const keywords = nodesToLearningObjects - .values() - .flatMap((it) => it.keywords || []) - .toArray(); + const keywords = Array.from(nodesToLearningObjects.values()) + .flatMap((it) => it.keywords || []); const image = learningPath.image ? learningPath.image.toString('base64') : undefined; @@ -83,8 +79,7 @@ async function convertNodes( nodesToLearningObjects: Map, personalizedFor?: PersonalizationTarget ): Promise { - const nodesPromise = nodesToLearningObjects - .entries() + const nodesPromise = Array.from(nodesToLearningObjects.entries()) .map(async (entry) => { const [node, learningObject] = entry; const lastSubmission = personalizedFor ? await getLastSubmissionForCustomizationTarget(node, personalizedFor) : null; @@ -102,8 +97,7 @@ async function convertNodes( ) .map((trans, i) => convertTransition(trans, i, nodesToLearningObjects)), // Then convert all the transition }; - }) - .toArray(); + }); return await Promise.all(nodesPromise); }