refactor: style tweaks (#499)

* style: use owner/repo instead of user/repo

* feat(maven): support `metadata-url` shorthand

* style(badgesize): use `file-url` to mark an external URL

* style(https): rename `path` to `pathname`

Co-authored-by: Amio Jin <amio.cn@gmail.com>
pull/502/head
Dario Vladović 2021-02-15 04:32:23 +01:00 zatwierdzone przez GitHub
rodzic 578ec7e285
commit 44a9a2f1df
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
6 zmienionych plików z 41 dodań i 32 usunięć

Wyświetl plik

@ -7,29 +7,32 @@ export default createBadgenHandler({
'/badgesize/normal/amio/emoji.json/master/emoji-compact.json': 'normal size',
'/badgesize/brotli/amio/emoji.json/master/emoji-compact.json': 'brotli size',
'/badgesize/gzip/amio/emoji.json/master/emoji-compact.json': 'gzip size',
'/badgesize/normal/https/unpkg.com/snarkdown/dist/snarkdown.js': 'arbitrary url',
'/badgesize/normal/file-url/https/unpkg.com/snarkdown/dist/snarkdown.js': 'arbitrary url',
'/badgesize/normal/file-url/unpkg.com/snarkdown/dist/snarkdown.js': 'arbitrary url',
},
handlers: {
'/badgesize/:topic/:path+': handler
'/badgesize/:topic/file-url/:protocol<https?:?>/:hostname/:pathname+': urlHandler,
'/badgesize/:topic/file-url/:hostname/:pathname+': urlHandler,
'/badgesize/:topic/:protocol<https?:?>/:hostname/:pathname+': urlHandler,
'/badgesize/:topic/:owner/:repo/:path+': githubHandler
}
})
async function handler ({ topic, path }: PathArgs) {
if (path.startsWith('http/')) {
path = path.slice(0, 4) + ':/' + path.slice(4)
} else if (path.startsWith('https/')) {
path = path.slice(0, 5) + ':/' + path.slice(5)
} else if (path.startsWith('http:/')) {
path = path.slice(0, 5) + '/' + path.slice(5)
} else if (path.startsWith('https:/')) {
path = path.slice(0, 6) + '/' + path.slice(6)
}
function githubHandler ({ topic, owner, repo, path }: PathArgs) {
path = [owner, repo, path].join('/')
return badgesize({ path, topic })
}
function urlHandler ({ topic, protocol = 'https:', hostname, pathname }: PathArgs) {
const url = protocol.replace(/:?$/, `://${hostname}/${pathname}`)
return badgesize({ path: url, topic })
}
async function badgesize ({ path, topic }) {
const endpoint = `https://img.badgesize.io/${path}.json`
const { prettySize, color } = await got(endpoint, {
searchParams: {
compression: topic === 'normal' ? '' : topic
}
}).json<any>()
const searchParams = new URLSearchParams()
if (topic !== 'normal') searchParams.set('topic', topic)
const { prettySize, color } = await got(endpoint, { searchParams }).json<any>()
return {
subject: topic === 'normal' ? 'size' : `${topic} size`,

Wyświetl plik

@ -11,7 +11,7 @@ export default createBadgenHandler({
'/david/dep/babel/babel/packages/babel-cli': 'dependencies (sub path)',
},
handlers: {
'/david/:topic/:user/:repo/:path*': handler
'/david/:topic/:owner/:repo/:path*': handler
}
})
@ -23,7 +23,7 @@ const statusInfo = {
none: ['none', 'green']
}
async function handler ({ topic, user, repo, path = '' }: PathArgs) {
async function handler ({ topic, owner, repo, path = '' }: PathArgs) {
const prefix = {
dep: '',
dev: 'dev-',
@ -31,7 +31,7 @@ async function handler ({ topic, user, repo, path = '' }: PathArgs) {
optional: 'optional-'
}[topic]
const endpoint = `https://david-dm.org/${user}/${repo}/${prefix}info.json`
const endpoint = `https://david-dm.org/${owner}/${repo}/${prefix}info.json`
const { status } = await got(endpoint, {
searchParams: { path }
}).json<any>()

Wyświetl plik

@ -54,11 +54,11 @@ export default createBadgenHandler({
'/https/cal-badge-icd0onfvrxx6.runkit.sh/America/Los_Angeles': 'https endpoint (with path args)',
},
handlers: {
'/https/:hostname/:path*': handler
'/https/:hostname/:pathname*': handler
}
})
async function handler ({ hostname, path }: PathArgs) {
const endpoint = `https://${hostname}/${path || ''}`
async function handler ({ hostname, pathname }: PathArgs) {
const endpoint = `https://${hostname}/${pathname || ''}`
return await got(endpoint).json<any>()
}

Wyświetl plik

@ -11,10 +11,12 @@ export default createBadgenHandler({
'/maven/v/maven-central/com.google.code.gson/gson': 'version (maven-central)',
'/maven/v/jcenter/com.squareup.okhttp3/okhttp': 'version (jcenter)',
'/maven/v/metadata-url/https/repo1.maven.org/maven2/com/google/code/gson/gson/maven-metadata.xml': 'version (maven metadata url)',
'/maven/v/metadata-url/repo1.maven.org/maven2/com/google/code/gson/gson/maven-metadata.xml': 'version (maven metadata url)',
},
handlers: {
'/maven/v/:repo<maven-central|jcenter>/:group/:artifact': mavenRepoHandler,
'/maven/v/metadata-url/:path+': mavenUrlHandler,
'/maven/v/metadata-url/:protocol<https?:?>/:hostname/:pathname+': mavenUrlHandler,
'/maven/v/metadata-url/:hostname/:pathname+': mavenUrlHandler,
}
})
@ -36,8 +38,8 @@ async function mavenRepoHandler ({ repo, group, artifact }: PathArgs) {
}
}
async function mavenUrlHandler ({ path }: PathArgs) {
const url = path.replace(/^(https?):?\//, (_, scheme) => `${scheme}://`)
async function mavenUrlHandler ({ protocol = 'https:', hostname, pathname }: PathArgs) {
const url = protocol.replace(/:?$/, `://${hostname}/${pathname}`)
const xml = await got(url).text()
const version = xml.match(/<latest>([^<]+)<\//i)?.[1].trim() ?? 'unknown'
return {

Wyświetl plik

@ -10,17 +10,21 @@ export default createBadgenHandler({
'/snyk/rollup/plugins/master/packages%2Falias%2Fpackage.json': 'vulnerability scan (custom path)'
},
handlers: {
'/snyk/:user/:repo/:branch?/:targetFile?': handler
'/snyk/:owner/:repo/:branch?/:targetFile?': handler
}
})
async function handler ({ user, repo, branch, targetFile }: PathArgs) {
const path = [user, repo, branch].filter(Boolean).join('/')
async function handler ({ owner, repo, branch, targetFile }: PathArgs) {
const path = [owner, repo, branch].filter(Boolean).join('/')
const badgeUrl = `https://snyk.io/test/github/${path}/badge.svg`
const searchParams = new URLSearchParams()
if (targetFile) searchParams.set('targetFile', targetFile)
const resp = await got(badgeUrl, { searchParams, timeout: 3500 })
const params = isBadge(resp) && parseBadge(resp.body)
return params || {
subject: 'snyk',
status: 'unknown',

Wyświetl plik

@ -8,12 +8,12 @@ export default createBadgenHandler({
'/travis/babel/babel/6.x': 'build (branch)',
},
handlers: {
'/travis/:user/:repo/:branch?': handler
'/travis/:owner/:repo/:branch?': handler
}
})
async function handler ({ user, repo, branch }: PathArgs) {
const badgePath = `${user}/${repo}.svg`
async function handler ({ owner, repo, branch }: PathArgs) {
const badgePath = `${owner}/${repo}.svg`
const searchParams = new URLSearchParams()
if (branch) searchParams.set('branch', branch)
const [svg1, svg2] = await Promise.all([