Skip to content

Commit

Permalink
Add extension size
Browse files Browse the repository at this point in the history
  • Loading branch information
aiden2480 committed Oct 14, 2024
1 parent be656d3 commit 21f60c6
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
35 changes: 35 additions & 0 deletions services/chrome-web-store/chrome-web-store-size.service.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'

export default class ChromeWebStoreSize extends BaseChromeWebStoreService {
static category = 'size'
static route = { base: 'chrome-web-store/size', pattern: ':storeId' }

static openApi = {
'/chrome-web-store/size/{storeId}': {
get: {
summary: 'Chrome Web Store Size',
parameters: pathParams({
name: 'storeId',
example: 'nccfelhkfpbnefflolffkclhenplhiab',
}),
},
},
}

static defaultBadgeData = {
label: 'extension size',
color: 'blue'
}

async handle({ storeId }) {
const chromeWebStore = await this.fetch({ storeId })
const size = chromeWebStore.size()

if (size == null) {
throw new NotFound({ prettyMessage: 'not found' })
}

return { message: size }
}
}
13 changes: 13 additions & 0 deletions services/chrome-web-store/chrome-web-store-size.tester.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { createServiceTester } from '../tester.js'

export const t = await createServiceTester()
const isFileSize = /^\d+(\.\d+)?(MiB|KiB)$/;

t.create('Size').get('/nccfelhkfpbnefflolffkclhenplhiab.json').expectBadge({
label: 'extension size',
message: isFileSize,
})

t.create('Size (not found)')
.get('/invalid-name-of-addon.json')
.expectBadge({ label: 'extension size', message: 'not found' })

0 comments on commit 21f60c6

Please sign in to comment.