docs-util: normalize primary key types in DML (#7941)

This commit is contained in:
Shahed Nasser
2024-07-04 17:35:24 +03:00
committed by GitHub
parent 525363630e
commit 20be64e799

View File

@@ -19,6 +19,7 @@ export function load(app: Application) {
Converter.EVENT_CREATE_DECLARATION,
(_context: Context, reflection: DeclarationReflection) => {
normalizeNullable(reflection)
normalizePrimary(reflection)
},
2
)
@@ -29,7 +30,7 @@ function normalizeNullable(reflection: DeclarationReflection) {
reflection.type?.type !== "reference" ||
reflection.type.name !== "NullableModifier" ||
!reflection.type.typeArguments ||
reflection.type.typeArguments?.length < 2
reflection.type.typeArguments.length < 2
) {
return
}
@@ -45,3 +46,24 @@ function normalizeNullable(reflection: DeclarationReflection) {
// set a flag on the property to consider it optional
reflection.setFlag(ReflectionFlag.Optional)
}
function normalizePrimary(reflection: DeclarationReflection) {
if (
reflection.type?.type !== "reference" ||
reflection.type.name !== "PrimaryKeyModifier" ||
!reflection.type.typeArguments ||
reflection.type.typeArguments.length < 2
) {
return
}
const actualType = reflection.type.typeArguments[1]
if (actualType.type !== "reference") {
return
}
// change the type argument of primary key modifier to have one type argument
// being the actual type
reflection.type.typeArguments = [actualType]
}