UNPKG

wikibase-cli

Version:

A command-line interface to Wikibase

28 lines (27 loc) 1.07 kB
export function minimizeClaimsOrSnaks (snaks) { if (!snaks) return // Support references nested snaks if (snaks.snaks) snaks = snaks.snaks Object.keys(snaks).forEach(property => { const propSnaks = snaks[property] // Known case: when the property was explicitly requested and thus set to null // see ./drop_non_selected_subprops.js if (!propSnaks) return snaks[property] = propSnaks.map(snak => { if (snak.snaktype === 'value') delete snak.snaktype if (snak.rank === 'normal') delete snak.rank if (snak.qualifiers) { minimizeClaimsOrSnaks(snak.qualifiers) if (Object.keys(snak.qualifiers).length === 0) delete snak.qualifiers } if (snak.references) { snak.references.forEach(minimizeClaimsOrSnaks) if (snak.references.length === 0) delete snak.references } const keys = Object.keys(snak) if (keys.length === 1 && keys[0] === 'value') return snak.value else return snak }) if (snaks[property].length === 1) snaks[property] = snaks[property][0] }) }