@@ -114,6 +114,25 @@ export default class Entries {
114114 return refToList . includes ( refCtUid ) ;
115115 }
116116
117+ /**
118+ * If ref CT is not allowed, pushes to missingRefs.
119+ * @returns true if invalid (pushed), false if valid
120+ */
121+ private addInvalidRefIfNeeded (
122+ missingRefs : Record < string , any > [ ] ,
123+ uidValue : string ,
124+ refCtUid : string | undefined ,
125+ referenceTo : string | string [ ] | undefined ,
126+ fullRef : any ,
127+ logLabel : string ,
128+ ) : boolean {
129+ if ( this . isRefContentTypeAllowed ( refCtUid , referenceTo ) ) return false ;
130+ log . debug ( `${ logLabel } has wrong content type: ${ refCtUid } not in reference_to` ) ;
131+ const refList = Array . isArray ( referenceTo ) ? referenceTo : referenceTo != null ? [ referenceTo ] : [ ] ;
132+ missingRefs . push ( refList . length === 1 ? { uid : uidValue , _content_type_uid : refCtUid } : fullRef ) ;
133+ return true ;
134+ }
135+
117136 /**
118137 * The `run` function checks if a folder path exists, sets the schema based on the module name,
119138 * iterates over the schema and looks for references, and returns a list of missing references.
@@ -920,10 +939,7 @@ export default class Entries {
920939 }
921940 } else {
922941 const refCtUid = refExist . ctUid ;
923- if ( ! this . isRefContentTypeAllowed ( refCtUid , reference_to ) ) {
924- log . debug ( `Reference ${ reference } has wrong content type: ${ refCtUid } not in reference_to` ) ;
925- missingRefs . push ( refToList . length === 1 ? { uid : reference , _content_type_uid : refCtUid } : reference ) ;
926- } else {
942+ if ( ! this . addInvalidRefIfNeeded ( missingRefs , reference , refCtUid , reference_to , reference , `Reference ${ reference } ` ) ) {
927943 log . debug ( `Reference ${ reference } is valid` ) ;
928944 }
929945 }
@@ -939,10 +955,7 @@ export default class Entries {
939955 missingRefs . push ( reference ) ;
940956 } else {
941957 const refCtUid = reference . _content_type_uid ?? refExist . ctUid ;
942- if ( ! this . isRefContentTypeAllowed ( refCtUid , reference_to ) ) {
943- log . debug ( `Reference ${ uid } has wrong content type: ${ refCtUid } not in reference_to` ) ;
944- missingRefs . push ( refToList . length === 1 ? { uid, _content_type_uid : refCtUid } : reference ) ;
945- } else {
958+ if ( ! this . addInvalidRefIfNeeded ( missingRefs , uid , refCtUid , reference_to , reference , `Reference ${ uid } ` ) ) {
946959 log . debug ( `Reference ${ uid } is valid` ) ;
947960 }
948961 }
@@ -1720,13 +1733,7 @@ export default class Entries {
17201733 }
17211734 } else {
17221735 const refCtUid = reference . _content_type_uid ?? refExist . ctUid ;
1723- if ( ! this . isRefContentTypeAllowed ( refCtUid , reference_to ) ) {
1724- log . debug ( `Blt reference ${ reference } has wrong content type: ${ refCtUid } not in reference_to` ) ;
1725- missingRefs . push (
1726- Array . isArray ( reference_to ) && reference_to . length === 1
1727- ? { uid : reference , _content_type_uid : refCtUid }
1728- : reference ,
1729- ) ;
1736+ if ( this . addInvalidRefIfNeeded ( missingRefs , reference , refCtUid , reference_to , reference , `Blt reference ${ reference } ` ) ) {
17301737 return null ;
17311738 }
17321739 log . debug ( `Blt reference ${ reference } is valid` ) ;
@@ -1741,13 +1748,7 @@ export default class Entries {
17411748 return null ;
17421749 } else {
17431750 const refCtUid = reference . _content_type_uid ?? refExist . ctUid ;
1744- if ( ! this . isRefContentTypeAllowed ( refCtUid , reference_to ) ) {
1745- log . debug ( `Reference ${ uid } has wrong content type: ${ refCtUid } not in reference_to` ) ;
1746- missingRefs . push (
1747- Array . isArray ( reference_to ) && reference_to . length === 1
1748- ? { uid, _content_type_uid : refCtUid }
1749- : reference ,
1750- ) ;
1751+ if ( this . addInvalidRefIfNeeded ( missingRefs , uid , refCtUid , reference_to , reference , `Reference ${ uid } ` ) ) {
17511752 return null ;
17521753 }
17531754 log . debug ( `Reference ${ uid } is valid` ) ;
0 commit comments