feat(schema): add convenience object & enum lookup methods (#21549)

This commit is contained in:
Aaron Craelius
2024-09-10 13:22:52 +00:00
committed by GitHub
parent 3c9fa960df
commit abc81a6e9c
6 changed files with 69 additions and 39 deletions
+8 -12
View File
@@ -42,9 +42,8 @@ func CompareModuleSchemas(oldSchema, newSchema schema.ModuleSchema) ModuleSchema
diff := ModuleSchemaDiff{}
oldSchema.ObjectTypes(func(oldObj schema.ObjectType) bool {
newTyp, found := newSchema.LookupType(oldObj.Name)
newObj, typeMatch := newTyp.(schema.ObjectType)
if !found || !typeMatch {
newObj, found := newSchema.LookupObjectType(oldObj.Name)
if !found {
diff.RemovedObjectTypes = append(diff.RemovedObjectTypes, oldObj)
return true
}
@@ -56,18 +55,16 @@ func CompareModuleSchemas(oldSchema, newSchema schema.ModuleSchema) ModuleSchema
})
newSchema.ObjectTypes(func(newObj schema.ObjectType) bool {
oldTyp, found := oldSchema.LookupType(newObj.TypeName())
_, typeMatch := oldTyp.(schema.ObjectType)
if !found || !typeMatch {
_, found := oldSchema.LookupObjectType(newObj.TypeName())
if !found {
diff.AddedObjectTypes = append(diff.AddedObjectTypes, newObj)
}
return true
})
oldSchema.EnumTypes(func(oldEnum schema.EnumType) bool {
newTyp, found := newSchema.LookupType(oldEnum.Name)
newEnum, typeMatch := newTyp.(schema.EnumType)
if !found || !typeMatch {
newEnum, found := newSchema.LookupEnumType(oldEnum.Name)
if !found {
diff.RemovedEnumTypes = append(diff.RemovedEnumTypes, oldEnum)
return true
}
@@ -79,9 +76,8 @@ func CompareModuleSchemas(oldSchema, newSchema schema.ModuleSchema) ModuleSchema
})
newSchema.EnumTypes(func(newEnum schema.EnumType) bool {
oldTyp, found := oldSchema.LookupType(newEnum.TypeName())
_, typeMatch := oldTyp.(schema.EnumType)
if !found || !typeMatch {
_, found := oldSchema.LookupEnumType(newEnum.TypeName())
if !found {
diff.AddedEnumTypes = append(diff.AddedEnumTypes, newEnum)
}
return true