MCPcopy Create free account
hub / github.com/freeCodeCamp/freeCodeCamp / parseCurriculumStructure

Function parseCurriculumStructure

curriculum/src/build-curriculum.ts:391–415  ·  view source on GitHub ↗
(filter?: Filter)

Source from the content-addressed store, hash-verified

389}
390
391export 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
417export async function buildCurriculum(lang: string, filters?: Filter) {
418 // Block validation assumes the entire block is being built, if that's not the

Callers 3

getAllBlocksFunction · 0.90
buildCurriculumFunction · 0.85
mainFunction · 0.85

Calls 6

getCurriculumStructureFunction · 0.85
getBlockStructureDirFunction · 0.85
validateBlocksFunction · 0.85
addBlockStructureFunction · 0.85
addSuperblockStructureFunction · 0.85
closestFiltersFunction · 0.85

Tested by

no test coverage detected