From 0e93717f1af18ecf7c1ce3f44eb9d3c903ebf2c0 Mon Sep 17 00:00:00 2001 From: melohagan <101575380+melohagan@users.noreply.github.com> Date: Thu, 23 Nov 2023 09:53:35 +0000 Subject: [PATCH] Allow null strings (#12298) * Allow null strings * Don't update null to blank * Save empty as null * Make blank string map to null * Add mappings for BigInt * Fix unit tests --- .../server/src/api/routes/tests/row.spec.ts | 2 +- .../server/src/utilities/rowProcessor/map.ts | 21 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/server/src/api/routes/tests/row.spec.ts b/packages/server/src/api/routes/tests/row.spec.ts index 060f6e46c1..de49441f3a 100644 --- a/packages/server/src/api/routes/tests/row.spec.ts +++ b/packages/server/src/api/routes/tests/row.spec.ts @@ -426,7 +426,7 @@ describe.each([ const saved = (await loadRow(id, table._id!)).body expect(saved.stringUndefined).toBe(undefined) - expect(saved.stringNull).toBe("") + expect(saved.stringNull).toBe(null) expect(saved.stringString).toBe("i am a string") expect(saved.numberEmptyString).toBe(null) expect(saved.numberNull).toBe(null) diff --git a/packages/server/src/utilities/rowProcessor/map.ts b/packages/server/src/utilities/rowProcessor/map.ts index dd1f9a272a..cbddcaf427 100644 --- a/packages/server/src/utilities/rowProcessor/map.ts +++ b/packages/server/src/utilities/rowProcessor/map.ts @@ -46,23 +46,23 @@ export const TYPE_TRANSFORM_MAP: any = { parse: parseArrayString, }, [FieldTypes.STRING]: { - "": "", - [null]: "", + "": null, + [null]: null, [undefined]: undefined, }, [FieldTypes.BARCODEQR]: { - "": "", - [null]: "", + "": null, + [null]: null, [undefined]: undefined, }, [FieldTypes.FORMULA]: { - "": "", - [null]: "", + "": null, + [null]: null, [undefined]: undefined, }, [FieldTypes.LONGFORM]: { - "": "", - [null]: "", + "": null, + [null]: null, [undefined]: undefined, }, [FieldTypes.NUMBER]: { @@ -71,6 +71,11 @@ export const TYPE_TRANSFORM_MAP: any = { [undefined]: undefined, parse: n => parseFloat(n), }, + [FieldTypes.BIGINT]: { + "": null, + [null]: null, + [undefined]: undefined, + }, [FieldTypes.DATETIME]: { "": null, [undefined]: undefined,