Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (!entity.claims) return;
if (!entity.claims[prop]) return;
let value;
for (let i = 0; i < entity.claims[prop].length; i++) {
let c = entity.claims[prop][i];
if (c.rank === 'deprecated') continue;
if (c.mainsnak.snaktype !== 'value') continue;
// skip if we find an end time qualifier - P582
let ended = false;
let qualifiers = (c.qualifiers && c.qualifiers.P582) || [];
for (let j = 0; j < qualifiers.length; j++) {
let q = qualifiers[j];
if (q.snaktype !== 'value') continue;
let enddate = wdk.wikidataTimeToDateObject(q.datavalue.value.time);
if (new Date() > enddate) {
ended = true;
break;
}
}
if (ended) continue;
value = c.mainsnak.datavalue.value;
if (c.rank === 'preferred') return value; // return immediately
}
return value;
}