From 3559c5c29778e74a2a8adeb91599d94fe768742b Mon Sep 17 00:00:00 2001
From: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Date: Wed, 17 Jul 2024 13:00:01 +0200
Subject: [PATCH] Revert "Frontend: Use safe stringifier in parseBody" (#90522)

Revert "Frontend: Use safe stringifier in parseBody (#90047)"

This reverts commit 434f3869820c7820b41dfd13351017a31409eff3.
---
 packages/grafana-data/src/index.ts        |  2 +-
 packages/grafana-data/src/utils/object.ts | 19 -------------------
 public/app/core/utils/fetch.ts            |  4 ++--
 3 files changed, 3 insertions(+), 22 deletions(-)

diff --git a/packages/grafana-data/src/index.ts b/packages/grafana-data/src/index.ts
index 09c7d2af88d..c45b86fe1ba 100644
--- a/packages/grafana-data/src/index.ts
+++ b/packages/grafana-data/src/index.ts
@@ -246,7 +246,7 @@ export {
 } from './utils/csv';
 export { parseLabels, findCommonLabels, findUniqueLabels, matchAllLabels, formatLabels } from './utils/labels';
 export { roundDecimals, guessDecimals } from './utils/numbers';
-export { objRemoveUndefined, isEmptyObject, safeStringifyValue } from './utils/object';
+export { objRemoveUndefined, isEmptyObject } from './utils/object';
 export { classicColors } from './utils/namedColorsPalette';
 export { getSeriesTimeStep, hasMsResolution } from './utils/series';
 export { BinaryOperationID, type BinaryOperation, binaryOperators } from './utils/binaryOperators';
diff --git a/packages/grafana-data/src/utils/object.ts b/packages/grafana-data/src/utils/object.ts
index 50d3ff25507..0f40f8e636a 100644
--- a/packages/grafana-data/src/utils/object.ts
+++ b/packages/grafana-data/src/utils/object.ts
@@ -10,22 +10,3 @@
 export const isEmptyObject = (value: unknown): value is Record<string, never> => {
   return typeof value === 'object' && value !== null && Object.keys(value).length === 0;
 };
-
-/** Stringifies an object that may contain circular references */
-export function safeStringifyValue(value: unknown) {
-  const getCircularReplacer = () => {
-    const seen = new WeakSet();
-    return (_: string, value: object | null) => {
-      if (typeof value === 'object' && value !== null) {
-        if (seen.has(value)) {
-          return;
-        }
-        seen.add(value);
-      }
-
-      return value;
-    };
-  };
-
-  return JSON.stringify(value, getCircularReplacer());
-}
diff --git a/public/app/core/utils/fetch.ts b/public/app/core/utils/fetch.ts
index 8b4031123b7..49253f74a31 100644
--- a/public/app/core/utils/fetch.ts
+++ b/public/app/core/utils/fetch.ts
@@ -1,6 +1,6 @@
 import { omitBy } from 'lodash';
 
-import { deprecationWarning, safeStringifyValue } from '@grafana/data';
+import { deprecationWarning } from '@grafana/data';
 import { BackendSrvRequest } from '@grafana/runtime';
 
 export const parseInitFromOptions = (options: BackendSrvRequest): RequestInit => {
@@ -93,7 +93,7 @@ export const parseBody = (options: BackendSrvRequest, isAppJson: boolean) => {
     return options.data;
   }
 
-  return isAppJson ? safeStringifyValue(options.data) : new URLSearchParams(options.data);
+  return isAppJson ? JSON.stringify(options.data) : new URLSearchParams(options.data);
 };
 
 export async function parseResponseBody<T>(