n3 2.10.6 → 2.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/n3.esm.min.js +1 -1
- package/browser/n3.min.js +1 -1
- package/lib/N3DataFactory.js +5 -1
- package/package.json +1 -1
- package/src/N3DataFactory.js +4 -1
package/lib/N3DataFactory.js
CHANGED
|
@@ -434,7 +434,11 @@ function literal(value, languageOrDataType) {
|
|
|
434
434
|
if (typeof value === 'boolean') datatype = xsd.boolean;
|
|
435
435
|
// Convert an integer or double
|
|
436
436
|
else if (typeof value === 'number') {
|
|
437
|
-
if (Number.isFinite(value))
|
|
437
|
+
if (Number.isFinite(value))
|
|
438
|
+
// From 1e21 upward, a number's string form turns exponential ("1e+21"),
|
|
439
|
+
// which is not a valid xsd:integer lexical, so type it as xsd:double
|
|
440
|
+
// (the same cut-off as JSON-LD 1.1's Object to RDF Conversion)
|
|
441
|
+
datatype = Number.isInteger(value) && Math.abs(value) < 1e21 ? xsd.integer : xsd.double;else {
|
|
438
442
|
datatype = xsd.double;
|
|
439
443
|
if (!Number.isNaN(value)) value = value > 0 ? 'INF' : '-INF';
|
|
440
444
|
}
|
package/package.json
CHANGED
package/src/N3DataFactory.js
CHANGED
|
@@ -448,7 +448,10 @@ function literal(value, languageOrDataType) {
|
|
|
448
448
|
// Convert an integer or double
|
|
449
449
|
else if (typeof value === 'number') {
|
|
450
450
|
if (Number.isFinite(value))
|
|
451
|
-
|
|
451
|
+
// From 1e21 upward, a number's string form turns exponential ("1e+21"),
|
|
452
|
+
// which is not a valid xsd:integer lexical, so type it as xsd:double
|
|
453
|
+
// (the same cut-off as JSON-LD 1.1's Object to RDF Conversion)
|
|
454
|
+
datatype = Number.isInteger(value) && Math.abs(value) < 1e21 ? xsd.integer : xsd.double;
|
|
452
455
|
else {
|
|
453
456
|
datatype = xsd.double;
|
|
454
457
|
if (!Number.isNaN(value))
|