wikibase-sdk
Advanced tools
Comparing version 7.0.6 to 7.0.7
const { parse: parseClaim } = require('./parse_claim') | ||
const { uniq } = require('../utils/utils') | ||
const { truthyPropertyClaims } = require('./rank') | ||
@@ -46,23 +47,2 @@ // Expects an entity 'claims' object | ||
const aggregatePerRank = (aggregate, claim) => { | ||
const { rank } = claim | ||
aggregate[rank] || (aggregate[rank] = []) | ||
aggregate[rank].push(claim) | ||
return aggregate | ||
} | ||
const truthyPropertyClaims = propClaims => { | ||
const aggregate = propClaims.reduce(aggregatePerRank, {}) | ||
// on truthyness: https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Truthy_statements | ||
return aggregate.preferred || aggregate.normal || [] | ||
} | ||
const truthyClaims = claims => { | ||
const truthClaimsOnly = {} | ||
Object.keys(claims).forEach(property => { | ||
truthClaimsOnly[property] = truthyPropertyClaims(claims[property]) | ||
}) | ||
return truthClaimsOnly | ||
} | ||
// Considers null as defined | ||
@@ -197,4 +177,2 @@ const defined = obj => obj !== undefined | ||
simplifyClaim, | ||
truthyClaims, | ||
truthyPropertyClaims, | ||
simplifyQualifiers, | ||
@@ -201,0 +179,0 @@ simplifyPropertyQualifiers, |
@@ -1,2 +0,2 @@ | ||
const { getSitelinkUrl } = require('./sitelinks_helpers') | ||
const { getSitelinkUrl } = require('./sitelinks') | ||
@@ -3,0 +3,0 @@ module.exports = (sitelinks, options = {}) => { |
const { isPlainObject } = require('./utils/utils') | ||
module.exports = config => { | ||
const simplify = require('./helpers/simplify') | ||
const parse = require('./helpers/parse_responses') | ||
const helpers = require('./helpers/helpers') | ||
const sitelinksHelpers = require('../lib/helpers/sitelinks') | ||
const rankHelpers = require('../lib/helpers/rank') | ||
const common = Object.assign({ simplify, parse }, helpers, sitelinksHelpers, rankHelpers) | ||
const WBK = function (config) { | ||
if (!isPlainObject(config)) throw new Error('invalid config') | ||
@@ -11,43 +19,18 @@ const { instance, sparqlEndpoint } = config | ||
const wbk = {} | ||
wbk.searchEntities = require('./queries/search_entities')(buildUrl) | ||
wbk.getEntities = require('./queries/get_entities')(buildUrl) | ||
wbk.getManyEntities = require('./queries/get_many_entities')(buildUrl) | ||
wbk.sparqlQuery = require('./queries/sparql_query')(sparqlEndpoint) | ||
wbk.getReverseClaims = require('./queries/get_reverse_claims')(sparqlEndpoint) | ||
wbk.getRevisions = require('./queries/get_revisions')(buildUrl) | ||
wbk.getEntityRevision = require('./queries/get_entity_revision')(instance) | ||
wbk.getEntitiesFromSitelinks = require('./queries/get_entities_from_sitelinks')(buildUrl) | ||
return Object.assign({}, common, { | ||
searchEntities: require('./queries/search_entities')(buildUrl), | ||
getEntities: require('./queries/get_entities')(buildUrl), | ||
getManyEntities: require('./queries/get_many_entities')(buildUrl), | ||
sparqlQuery: require('./queries/sparql_query')(sparqlEndpoint), | ||
getReverseClaims: require('./queries/get_reverse_claims')(sparqlEndpoint), | ||
getRevisions: require('./queries/get_revisions')(buildUrl), | ||
getEntityRevision: require('./queries/get_entity_revision')(instance), | ||
getEntitiesFromSitelinks: require('./queries/get_entities_from_sitelinks')(buildUrl) | ||
}) | ||
} | ||
wbk.parse = require('./helpers/parse_responses') | ||
// Make heplpers that don't require an instance to be specified available | ||
// directly on the exported function object | ||
Object.assign(WBK, common) | ||
const claimsSimplifiers = require('./helpers/simplify_claims') | ||
const simplifySparqlResults = require('./helpers/simplify_sparql_results') | ||
wbk.simplify = require('../lib/helpers/simplify_text_attributes') | ||
const { simplifyEntity, simplifyEntities } = require('../lib/helpers/simplify_entity') | ||
wbk.simplify.entity = simplifyEntity | ||
wbk.simplify.entities = simplifyEntities | ||
wbk.simplify.claim = claimsSimplifiers.simplifyClaim | ||
wbk.simplify.propertyClaims = claimsSimplifiers.simplifyPropertyClaims | ||
wbk.simplify.claims = claimsSimplifiers.simplifyClaims | ||
wbk.simplify.qualifier = claimsSimplifiers.simplifyQualifier | ||
wbk.simplify.propertyQualifiers = claimsSimplifiers.simplifyPropertyQualifiers | ||
wbk.simplify.qualifiers = claimsSimplifiers.simplifyQualifiers | ||
wbk.simplify.sitelinks = require('../lib/helpers/simplify_sitelinks') | ||
wbk.simplify.sparqlResults = simplifySparqlResults | ||
// Legacy | ||
wbk.simplifySparqlResults = require('./helpers/simplify_sparql_results') | ||
// Legacy + truthyClaims + truthyPropertyClaims | ||
Object.assign(wbk, claimsSimplifiers) | ||
const helpers = require('../lib/helpers/helpers') | ||
const sitelinksHelpers = require('../lib/helpers/sitelinks_helpers') | ||
Object.assign(wbk, helpers, sitelinksHelpers) | ||
return wbk | ||
} | ||
const validateEndpoint = (name, url) => { | ||
@@ -58,1 +41,3 @@ if (!(typeof url === 'string' && url.startsWith('http'))) { | ||
} | ||
module.exports = WBK |
{ | ||
"name": "wikibase-sdk", | ||
"version": "7.0.6", | ||
"version": "7.0.7", | ||
"description": "A javascript tool-suite to query wikibase and simplify its results", | ||
@@ -5,0 +5,0 @@ "main": "lib/wikibase-sdk.js", |
@@ -9,4 +9,2 @@ # Wikibase SDK | ||
<!-- ![wikibase](https://raw.githubusercontent.com/maxlath/wikibase-sdk/master/assets/wikibase.png) --> | ||
<!-- ![wikidata](https://raw.githubusercontent.com/maxlath/wikibase-sdk/master/assets/wikidata.jpg) --> | ||
<div align="center"> | ||
@@ -77,2 +75,6 @@ <a href="https://wikiba.se"><img height="150" src="https://raw.githubusercontent.com/maxlath/wikibase-sdk/master/assets/wikibase.png" alt="wikibase"></a> | ||
``` | ||
and instance-independant helper functions are directly available from the module root: | ||
```js | ||
const { simplify, parse, isEntityId, isPropertyId, ... } = require('wikibase-sdk') | ||
``` | ||
@@ -79,0 +81,0 @@ ## Features |
37
1218
138
70426