@@ -30,11 +30,21 @@ const TRANSLATION_DRIFT_EXCEPTIONS = [
3030 * first since it's the most expensive work. This gets us a nested object with pages attached that we can use
3131 * as the basis for the siteTree after we do some versioning. We can also use it to derive the pageList.
3232 */
33- export async function loadUnversionedTree ( ) {
33+ export async function loadUnversionedTree ( languagesOnly = null ) {
34+ if ( languagesOnly && ! Array . isArray ( languagesOnly ) ) {
35+ throw new Error ( "'languagesOnly' has to be an array" )
36+ }
3437 const unversionedTree = { }
3538
39+ const languagesValues = Object . entries ( languages )
40+ . filter ( ( [ language ] ) => {
41+ return ! languagesOnly || languagesOnly . includes ( language )
42+ } )
43+ . map ( ( [ , data ] ) => {
44+ return data
45+ } )
3646 await Promise . all (
37- Object . values ( languages ) . map ( async ( langObj ) => {
47+ languagesValues . map ( async ( langObj ) => {
3848 const localizedContentPath = path . posix . join ( __dirname , '..' , langObj . dir , 'content' )
3949 unversionedTree [ langObj . code ] = await createTree ( localizedContentPath , langObj )
4050 } )
@@ -129,7 +139,10 @@ export async function versionPages(obj, version, langCode, site) {
129139
130140// Derive a flat array of Page objects in all languages.
131141export async function loadPageList ( unversionedTree , languagesOnly = null ) {
132- const rawTree = unversionedTree || ( await loadUnversionedTree ( ) )
142+ if ( languagesOnly && ! Array . isArray ( languagesOnly ) ) {
143+ throw new Error ( "'languagesOnly' has to be an array" )
144+ }
145+ const rawTree = unversionedTree || ( await loadUnversionedTree ( languagesOnly ) )
133146 const pageList = [ ]
134147
135148 await Promise . all (
0 commit comments