Comparing version 1.3.4 to 1.3.5
@@ -299,15 +299,10 @@ "use strict"; | ||
// Create a language-tagged string | ||
if (typeof languageOrDataType === 'string') return new Literal('"' + value + '"@' + languageOrDataType.toLowerCase()); // Create a datatyped literal | ||
if (typeof languageOrDataType === 'string') return new Literal('"' + value + '"@' + languageOrDataType.toLowerCase()); // Automatically determine datatype for booleans and numbers | ||
var datatype = languageOrDataType && languageOrDataType.value || ''; | ||
let datatype = languageOrDataType ? languageOrDataType.value : ''; | ||
if (!datatype) { | ||
switch (typeof value) { | ||
// Convert a boolean | ||
case 'boolean': | ||
datatype = xsd.boolean; | ||
break; | ||
// Convert an integer or double | ||
case 'number': | ||
if (datatype === '') { | ||
// Convert a boolean | ||
if (typeof value === 'boolean') datatype = xsd.boolean; // Convert an integer or double | ||
else if (typeof value === 'number') { | ||
if (Number.isFinite(value)) datatype = Number.isInteger(value) ? xsd.integer : xsd.double;else { | ||
@@ -317,11 +312,7 @@ datatype = xsd.double; | ||
} | ||
break; | ||
// No datatype, so convert a plain string | ||
} | ||
} // Create a datatyped literal | ||
default: | ||
return new Literal('"' + value + '"'); | ||
} | ||
} | ||
return new Literal('"' + value + '"^^' + datatype); | ||
return datatype === '' || datatype === xsd.string ? new Literal('"' + value + '"') : new Literal('"' + value + '"^^' + datatype); | ||
} // ### Creates a variable | ||
@@ -328,0 +319,0 @@ |
{ | ||
"name": "n3", | ||
"version": "1.3.4", | ||
"version": "1.3.5", | ||
"description": "Lightning fast, asynchronous, streaming Turtle / N3 / RDF library.", | ||
@@ -5,0 +5,0 @@ "author": "Ruben Verborgh <ruben.verborgh@gmail.com>", |
@@ -293,12 +293,10 @@ // N3.js implementations of the RDF/JS core data types | ||
// Create a datatyped literal | ||
var datatype = languageOrDataType && languageOrDataType.value || ''; | ||
if (!datatype) { | ||
switch (typeof value) { | ||
// Automatically determine datatype for booleans and numbers | ||
let datatype = languageOrDataType ? languageOrDataType.value : ''; | ||
if (datatype === '') { | ||
// Convert a boolean | ||
case 'boolean': | ||
if (typeof value === 'boolean') | ||
datatype = xsd.boolean; | ||
break; | ||
// Convert an integer or double | ||
case 'number': | ||
else if (typeof value === 'number') { | ||
if (Number.isFinite(value)) | ||
@@ -311,9 +309,9 @@ datatype = Number.isInteger(value) ? xsd.integer : xsd.double; | ||
} | ||
break; | ||
// No datatype, so convert a plain string | ||
default: | ||
return new Literal('"' + value + '"'); | ||
} | ||
} | ||
return new Literal('"' + value + '"^^' + datatype); | ||
// Create a datatyped literal | ||
return (datatype === '' || datatype === xsd.string) ? | ||
new Literal('"' + value + '"') : | ||
new Literal('"' + value + '"^^' + datatype); | ||
} | ||
@@ -320,0 +318,0 @@ |
247851
5330