@@ -828,27 +828,49 @@ export default class SharedDocUtil extends SharedUtil
828828 exDirs = await fs . promises . readdir ( collectionPath ) ;
829829 }
830830 catch ( e ) { }
831+ let allOpNames = [ ] ;
831832 exDirs . forEach ( ( extensionName ) =>
832833 {
833- if ( ! publicOnly )
834+ if ( this . _opsUtil . isOpNameValid ( extensionName ) )
834835 {
835- const extensionOps = this . _opsUtil . getCollectionOpNames ( extensionName ) ;
836- if ( extensionOps . length > 0 )
836+ if ( ! publicOnly )
837837 {
838- const extDocs = this . getExtensionDoc ( extensionName , filterOldVersions , filterDeprecated ) ;
839- if ( extDocs ) extensions . push ( extDocs ) ;
838+
839+ const extDocs = this . getExtensionDoc ( extensionName ) ;
840+ if ( extDocs && extDocs . ops . length > 0 )
841+ {
842+ extensions . push ( extDocs ) ;
843+ allOpNames = allOpNames . concat ( extDocs . ops ) ;
844+ }
840845 }
841- }
842- else if ( this . _opsUtil . isExtension ( extensionName ) && this . _opsUtil . getCollectionVisibility ( extensionName ) === this . _opsUtil . VISIBILITY_PUBLIC )
843- {
844- const extensionOps = this . _opsUtil . getCollectionOpNames ( extensionName ) ;
845- if ( extensionOps . length > 0 )
846+ else if ( this . _opsUtil . isExtension ( extensionName ) && this . _opsUtil . getCollectionVisibility ( extensionName ) === this . _opsUtil . VISIBILITY_PUBLIC )
846847 {
847- const extDocs = this . getExtensionDoc ( extensionName , filterOldVersions , filterDeprecated ) ;
848- if ( extDocs ) extensions . push ( extDocs ) ;
848+
849+ const extDocs = this . getExtensionDoc ( extensionName ) ;
850+ if ( extDocs && extDocs . ops . length > 0 )
851+ {
852+ extensions . push ( extDocs ) ;
853+ allOpNames = allOpNames . concat ( extDocs . ops ) ;
854+ }
849855 }
850856 }
851857 } ) ;
858+
859+ if ( filterOldVersions || filterDeprecated )
860+ {
861+ let opDocs = this . _docsUtil . getOpDocsForCollections ( allOpNames ) ;
862+ opDocs = this . _opsUtil . addVersionInfoToOps ( opDocs ) ;
863+ if ( filterDeprecated ) allOpNames = allOpNames . filter ( ( opName ) => { return ! this . _opsUtil . isDeprecated ( opName ) ; } ) ;
864+ if ( filterOldVersions ) allOpNames = allOpNames . filter ( ( opName ) =>
865+ {
866+ return ! this . _opsUtil . isOpOldVersion ( opName , opDocs ) ;
867+ } ) ;
868+
869+ extensions . forEach ( ( extension ) =>
870+ {
871+ extension . ops = extension . ops . filter ( ( opName ) => { return allOpNames . includes ( opName ) ; } ) ;
872+ } ) ;
873+ }
852874 }
853875
854876 return extensions ;
0 commit comments