wikibase-sdk
Advanced tools
Comparing version 7.0.12 to 7.0.13
@@ -5,8 +5,24 @@ const toDateObject = require('./wikibase_time_to_date_object') | ||
helpers.isNumericId = id => /^[1-9][0-9]*$/.test(id) | ||
helpers.isEntityId = id => /^(Q|P)[1-9][0-9]*$/.test(id) | ||
helpers.isEntityId = id => /^(Q|P|L)[1-9][0-9]*$/.test(id) | ||
helpers.isItemId = id => /^Q[1-9][0-9]*$/.test(id) | ||
helpers.isPropertyId = id => /^P[1-9][0-9]*$/.test(id) | ||
helpers.isLexemeId = id => /^L[1-9][0-9]*$/.test(id) | ||
helpers.isGuid = guid => /^(Q|P|L)\d+\$[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(guid) | ||
helpers.isRevisionId = id => /^\d+$/.test(id) | ||
helpers.isEntityPageTitle = title => { | ||
if (typeof title !== 'string') return false | ||
var [ namespace, id ] = title.split(':') | ||
if (namespace && id) { | ||
return isEntityNamespace(namespace) && helpers[`is${namespace}Id`](id) | ||
} else { | ||
id = namespace | ||
return helpers.isItemId(id) | ||
} | ||
} | ||
const entityNamespaces = [ 'Item', 'Property', 'Lexeme' ] | ||
const isEntityNamespace = str => entityNamespaces.includes(str) | ||
helpers.getNumericId = id => { | ||
@@ -13,0 +29,0 @@ if (!(helpers.isEntityId(id))) throw new Error(`invalid wikidata id: ${id}`) |
@@ -40,12 +40,23 @@ const { wikibaseTimeToISOString, wikibaseTimeToEpochTime, wikibaseTimeToSimpleDay } = require('./helpers') | ||
const coordinate = datavalue => { | ||
return [ datavalue.value.latitude, datavalue.value.longitude ] | ||
const coordinate = (datavalue, options) => { | ||
if (options.keepRichValues) { | ||
return datavalue.value | ||
} else { | ||
return [ datavalue.value.latitude, datavalue.value.longitude ] | ||
} | ||
} | ||
const time = (datavalue, options) => { | ||
var timeValue | ||
if (typeof options.timeConverter === 'function') { | ||
return options.timeConverter(datavalue.value) | ||
timeValue = options.timeConverter(datavalue.value) | ||
} else { | ||
return getTimeConverter(options.timeConverter)(datavalue.value) | ||
timeValue = getTimeConverter(options.timeConverter)(datavalue.value) | ||
} | ||
if (options.keepRichValues) { | ||
const { timezone, before, after, precision, calendarmodel } = datavalue.value | ||
return { time: timeValue, timezone, before, after, precision, calendarmodel } | ||
} else { | ||
return timeValue | ||
} | ||
} | ||
@@ -52,0 +63,0 @@ |
@@ -10,3 +10,4 @@ const helpers = require('./helpers') | ||
propertyId: validate('property id', 'isPropertyId'), | ||
entityPageTitle: validate('entity page title', 'isEntityPageTitle'), | ||
revisionId: validate('revision id', 'isRevisionId') | ||
} |
@@ -6,3 +6,3 @@ const { forceArray } = require('../utils/utils') | ||
ids = forceArray(ids) | ||
ids.forEach(validate.entityId) | ||
ids.forEach(validate.entityPageTitle) | ||
@@ -9,0 +9,0 @@ const uniqueId = ids.length === 1 |
{ | ||
"name": "wikibase-sdk", | ||
"version": "7.0.12", | ||
"version": "7.0.13", | ||
"description": "A javascript tool-suite to query wikibase and simplify its results", | ||
@@ -5,0 +5,0 @@ "main": "lib/wikibase-sdk.js", |
63497
1019