generate references (#7882)

This commit is contained in:
Shahed Nasser authored and GitHub committed 2024-07-01 16:02:36 +03:00
1 parent b9036eca1a
commit dd864da4e0
2424 files changed
+106679 -116201

No files matched your search

+39 -1
View File
@@ -8,9 +8,29 @@ export function isDmlEntity(reflection: DeclarationReflection) {
return reflection.type.name === "DmlEntity"
}
export const RELATION_NAMES = ["HasOne", "HasMany", "BelongsTo", "ManyToMany"]
export function isDmlRelation(reflection: DeclarationReflection) {
if (reflection.type?.type !== "reference") {
return false
}
const reflectionType = reflection.type
return RELATION_NAMES.some((relatioName) =>
reflectionType.name.startsWith(relatioName)
)
}
const MAX_LEVEL = 2
export function getDmlProperties(
reflectionType: ReferenceType
reflectionType: ReferenceType,
level = 1
): DeclarationReflection[] {
if (level > MAX_LEVEL) {
return []
}
if (
!reflectionType.typeArguments?.length ||
reflectionType.typeArguments[0].type !== "intersection"
@@ -22,3 +42,21 @@ export function getDmlProperties(
return schemaType.declaration.children || []
}
export function getDmlRelationProperties(
reflectionType: ReferenceType
): DeclarationReflection[] {
if (
!reflectionType.typeArguments?.length ||
reflectionType.typeArguments[0].type !== "reference" ||
!(
reflectionType.typeArguments[0].reflection instanceof
DeclarationReflection
) ||
reflectionType.typeArguments[0].reflection.type?.type !== "reference"
) {
return []
}
return getDmlProperties(reflectionType.typeArguments[0].reflection.type)
}