wikibase-edit
Version:
Edit Wikibase from NodeJS
36 lines (30 loc) • 942 B
text/typescript
import { newError } from '../error.js'
import { validateEntityId, validateLanguage } from '../validate.js'
import type { BaseRevId } from '../types/common.js'
import type { EntityId, EntityWithLabels, WikimediaLanguageCode } from 'wikibase-sdk'
export interface TermActionParams {
id: EntityId
language: WikimediaLanguageCode
value: string
summary?: string
baserevid?: BaseRevId
}
export function setLabelOrDescriptionFactory (name: string) {
return function setLabelOrDescription (params: TermActionParams) {
const { id, language } = params
let { value } = params
const action = `wbset${name}`
validateEntityId(id)
validateLanguage(language)
if (value === undefined) throw newError(`missing ${name}`, params)
if (value === null) value = ''
return {
action,
data: { id, language, value },
}
}
}
export interface TermActionResponse {
entity: EntityWithLabels
success: 1
}