feat(): Pluralized props for list readonly link (#14190)

* feat(): Pluralized props for list readonly link

* Create perfect-jeans-end.md

* handle backward compat

* Add tests case
This commit is contained in:
Adrien de Peretti
2025-12-10 19:38:06 +01:00
committed by GitHub
parent bca145bdbe
commit fd3965974d
3 changed files with 102 additions and 15 deletions

View File

@@ -517,24 +517,45 @@ ${serviceBObj.module}: {
}`)
}
const extendsConfig: ModuleJoinerConfig["extends"] = [
{
serviceName: serviceAObj.module,
entity: serviceAObj.entity,
fieldAlias: buildFieldAlias(readOnlyLinkOptions?.shortcut),
relationship: {
serviceName: serviceBObj.module,
entity: serviceBObj.entity,
primaryKey: serviceBObj.primaryKey,
foreignKey: serviceAObj.field,
alias: serviceBObj.alias,
isList: readOnlyLinkOptions?.isList ?? serviceAObj.isList,
},
},
]
if (readOnlyLinkOptions?.isList || serviceAObj.isList) {
extendsConfig.push({
serviceName: serviceAObj.module,
entity: serviceAObj.entity,
fieldAlias: buildFieldAlias(readOnlyLinkOptions?.shortcut),
relationship: {
serviceName: serviceBObj.module,
entity: serviceBObj.entity,
primaryKey: serviceBObj.primaryKey,
foreignKey: serviceAObj.field,
alias:
readOnlyLinkOptions?.isList ?? serviceAObj.isList
? pluralize(serviceBObj.alias)
: serviceBObj.alias,
isList: readOnlyLinkOptions?.isList ?? serviceAObj.isList,
},
})
}
return {
isLink: true,
isReadOnlyLink: true,
extends: [
{
serviceName: serviceAObj.module,
entity: serviceAObj.entity,
fieldAlias: buildFieldAlias(readOnlyLinkOptions?.shortcut),
relationship: {
serviceName: serviceBObj.module,
entity: serviceBObj.entity,
primaryKey: serviceBObj.primaryKey,
foreignKey: serviceAObj.field,
alias: serviceBObj.alias,
isList: readOnlyLinkOptions?.isList ?? serviceAObj.isList,
},
},
],
extends: extendsConfig,
}
}