(languagesOnly = null)
| 36 | * as the basis for the siteTree after we do some versioning. We can also use it to derive the pageList. |
| 37 | */ |
| 38 | export async function loadUnversionedTree(languagesOnly = null) { |
| 39 | if (languagesOnly && !Array.isArray(languagesOnly)) { |
| 40 | throw new Error("'languagesOnly' has to be an array") |
| 41 | } |
| 42 | const unversionedTree = {} |
| 43 | unversionedTree.en = await createTree(path.join(languages.en.dir, 'content')) |
| 44 | |
| 45 | const languagesValues = Object.entries(languages) |
| 46 | .filter(([language]) => { |
| 47 | return !languagesOnly || languagesOnly.includes(language) |
| 48 | }) |
| 49 | .map(([, data]) => { |
| 50 | return data |
| 51 | }) |
| 52 | |
| 53 | await Promise.all( |
| 54 | languagesValues |
| 55 | .filter((langObj) => langObj.code !== 'en') |
| 56 | .map(async (langObj) => { |
| 57 | const localizedContentPath = path.join(langObj.dir, 'content') |
| 58 | unversionedTree[langObj.code] = await translateTree( |
| 59 | localizedContentPath, |
| 60 | langObj, |
| 61 | unversionedTree.en |
| 62 | ) |
| 63 | }) |
| 64 | ) |
| 65 | |
| 66 | return unversionedTree |
| 67 | } |
| 68 | |
| 69 | async function translateTree(dir, langObj, enTree) { |
| 70 | const item = {} |
no test coverage detected