n3 2.2.16 → 2.3.0

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/lib/IRIs.js CHANGED
@@ -11,6 +11,7 @@ var _default = exports.default = {
11
11
  xsd: {
12
12
  decimal: `${XSD}decimal`,
13
13
  boolean: `${XSD}boolean`,
14
+ dateTime: `${XSD}dateTime`,
14
15
  double: `${XSD}double`,
15
16
  integer: `${XSD}integer`,
16
17
  string: `${XSD}string`
@@ -412,7 +412,7 @@ function literal(value, languageOrDataType) {
412
412
  return new Literal(`"${value}"@${languageOrDataType.language.toLowerCase()}${languageOrDataType.direction ? `--${languageOrDataType.direction.toLowerCase()}` : ''}`);
413
413
  }
414
414
 
415
- // Automatically determine datatype for booleans and numbers
415
+ // Automatically determine datatype for booleans, numbers, and dates
416
416
  let datatype = languageOrDataType ? languageOrDataType.value : '';
417
417
  if (datatype === '') {
418
418
  // Convert a boolean
@@ -424,6 +424,11 @@ function literal(value, languageOrDataType) {
424
424
  if (!Number.isNaN(value)) value = value > 0 ? 'INF' : '-INF';
425
425
  }
426
426
  }
427
+ // Convert a valid date
428
+ else if (value instanceof Date && !Number.isNaN(value.getTime())) {
429
+ datatype = xsd.dateTime;
430
+ value = value.toISOString();
431
+ }
427
432
  }
428
433
 
429
434
  // Create a datatyped literal
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n3",
3
- "version": "2.2.16",
3
+ "version": "2.3.0",
4
4
  "description": "Lightning fast, asynchronous, streaming Turtle / N3 / RDF library.",
5
5
  "author": "Ruben Verborgh <ruben.verborgh@gmail.com>",
6
6
  "keywords": [
package/src/IRIs.js CHANGED
@@ -6,6 +6,7 @@ export default {
6
6
  xsd: {
7
7
  decimal: `${XSD}decimal`,
8
8
  boolean: `${XSD}boolean`,
9
+ dateTime: `${XSD}dateTime`,
9
10
  double: `${XSD}double`,
10
11
  integer: `${XSD}integer`,
11
12
  string: `${XSD}string`,
@@ -424,7 +424,7 @@ function literal(value, languageOrDataType) {
424
424
  return new Literal(`"${value}"@${languageOrDataType.language.toLowerCase()}${languageOrDataType.direction ? `--${languageOrDataType.direction.toLowerCase()}` : ''}`);
425
425
  }
426
426
 
427
- // Automatically determine datatype for booleans and numbers
427
+ // Automatically determine datatype for booleans, numbers, and dates
428
428
  let datatype = languageOrDataType ? languageOrDataType.value : '';
429
429
  if (datatype === '') {
430
430
  // Convert a boolean
@@ -440,6 +440,11 @@ function literal(value, languageOrDataType) {
440
440
  value = value > 0 ? 'INF' : '-INF';
441
441
  }
442
442
  }
443
+ // Convert a valid date
444
+ else if (value instanceof Date && !Number.isNaN(value.getTime())) {
445
+ datatype = xsd.dateTime;
446
+ value = value.toISOString();
447
+ }
443
448
  }
444
449
 
445
450
  // Create a datatyped literal