Files
shields/services/visual-studio-marketplace/visual-studio-marketplace-release-date.service.js
N Balgopal Patro 85e3772de9 Converted Service Classes to Static Fields, run [visualstudio w3c] (#5642)
* Completed For visual-studio-app-center

* Completed For visual-studio-marketplace

* Completed For w3c

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 02:19:48 +00:00

49 lines
1.3 KiB
JavaScript

'use strict'
const { age } = require('../color-formatters')
const { formatDate } = require('../text-formatters')
const VisualStudioMarketplaceBase = require('./visual-studio-marketplace-base')
module.exports = class VisualStudioMarketplaceReleaseDate extends VisualStudioMarketplaceBase {
static category = 'activity'
static route = {
base: '',
pattern:
'(visual-studio-marketplace|vscode-marketplace)/release-date/:extensionId',
}
static examples = [
{
title: 'Visual Studio Marketplace Release Date',
pattern: 'visual-studio-marketplace/release-date/:extensionId',
namedParams: { extensionId: 'yasht.terminal-all-in-one' },
staticPreview: this.render({ releaseDate: '2019-04-13T07:50:27.000Z' }),
keywords: this.keywords,
},
]
static defaultBadgeData = {
label: 'release date',
}
static render({ releaseDate }) {
return {
message: formatDate(releaseDate),
color: age(releaseDate),
}
}
transform({ json }) {
const { extension } = this.transformExtension({ json })
const releaseDate = extension.releaseDate
return { releaseDate }
}
async handle({ extensionId }) {
const json = await this.fetch({ extensionId })
const { releaseDate } = this.transform({ json })
return this.constructor.render({ releaseDate })
}
}