UNPKG

wikibase-cli

Version:

A command-line interface to Wikibase

32 lines (25 loc) 883 B
import { isEntitySchemaId } from 'wikibase-sdk' import { exitOnMissingInstance } from '#lib/exit_on_missing' import program from './program.js' export function getEntitiesSchemas (ids) { exitOnMissingInstance(program.instance) const instanceDomain = program.instance.replace('/w/api.php', '') ids.forEach(id => { if (!isEntitySchemaId(id)) throw new Error(`invalid entity schema id: ${id}`) }) let count = 0 const multipleIds = ids.length > 1 const getNext = async () => { const id = ids.shift() if (!id) return const url = `${instanceDomain}/wiki/Special:EntitySchemaText/${id}` const text = await fetch(url).then(res => res.text()) if (multipleIds) { process.stdout.write(`${count++ === 0 ? '' : '\n'}## ${id} ##\n`) } process.stdout.write(text + '\n') return getNext() } return getNext() .catch(console.error) }