Files
shields/services/chrome-web-store/chrome-web-store-last-updated.service.js
Aiden Gardner 4e4e3f82c6 [Chromewebstore] Extension size & last updated (#10613)
* Bump webextension-store-meta

* Add extension last updated

* Add extension size

* Run linter

* Rename last updated badge
2024-10-21 08:22:43 +00:00

42 lines
1.1 KiB
JavaScript

import { age } from '../color-formatters.js'
import { formatDate } from '../text-formatters.js'
import { NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'
export default class ChromeWebStoreLastUpdated extends BaseChromeWebStoreService {
static category = 'activity'
static route = { base: 'chrome-web-store/last-updated', pattern: ':storeId' }
static openApi = {
'/chrome-web-store/last-updated/{storeId}': {
get: {
summary: 'Chrome Web Store Last Updated',
parameters: pathParams({
name: 'storeId',
example: 'nccfelhkfpbnefflolffkclhenplhiab',
}),
},
},
}
static defaultBadgeData = {
label: 'last updated',
}
async handle({ storeId }) {
const chromeWebStore = await this.fetch({ storeId })
const lastUpdated = chromeWebStore.lastUpdated()
if (lastUpdated == null) {
throw new NotFound({ prettyMessage: 'not found' })
}
const lastUpdatedDate = Date.parse(lastUpdated)
return {
message: formatDate(lastUpdatedDate),
color: age(lastUpdatedDate),
}
}
}