Skip to content

Commit

Permalink
Merge pull request #48 from SplittyDev/task/add-biome
Browse files Browse the repository at this point in the history
Integrate Biome
  • Loading branch information
SplittyDev committed Jun 1, 2024
2 parents 1a5d72a + 176a3c5 commit 16da293
Show file tree
Hide file tree
Showing 55 changed files with 1,259 additions and 699 deletions.
2 changes: 1 addition & 1 deletion badgers-web/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"extends": "next/core-web-vitals"
"extends": "next/core-web-vitals"
}
30 changes: 30 additions & 0 deletions badgers-web/biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$schema": "https://biomejs.dev/schemas/1.7.3/schema.json",
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 4,
"lineEnding": "lf"
},
"javascript": {
"formatter": {
"semicolons": "asNeeded",
"quoteStyle": "single",
"arrowParentheses": "asNeeded"
}
},
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
}
}
62 changes: 31 additions & 31 deletions badgers-web/package.json
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
{
"name": "badgers-web",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@octokit/rest": "^19.0.8",
"@types/node": "20.1.4",
"@types/react": "18.2.6",
"@types/react-dom": "18.2.4",
"@vercel/analytics": "^1.0.1",
"autoprefixer": "10.4.14",
"crates.io": "^2.2.4",
"eslint": "8.57.0",
"eslint-config-next": "^14.2.3",
"next": "^14.2.3",
"postcss": "8.4.31",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"tailwindcss": "3.3.2",
"typescript": "5.0.4"
},
"devDependencies": {
"@octokit/types": "^9.2.2",
"encoding": "^0.1.13",
"sharp": "^0.33.3"
}
"name": "badgers-web",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@octokit/rest": "^19.0.8",
"@types/node": "20.1.4",
"@types/react": "18.2.6",
"@types/react-dom": "18.2.4",
"@vercel/analytics": "^1.0.1",
"autoprefixer": "10.4.14",
"crates.io": "^2.2.4",
"eslint": "8.57.0",
"eslint-config-next": "^14.2.3",
"next": "^14.2.3",
"postcss": "8.4.31",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"tailwindcss": "3.3.2",
"typescript": "5.0.4"
},
"devDependencies": {
"@octokit/types": "^9.2.2",
"encoding": "^0.1.13",
"sharp": "^0.33.3"
}
}
8 changes: 4 additions & 4 deletions badgers-web/postcss.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
2 changes: 1 addition & 1 deletion badgers-web/src/app/badge/[...params]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'

Expand Down
18 changes: 14 additions & 4 deletions badgers-web/src/app/codeberg/closed-issues/[owner]/[repo]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Codeberg from '@/utils/Codeberg'
Expand All @@ -10,10 +10,20 @@ interface Params {
}
}

export async function GET(request: NextRequest, { params: { owner, repo } }: Params) {
const closedIssuesCount = await Codeberg.getClient().getIssuesCount({ owner, repo }, { type: 'issues', state: 'closed' })
export async function GET(
request: NextRequest,
{ params: { owner, repo } }: Params,
) {
const closedIssuesCount = await Codeberg.getClient().getIssuesCount(
{ owner, repo },
{ type: 'issues', state: 'closed' },
)

return await Badge.generate(request, 'closed issues', closedIssuesCount?.toString() ?? 'None')
return await Badge.generate(
request,
'closed issues',
closedIssuesCount?.toString() ?? 'None',
)
}

export const runtime = 'edge'
18 changes: 14 additions & 4 deletions badgers-web/src/app/codeberg/issues/[owner]/[repo]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Codeberg from '@/utils/Codeberg'
Expand All @@ -10,10 +10,20 @@ interface Params {
}
}

export async function GET(request: NextRequest, { params: { owner, repo } }: Params) {
const issuesCount = await Codeberg.getClient().getIssuesCount({ owner, repo }, { type: 'issues', state: 'all' })
export async function GET(
request: NextRequest,
{ params: { owner, repo } }: Params,
) {
const issuesCount = await Codeberg.getClient().getIssuesCount(
{ owner, repo },
{ type: 'issues', state: 'all' },
)

return await Badge.generate(request, 'issues', issuesCount?.toString() ?? 'None')
return await Badge.generate(
request,
'issues',
issuesCount?.toString() ?? 'None',
)
}

export const runtime = 'edge'
18 changes: 14 additions & 4 deletions badgers-web/src/app/codeberg/open-issues/[owner]/[repo]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Codeberg from '@/utils/Codeberg'
Expand All @@ -10,10 +10,20 @@ interface Params {
}
}

export async function GET(request: NextRequest, { params: { owner, repo } }: Params) {
const openIssuesCount = await Codeberg.getClient().getIssuesCount({ owner, repo }, { type: 'issues', state: 'open' })
export async function GET(
request: NextRequest,
{ params: { owner, repo } }: Params,
) {
const openIssuesCount = await Codeberg.getClient().getIssuesCount(
{ owner, repo },
{ type: 'issues', state: 'open' },
)

return await Badge.generate(request, 'open issues', openIssuesCount?.toString() ?? 'None')
return await Badge.generate(
request,
'open issues',
openIssuesCount?.toString() ?? 'None',
)
}

export const runtime = 'edge'
19 changes: 12 additions & 7 deletions badgers-web/src/app/codeberg/release/[owner]/[repo]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from 'next/server'
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Codeberg from '@/utils/Codeberg'
Expand All @@ -10,18 +10,23 @@ interface Params {
}
}

export async function GET(request: NextRequest, { params: { owner, repo } }: Params) {
export async function GET(
request: NextRequest,
{ params: { owner, repo } }: Params,
) {
const release = await Codeberg.getClient().getLatestRelease({ owner, repo })

const shortestName = (() => {
if (release === null) { return null }
return [release?.tag_name, release?.name]
.filter(Boolean)
.reduce((a, b) => a!.length < b!.length ? a : b)
if (release === null) {
return null
}
return [release.tag_name, release.name].reduce((a, b) =>
a.length < b.length ? a : b,
)
})()

return await Badge.generate(request, 'release', shortestName ?? 'None', {
color: !!shortestName ? 'blue' : 'yellow'
color: shortestName ? 'blue' : 'yellow',
})
}

Expand Down
18 changes: 13 additions & 5 deletions badgers-web/src/app/codeberg/stars/[owner]/[repo]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from 'next/server'
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Codeberg from '@/utils/Codeberg'
Expand All @@ -10,13 +10,21 @@ interface Params {
}
}

export async function GET(request: NextRequest, { params: { owner, repo } }: Params) {
export async function GET(
request: NextRequest,
{ params: { owner, repo } }: Params,
) {
const repository = await Codeberg.getClient().getRepository({ owner, repo })
const stargazers = repository?.stars_count

return await Badge.generate(request, 'stars', stargazers?.toString() ?? 'None', {
color: !!stargazers ? 'blue' : 'yellow'
})
return await Badge.generate(
request,
'stars',
stargazers?.toString() ?? 'None',
{
color: stargazers ? 'blue' : 'yellow',
},
)
}

export const runtime = 'edge'
23 changes: 17 additions & 6 deletions badgers-web/src/app/crates/downloads/[crate]/latest/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Crates from '@/utils/Crates'
Expand All @@ -10,16 +10,27 @@ interface Params {
}

export async function GET(request: NextRequest, { params: { crate } }: Params) {
const resp = await Crates.wrapRequest(crates => crates.api.crates.getVersions(crate))
const resp = await Crates.wrapRequest(crates =>
crates.api.crates.getVersions(crate),
)
if (resp === null) return await Badge.error(request, 'crates.io')
const latestVersion = resp.versions
.filter(v => !v.yanked)
.sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime())
.sort(
(a, b) =>
new Date(b.updated_at).getTime() -
new Date(a.updated_at).getTime(),
)
.shift()
if (latestVersion === undefined) return await Badge.error(request, 'crates.io')
if (latestVersion === undefined)
return await Badge.error(request, 'crates.io')
const downloadCount = Intl.NumberFormat('en-US', {
notation: 'compact',
maximumFractionDigits: 1
maximumFractionDigits: 1,
}).format(latestVersion.downloads)
return await Badge.generate(request, 'downloads', `${downloadCount} latest version`)
return await Badge.generate(
request,
'downloads',
`${downloadCount} latest version`,
)
}
8 changes: 5 additions & 3 deletions badgers-web/src/app/crates/downloads/[crate]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Crates from '@/utils/Crates'
Expand All @@ -10,11 +10,13 @@ interface Params {
}

export async function GET(request: NextRequest, { params: { crate } }: Params) {
const resp = await Crates.wrapRequest(crates => crates.api.crates.getCrate(crate))
const resp = await Crates.wrapRequest(crates =>
crates.api.crates.getCrate(crate),
)
if (resp === null) return await Badge.error(request, 'crates.io')
const downloadCount = Intl.NumberFormat('en-US', {
notation: 'compact',
maximumFractionDigits: 1
maximumFractionDigits: 1,
}).format(resp.crate.downloads)
return await Badge.generate(request, 'downloads', downloadCount)
}
25 changes: 19 additions & 6 deletions badgers-web/src/app/crates/info/[crate]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Crates from '@/utils/Crates'
Expand All @@ -10,14 +10,27 @@ interface Params {
}

export async function GET(request: NextRequest, { params: { crate } }: Params) {
const crateResp = await Crates.wrapRequest(crates => crates.api.crates.getCrate(crate))
const crateResp = await Crates.wrapRequest(crates =>
crates.api.crates.getCrate(crate),
)
if (crateResp === null) return await Badge.error(request, 'crates.io')
const versionsResp = await Crates.wrapRequest(crates => crates.api.crates.getVersions(crate))
const versionsResp = await Crates.wrapRequest(crates =>
crates.api.crates.getVersions(crate),
)
if (versionsResp === null) return await Badge.error(request, 'crates.io')
const latestVersion = versionsResp.versions
.filter(v => !v.yanked)
.sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime())
.sort(
(a, b) =>
new Date(b.updated_at).getTime() -
new Date(a.updated_at).getTime(),
)
.shift()
if (latestVersion === undefined) return await Badge.error(request, 'crates.io')
return await Badge.generate(request, 'crates.io', `${crateResp.crate.name} v${latestVersion.num}`)
if (latestVersion === undefined)
return await Badge.error(request, 'crates.io')
return await Badge.generate(
request,
'crates.io',
`${crateResp.crate.name} v${latestVersion.num}`,
)
}
6 changes: 4 additions & 2 deletions badgers-web/src/app/crates/name/[crate]/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NextRequest } from "next/server"
import type { NextRequest } from 'next/server'

import Badge from '@/utils/Badge'
import Crates from '@/utils/Crates'
Expand All @@ -10,7 +10,9 @@ interface Params {
}

export async function GET(request: NextRequest, { params: { crate } }: Params) {
const crateResp = await Crates.wrapRequest(crates => crates.api.crates.getCrate(crate))
const crateResp = await Crates.wrapRequest(crates =>
crates.api.crates.getCrate(crate),
)
if (crateResp === null) return await Badge.error(request, 'crates.io')
return await Badge.generate(request, 'crates.io', `${crateResp.crate.name}`)
}
Loading

0 comments on commit 16da293

Please sign in to comment.