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

Function getContentConfig

curriculum/src/file-handler.ts:48–92  ·  view source on GitHub ↗
(
  lang: string,
  { baseDir, i18nBaseDir } = {
    baseDir: CURRICULUM_DIR,
    i18nBaseDir: I18N_CURRICULUM_DIR
  }
)

Source from the content-addressed store, hash-verified

46 * @throws {AssertionError} When required i18n directories don't exist for non-English languages
47 */
48export function getContentConfig(
49 lang: string,
50 { baseDir, i18nBaseDir } = {
51 baseDir: CURRICULUM_DIR,
52 i18nBaseDir: I18N_CURRICULUM_DIR
53 }
54) {
55 const contentDir = resolve(baseDir, 'challenges', 'english');
56 const i18nContentDir = resolve(i18nBaseDir, 'challenges', lang);
57 const blockContentDir = resolve(contentDir, 'blocks');
58 const i18nBlockContentDir = resolve(i18nContentDir, 'blocks');
59 const dictionariesDir = resolve(baseDir, 'dictionaries');
60 const i18nDictionariesDir = resolve(i18nBaseDir, 'dictionaries');
61
62 if (lang !== 'english') {
63 assert(
64 existsSync(i18nContentDir),
65 `i18n content directory does not exist: ${i18nContentDir}`
66 );
67 assert(
68 existsSync(i18nBlockContentDir),
69 `i18n block content directory does not exist: ${i18nBlockContentDir}`
70 );
71 assert(
72 existsSync(i18nDictionariesDir),
73 `i18n dictionaries directory does not exist: ${i18nDictionariesDir}`
74 );
75 }
76
77 log(`Using content directory: ${contentDir}`);
78 log(`Using i18n content directory: ${i18nContentDir}`);
79 log(`Using block content directory: ${blockContentDir}`);
80 log(`Using i18n block content directory: ${i18nBlockContentDir}`);
81 log(`Using dictionaries directory: ${dictionariesDir}`);
82 log(`Using i18n dictionaries directory: ${i18nDictionariesDir}`);
83
84 return {
85 contentDir,
86 i18nContentDir,
87 blockContentDir,
88 i18nBlockContentDir,
89 dictionariesDir,
90 i18nDictionariesDir
91 };
92}
93
94/**
95 * Gets the appropriate content directory path for a given language

Callers 4

createDialogueChallengeFunction · 0.90
renameBlockFunction · 0.90
getContentDirFunction · 0.85
createBlockFolderFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected