Files
shields/services/dub/dub-version.service.js
chris48s 478b1083f2 migrate examples to openApi part 3; affects [conan cookbook coverity cpan debian docker docsrs dub eclipse] (#9429)
* migrate some services from examples to openApi

* improve and de-dupe service titles

* revert changes to depfu
2023-08-17 20:32:01 +00:00

36 lines
887 B
JavaScript

import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { BaseJsonService, pathParams } from '../index.js'
const schema = Joi.string().required()
export default class DubVersion extends BaseJsonService {
static category = 'version'
static route = { base: 'dub/v', pattern: ':packageName' }
static openApi = {
'/dub/v/{packageName}': {
get: {
summary: 'DUB Version',
parameters: pathParams({
name: 'packageName',
example: 'vibe-d',
}),
},
},
}
static defaultBadgeData = { label: 'dub' }
async fetch({ packageName }) {
return this._requestJson({
schema,
url: `https://code.dlang.org/api/packages/${packageName}/latest`,
})
}
async handle({ packageName }) {
const version = await this.fetch({ packageName })
return renderVersionBadge({ version })
}
}