This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 5.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit c54778d7e7e3177c9c3c3ab8802e7861305fd29f
Author: JUST.in DO IT <justin.p...@airbnb.com>
AuthorDate: Wed May 14 10:19:21 2025 -0700

    fix(table-chart): time shift is not working (#33425)
    
    (cherry picked from commit dc4474889d84c258b94228d31017bef71117cd32)
---
 .../src/connection/callApi/parseResponse.ts               | 15 ++++++++-------
 .../test/connection/callApi/parseResponse.test.ts         |  3 ++-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git 
a/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
 
b/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
index 931aeecbdd..4ee81b80b3 100644
--- 
a/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
+++ 
b/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
@@ -58,17 +58,18 @@ export default async function parseResponse<T extends 
ParseMethod = 'json'>(
     const result: JsonResponse = {
       response,
       json: cloneDeepWith(json, (value: any) => {
-        // `json-bigint` could not handle floats well, see 
sidorares/json-bigint#62
-        // TODO: clean up after json-bigint>1.0.1 is released
-        if (value?.isInteger?.() === false) {
-          return Number(value);
-        }
         if (
-          value?.isGreaterThan?.(Number.MAX_SAFE_INTEGER) ||
-          value?.isLessThan?.(Number.MIN_SAFE_INTEGER)
+          value?.isInteger?.() === true &&
+          (value?.isGreaterThan?.(Number.MAX_SAFE_INTEGER) ||
+            value?.isLessThan?.(Number.MIN_SAFE_INTEGER))
         ) {
           return BigInt(value);
         }
+        // // `json-bigint` could not handle floats well, see 
sidorares/json-bigint#62
+        // // TODO: clean up after json-bigint>1.0.1 is released
+        if (value?.isNaN?.() === false) {
+          return value?.toNumber?.();
+        }
         return undefined;
       }),
     };
diff --git 
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
 
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
index 789910c977..4b6192e65a 100644
--- 
a/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
+++ 
b/superset-frontend/packages/superset-ui-core/test/connection/callApi/parseResponse.test.ts
@@ -143,7 +143,7 @@ describe('parseResponse()', () => {
     const mockBigIntUrl = '/mock/get/bigInt';
     const mockGetBigIntPayload = `{
       "value": 9223372036854775807, "minus": { "value": 
-483729382918228373892, "str": "something" },
-      "number": 1234, "floatValue": { "plus": 0.3452211361231223, "minus": 
-0.3452211361231223 },
+      "number": 1234, "floatValue": { "plus": 0.3452211361231223, "minus": 
-0.3452211361231223, "even": 1234567890123456.0000000 },
       "string.constructor": "data.constructor",
       "constructor": "constructor"
     }`;
@@ -161,6 +161,7 @@ describe('parseResponse()', () => {
     expect(responseBigNumber.json.floatValue.minus).toEqual(
       -0.3452211361231223,
     );
+    expect(responseBigNumber.json.floatValue.even).toEqual(1234567890123456);
     expect(
       responseBigNumber.json.floatValue.plus +
         responseBigNumber.json.floatValue.minus,

Reply via email to