UNPKG

wikibase-edit

Version:

Edit Wikibase from NodeJS

36 lines 1.41 kB
import { buildClaim } from '../entity/build_claim.js'; import { newError } from '../error.js'; import { getEntityClaims } from '../get_entity.js'; import { forceArray } from '../utils.js'; import { validateGuid } from '../validate.js'; import { isMatchingClaimFactory } from './is_matching_claim.js'; export async function removeClaim(params, properties, instance, config) { let { guid } = params; const { id, property, value, qualifiers, reconciliation = {} } = params; if (!(guid || (id && property && value))) { throw newError('missing guid or id/property/value', params); } let guids; if (guid) { guids = forceArray(guid); } else { const existingClaims = await getEntityClaims(id, config); const claimData = { value, qualifiers }; // @ts-expect-error const claim = buildClaim(property, properties, claimData, instance); const { matchingQualifiers } = reconciliation; const matchingClaims = existingClaims[property].filter(isMatchingClaimFactory(claim, matchingQualifiers)); if (matchingClaims.length === 0) throw newError('claim not found', params); guids = matchingClaims.map(({ id }) => id); } guids.forEach(validateGuid); return { action: 'wbremoveclaims', data: { claim: guids.join('|'), }, }; } //# sourceMappingURL=remove.js.map