wikibase-edit
Version:
Edit Wikibase from NodeJS
36 lines (28 loc) • 858 B
text/typescript
import { validateAliases, validateEntityId, validateLanguage } from '../validate.js'
import type { Aliases, EntityId, EntityType, WikimediaLanguageCode } from 'wikibase-sdk'
export interface AliasActionParams {
id: EntityId
language: WikimediaLanguageCode
value: string | string[]
}
export function actionFactory (action: 'add' | 'remove' | 'set') {
return function (params: AliasActionParams) {
const { id, language, value } = params
validateEntityId(id)
validateLanguage(language)
validateAliases(value)
const data = { id, language }
data[action] = value instanceof Array ? value.join('|') : value
return { action: 'wbsetaliases', data }
}
}
export interface AliasActionResponse {
entity: {
aliases: Aliases
id: EntityId
type: EntityType
lastrevid: number
nochange?: ''
}
success: 1
}