From 98e1b9eab31c378f4ef560c7d7fd1cbdba29e59d Mon Sep 17 00:00:00 2001 From: Sem Bauke Date: Mon, 8 Aug 2022 19:16:19 +0200 Subject: [PATCH] feat: add superblock intro to curriculum data API (#47161) * feat: add superblock intro to curriculum data API * fix: type correlation intro * fix: add key to Joi schema --- tools/scripts/build/build-external-curricula-data.ts | 10 ++++++++++ tools/scripts/build/external-data-schema.js | 1 + 2 files changed, 11 insertions(+) diff --git a/tools/scripts/build/build-external-curricula-data.ts b/tools/scripts/build/build-external-curricula-data.ts index a6c718220d4..0e6f0963337 100644 --- a/tools/scripts/build/build-external-curricula-data.ts +++ b/tools/scripts/build/build-external-curricula-data.ts @@ -11,6 +11,7 @@ interface IntroProps extends CurriculumProps { } interface CurriculumProps { + intro: string[]; blocks: Record; } @@ -73,6 +74,8 @@ export function buildExtCurriculumData( if (blockNames.length === 0) continue; superBlock[superBlockKey] = {}; + superBlock[superBlockKey]['intro'] = + getSuperBlockDescription(superBlockKey); superBlock[superBlockKey]['blocks'] = {}; for (let j = 0; j < blockNames.length; j++) { @@ -104,6 +107,13 @@ export function buildExtCurriculumData( return intros[superBlockKeys]['blocks'][blockKey]['intro']; } + function getSuperBlockDescription(superBlockKey: SuperBlocks): string[] { + const superBlockIntro = JSON.parse( + readFileSync(blockIntroPath, 'utf-8') + ) as Intro; + return superBlockIntro[superBlockKey]['intro']; + } + function getSuperBlockTitle(superBlock: SuperBlocks): string { const superBlocks = JSON.parse( readFileSync(blockIntroPath, 'utf-8') diff --git a/tools/scripts/build/external-data-schema.js b/tools/scripts/build/external-data-schema.js index 5072214e6f7..f6c50f85b09 100644 --- a/tools/scripts/build/external-data-schema.js +++ b/tools/scripts/build/external-data-schema.js @@ -19,6 +19,7 @@ const blockSchema = Joi.object({}).keys({ }); const subSchema = Joi.object({}).keys({ + intro: Joi.array(), blocks: Joi.object({}).pattern(Joi.string(), Joi.object().concat(blockSchema)) });