(filter?: Filter)
| 389 | } |
| 390 | |
| 391 | export async function parseCurriculumStructure(filter?: Filter) { |
| 392 | const curriculum = getCurriculumStructure(); |
| 393 | const blockStructureDir = getBlockStructureDir(); |
| 394 | if (isEmpty(curriculum.superblocks)) |
| 395 | throw Error('No superblocks found in curriculum.json'); |
| 396 | if (isEmpty(curriculum.certifications)) |
| 397 | throw Error('No certifications found in curriculum.json'); |
| 398 | log(`Found ${curriculum.superblocks.length} superblocks to build`); |
| 399 | log(`Found ${curriculum.certifications.length} certifications to build`); |
| 400 | |
| 401 | validateBlocks(curriculum.superblocks, blockStructureDir); |
| 402 | |
| 403 | const superblockList = addBlockStructure( |
| 404 | addSuperblockStructure(curriculum.superblocks) |
| 405 | ); |
| 406 | const refinedFilter = closestFilters(superblockList, filter); |
| 407 | if (!isEmpty(filter)) { |
| 408 | console.log('Applied filter:', refinedFilter); |
| 409 | } |
| 410 | const fullSuperblockList = applyFilters(superblockList, refinedFilter); |
| 411 | return { |
| 412 | fullSuperblockList, |
| 413 | certifications: curriculum.certifications |
| 414 | }; |
| 415 | } |
| 416 | |
| 417 | export async function buildCurriculum(lang: string, filters?: Filter) { |
| 418 | // Block validation assumes the entire block is being built, if that's not the |
no test coverage detected