Keep rewrites
diff --git a/mapper/mapper.go b/mapper/mapper.go
index 9d32042..fa75bd6 100644
--- a/mapper/mapper.go
+++ b/mapper/mapper.go
@@ -115,6 +115,15 @@
return jsonData, nil
}
+ // Store rewrites if they exist
+ var oldRewrites any
+ if queryMap, ok := queryData.(map[string]any); ok {
+ if rewrites, exists := queryMap["rewrites"]; exists {
+ oldRewrites = rewrites
+ delete(queryMap, "rewrites")
+ }
+ }
+
// Convert input JSON to AST
jsonBytes, err := json.Marshal(queryData)
if err != nil {
@@ -192,6 +201,13 @@
return nil, fmt.Errorf("failed to parse result JSON: %w", err)
}
+ // Restore rewrites if they existed
+ if oldRewrites != nil {
+ if resultMap, ok := resultData.(map[string]any); ok {
+ resultMap["rewrites"] = oldRewrites
+ }
+ }
+
// If we had a query wrapper, put the transformed data back in it
if hasQueryWrapper {
if wrapper, ok := jsonData.(map[string]any); ok {