@@ -20,9 +20,11 @@ class Linker {
2020 #dirs = [ ]
2121 #baseDir
2222 #docsDir
23- constructor ( { baseDir, docsDir } ) {
23+ #validateDocsLink
24+ constructor ( { baseDir, docsDir, validateDocsLink } ) {
2425 this . #baseDir = baseDir
2526 this . #docsDir = docsDir
27+ this . #validateDocsLink = validateDocsLink ?? ( ( ) => true )
2628 }
2729
2830 async getLinks ( allDirectories , readDir ) {
@@ -38,7 +40,7 @@ class Linker {
3840 } )
3941 . filter ( Boolean )
4042
41- this . #makeDocsLinks( allDirs . map ( ( d ) => d . raw ) )
43+ await this . #makeDocsLinks( allDirs . map ( ( d ) => d . raw ) )
4244
4345 this . #dirs = allDirs . filter ( ( d ) => semver . satisfies ( d , '~0.10 || ~0.12 || >= 1.0' ) ) . map ( ( d ) => d . raw )
4446 this . #dirs. sort ( ( d1 , d2 ) => semver . compare ( d1 , d2 ) )
@@ -70,15 +72,17 @@ class Linker {
7072 return this . #links
7173 }
7274
73- #makeDocsLinks ( versions ) {
75+ async #makeDocsLinks ( versions ) {
7476 if ( ! this . #docsDir) {
7577 return
7678 }
7779
7880 for ( const version of versions ) {
7981 const src = path . join ( this . #baseDir, version , 'docs' )
8082 const dst = path . join ( this . #docsDir, version )
81- this . #links. set ( dst , src )
83+ if ( await this . #validateDocsLink( src ) ) {
84+ this . #links. set ( dst , src )
85+ }
8286 }
8387 }
8488
0 commit comments