@@ -282,12 +282,15 @@ export class BaseDataService<T extends CacheableObject> implements HALDataServic
282282 // Ensure all followLinks from the cached object are automatically invalidated when invalidating the cached object
283283 tap ( ( remoteDataObject : RemoteData < T > ) => {
284284 if ( hasValue ( remoteDataObject ?. payload ?. _links ) ) {
285- for ( const followLink of Object . values ( remoteDataObject . payload . _links ) ) {
286- // followLink can be either an individual HALLink or a HALLink[]
287- const followLinksList : HALLink [ ] = [ ] . concat ( followLink ) ;
288- for ( const individualFollowLink of followLinksList ) {
289- if ( hasValue ( individualFollowLink ?. href ) ) {
290- this . addDependency ( response$ , individualFollowLink . href ) ;
285+ for ( const followLinkName of Object . keys ( remoteDataObject . payload . _links ) ) {
286+ // only add the followLinks if they are embedded
287+ if ( hasValue ( remoteDataObject . payload [ followLinkName ] ) && followLinkName !== 'self' ) {
288+ // followLink can be either an individual HALLink or a HALLink[]
289+ const followLinksList : HALLink [ ] = [ ] . concat ( remoteDataObject . payload . _links [ followLinkName ] ) ;
290+ for ( const individualFollowLink of followLinksList ) {
291+ if ( hasValue ( individualFollowLink ?. href ) ) {
292+ this . addDependency ( response$ , individualFollowLink . href ) ;
293+ }
291294 }
292295 }
293296 }
@@ -334,12 +337,15 @@ export class BaseDataService<T extends CacheableObject> implements HALDataServic
334337 if ( hasValue ( remoteDataObject ?. payload ?. page ) ) {
335338 for ( const object of remoteDataObject . payload . page ) {
336339 if ( hasValue ( object ?. _links ) ) {
337- for ( const followLink of Object . values ( object . _links ) ) {
338- // followLink can be either an individual HALLink or a HALLink[]
339- const followLinksList : HALLink [ ] = [ ] . concat ( followLink ) ;
340- for ( const individualFollowLink of followLinksList ) {
341- if ( hasValue ( individualFollowLink ?. href ) ) {
342- this . addDependency ( response$ , individualFollowLink . href ) ;
340+ for ( const followLinkName of Object . keys ( object . _links ) ) {
341+ // only add the followLinks if they are embedded
342+ if ( hasValue ( object [ followLinkName ] ) && followLinkName !== 'self' ) {
343+ // followLink can be either an individual HALLink or a HALLink[]
344+ const followLinksList : HALLink [ ] = [ ] . concat ( object . _links [ followLinkName ] ) ;
345+ for ( const individualFollowLink of followLinksList ) {
346+ if ( hasValue ( individualFollowLink ?. href ) ) {
347+ this . addDependency ( response$ , individualFollowLink . href ) ;
348+ }
343349 }
344350 }
345351 }
0 commit comments