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,