@@ -30,11 +30,21 @@ const TRANSLATION_DRIFT_EXCEPTIONS = [
30
30
* first since it's the most expensive work. This gets us a nested object with pages attached that we can use
31
31
* as the basis for the siteTree after we do some versioning. We can also use it to derive the pageList.
32
32
*/
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
+ }
34
37
const unversionedTree = { }
35
38
39
+ const languagesValues = Object . entries ( languages )
40
+ . filter ( ( [ language ] ) => {
41
+ return ! languagesOnly || languagesOnly . includes ( language )
42
+ } )
43
+ . map ( ( [ , data ] ) => {
44
+ return data
45
+ } )
36
46
await Promise . all (
37
- Object . values ( languages ) . map ( async ( langObj ) => {
47
+ languagesValues . map ( async ( langObj ) => {
38
48
const localizedContentPath = path . posix . join ( __dirname , '..' , langObj . dir , 'content' )
39
49
unversionedTree [ langObj . code ] = await createTree ( localizedContentPath , langObj )
40
50
} )
@@ -129,7 +139,10 @@ export async function versionPages(obj, version, langCode, site) {
129
139
130
140
// Derive a flat array of Page objects in all languages.
131
141
export 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 ) )
133
146
const pageList = [ ]
134
147
135
148
await Promise . all (
0 commit comments