Files
shields/services/visual-studio-marketplace/visual-studio-marketplace-downloads.service.js
chris48s bd3a11b4b6 upgrade to docusaurus 3 (#9820)
* update packages

* add plugin to strip autolinks in code blocks

* fix all the documentation for MDXv3

* remove check-docusaurus-versions

in docusaurus 3 this is now a hard error, not just a warning

* port upstream change to Curl component

fixes performing the 'execute' action when pressing enter
2024-03-23 19:54:57 +00:00

58 lines
1.7 KiB
JavaScript

import { pathParams } from '../index.js'
import { renderDownloadsBadge } from '../downloads.js'
import VisualStudioMarketplaceBase from './visual-studio-marketplace-base.js'
const description = `
This is for Visual Studio and Visual Studio Code Extensions.
For correct results on Azure DevOps Extensions, use the Azure DevOps Installs badge instead.
`
export default class VisualStudioMarketplaceDownloads extends VisualStudioMarketplaceBase {
static category = 'downloads'
static route = {
base: '',
pattern:
'(visual-studio-marketplace|vscode-marketplace)/:measure(d|i)/:extensionId',
}
static openApi = {
'/visual-studio-marketplace/i/{extensionId}': {
get: {
summary: 'Visual Studio Marketplace Installs',
description,
parameters: pathParams({
name: 'extensionId',
example: 'ritwickdey.LiveServer',
}),
},
},
'/visual-studio-marketplace/d/{extensionId}': {
get: {
summary: 'Visual Studio Marketplace Downloads',
description,
parameters: pathParams({
name: 'extensionId',
example: 'ritwickdey.LiveServer',
}),
},
},
}
static render({ measure, downloads }) {
const labelOverride = measure === 'd' ? 'downloads' : 'installs'
return renderDownloadsBadge({ downloads, labelOverride })
}
async handle({ measure, extensionId }) {
const json = await this.fetch({ extensionId })
const { statistics } = this.transformStatistics({ json })
const downloads =
measure === 'i'
? statistics.install
: statistics.install + statistics.updateCount
return this.constructor.render({ measure, downloads })
}
}