wikibase-edit
Version:
Edit Wikibase from NodeJS
44 lines (36 loc) • 1.02 kB
text/typescript
// Doc https://www.wikidata.org/w/api.php?action=help&modules=wbsetsitelink
import { formatBadges } from '../entity/format.js'
import { validateEntityId, validateSite, validateSiteTitle } from '../validate.js'
import type { EntityWithSitelinks, SitelinkBadges } from 'wikibase-sdk'
export interface SetSitelinkParams {
id: EntityWithSitelinks['id']
site: string
title: string
badges?: SitelinkBadges | string
}
export function setSitelink ({ id, site, title, badges }: SetSitelinkParams) {
validateEntityId(id)
validateSite(site)
validateSiteTitle(title)
const params = {
action: 'wbsetsitelink',
data: {
id,
linksite: site,
linktitle: title,
},
}
// Allow to pass null to delete a sitelink
if (title === null) {
delete params.data.linktitle
}
if (badges != null) {
// @ts-expect-error
params.data.badges = formatBadges(badges).join('|')
}
return params
}
export interface SetSitelinkResponse {
success: 1
entity: EntityWithSitelinks
}