(unversionedTree)
| 193 | * Order of languages and versions doesn't matter, but order of child page arrays DOES matter (for navigation). |
| 194 | */ |
| 195 | export async function loadSiteTree(unversionedTree) { |
| 196 | const rawTree = Object.assign({}, unversionedTree || (await loadUnversionedTree())) |
| 197 | const siteTree = {} |
| 198 | |
| 199 | // For every language... |
| 200 | await Promise.all( |
| 201 | Object.keys(languages).map(async (langCode) => { |
| 202 | const treePerVersion = {} |
| 203 | // in every version... |
| 204 | await Promise.all( |
| 205 | versions.map(async (version) => { |
| 206 | // "version" the pages. |
| 207 | treePerVersion[version] = await versionPages( |
| 208 | Object.assign({}, rawTree[langCode]), |
| 209 | version, |
| 210 | langCode |
| 211 | ) |
| 212 | }) |
| 213 | ) |
| 214 | |
| 215 | siteTree[langCode] = treePerVersion |
| 216 | }) |
| 217 | ) |
| 218 | |
| 219 | return siteTree |
| 220 | } |
| 221 | |
| 222 | export async function versionPages(obj, version, langCode) { |
| 223 | // Add a versioned href as a convenience for use in layouts. |
no test coverage detected