← back to Cli Printing Press
fix(openapi): collect paths to delete before mutation in stripBrokenRefs (#259)
28ba1e01d86e4d5b756dab9a4e0fce36bd41c3a9 · 2026-04-24 14:04:15 -0700 · Dinakar Sarbada
Co-authored-by: Dinakar Sarbada <dinakars777@users.noreply.github.com>
Files touched
M internal/openapi/parser.go
Diff
commit 28ba1e01d86e4d5b756dab9a4e0fce36bd41c3a9
Author: Dinakar Sarbada <sarbadadinu@gmail.com>
Date: Fri Apr 24 14:04:15 2026 -0700
fix(openapi): collect paths to delete before mutation in stripBrokenRefs (#259)
Co-authored-by: Dinakar Sarbada <dinakars777@users.noreply.github.com>
---
internal/openapi/parser.go | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/internal/openapi/parser.go b/internal/openapi/parser.go
index f3ae5f42..dc18b22a 100644
--- a/internal/openapi/parser.go
+++ b/internal/openapi/parser.go
@@ -92,15 +92,21 @@ func stripBrokenRefs(data []byte, errMsg string) []byte {
if pathsRaw, ok := raw["paths"]; ok {
var paths map[string]json.RawMessage
if json.Unmarshal(pathsRaw, &paths) == nil {
+ var pathsToDelete []string
for pathKey, pathVal := range paths {
if strings.Contains(string(pathVal), refStr) {
- delete(paths, pathKey)
+ pathsToDelete = append(pathsToDelete, pathKey)
fmt.Fprintf(os.Stderr, "info: removed path %s (references broken %s)\n", pathKey, brokenKey)
- modified = true
}
}
- pathsBytes, _ := json.Marshal(paths)
- raw["paths"] = pathsBytes
+ for _, pk := range pathsToDelete {
+ delete(paths, pk)
+ modified = true
+ }
+ if len(pathsToDelete) > 0 {
+ pathsBytes, _ := json.Marshal(paths)
+ raw["paths"] = pathsBytes
+ }
}
}
← 1645e962 fix(cli): quote paths in emboss stderr output to prevent she
·
back to Cli Printing Press
·
fix(megamcp): validate placeholders before substitution in A 2c802afe →