From 80d65bcba58ce03b026fe3f4e3afd01abe3563e9 Mon Sep 17 00:00:00 2001 From: Dave Nicolson Date: Sun, 28 May 2023 20:32:02 +0200 Subject: [PATCH] Add BigInt support --- lib/build.js | 3 +++ package-lock.json | 2 +- package.json | 2 +- test/build.js | 11 +++++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/build.js b/lib/build.js index abc829d..c2a84b1 100644 --- a/lib/build.js +++ b/lib/build.js @@ -117,6 +117,9 @@ function walk_obj(next, next_child) { tag_type = (next % 1 === 0) ? 'integer' : 'real'; next_child.ele(tag_type).txt(next.toString()); + } else if ('BigInt' == name) { + next_child.ele('integer').txt(next); + } else if ('Date' == name) { next_child.ele('date').txt(ISODateString(new Date(next))); diff --git a/package-lock.json b/package-lock.json index 65b05e9..e286c0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "zuul": "3.12.0" }, "engines": { - "node": ">=6" + "node": ">=10.4.0" } }, "node_modules/@ungap/promise-all-settled": { diff --git a/package.json b/package.json index 774610b..ba348bf 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,6 @@ "test": "make test" }, "engines": { - "node": ">=6" + "node": ">=10.4.0" } } diff --git a/test/build.js b/test/build.js index 958b40a..8adc228 100644 --- a/test/build.js +++ b/test/build.js @@ -40,6 +40,17 @@ describe('plist', function () { */})); }); + it('should create a plist XML real from a BigInt', function () { + var xml = build(BigInt('0x1fffffffffffff')); + assert.strictEqual(xml, multiline(function () {/* + + + + 9007199254740991 + +*/})); + }); + it('should create a plist XML date from a Date', function () { var xml = build(new Date('2010-02-08T21:41:23Z')); assert.strictEqual(xml, multiline(function () {/*