(
lang: string,
{ baseDir, i18nBaseDir } = {
baseDir: CURRICULUM_DIR,
i18nBaseDir: I18N_CURRICULUM_DIR
}
)
| 46 | * @throws {AssertionError} When required i18n directories don't exist for non-English languages |
| 47 | */ |
| 48 | export 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 |
no outgoing calls
no test coverage detected