kopia lustrzana https://github.com/badgen/badgen.net
35 wiersze
908 B
TypeScript
35 wiersze
908 B
TypeScript
|
import got from '../libs/got'
|
||
|
import { version as versionName, versionColor } from '../libs/utils'
|
||
|
import { createBadgenHandler, PathArgs } from '../libs/create-badgen-handler'
|
||
|
|
||
|
export default createBadgenHandler({
|
||
|
title: 'Cocoapods',
|
||
|
examples: {
|
||
|
'/cocoapods/v/AFNetworking': 'version',
|
||
|
'/cocoapods/p/AFNetworking': 'platform',
|
||
|
},
|
||
|
handlers: {
|
||
|
'/cocoapods/:topic<v|p>/:pod': handler
|
||
|
}
|
||
|
})
|
||
|
|
||
|
async function handler ({topic, pod}: PathArgs) {
|
||
|
const endpoint = `https://trunk.cocoapods.org/api/v1/pods/${pod}/specs/latest`
|
||
|
const { version, platforms } = await got(endpoint).json<any>()
|
||
|
|
||
|
switch (topic) {
|
||
|
case 'v':
|
||
|
return {
|
||
|
subject: 'pod',
|
||
|
status: versionName(version),
|
||
|
color: versionColor(version)
|
||
|
}
|
||
|
case 'p':
|
||
|
return {
|
||
|
subject: 'platform',
|
||
|
status: Object.keys(platforms).join(' | '),
|
||
|
color: 'grey'
|
||
|
}
|
||
|
}
|
||
|
}
|