From 9a976701476269b72fcb8a0ab7e21f464ff68647 Mon Sep 17 00:00:00 2001 From: Eemeli Aro Date: Tue, 25 Dec 2018 15:58:38 +0200 Subject: [PATCH] createNode: Call toJSON() if defined (#63) --- __tests__/createNode.js | 8 ++++++++ src/createNode.js | 1 + 2 files changed, 9 insertions(+) diff --git a/__tests__/createNode.js b/__tests__/createNode.js index 9c82b46b..99c24c9a 100644 --- a/__tests__/createNode.js +++ b/__tests__/createNode.js @@ -283,3 +283,11 @@ y: }) }) }) + +describe('toJSON()', () => { + test('Date', () => { + const date = new Date('2018-12-22T08:02:52Z') + const node = createNode(date) + expect(node.value).toBe(date.toJSON()) + }) +}) diff --git a/src/createNode.js b/src/createNode.js index 90e88e85..8772526c 100644 --- a/src/createNode.js +++ b/src/createNode.js @@ -17,6 +17,7 @@ function createMapNode(iterable, wrapScalars) { export default function createNode(value, wrapScalars = true) { if (value == null) return new Scalar(null) + if (typeof value.toJSON === 'function') value = value.toJSON() if (typeof value !== 'object') return wrapScalars ? new Scalar(value) : value if (Array.isArray(value)) { const seq = new Seq()