Skip to content

Commit e0bac16

Browse files
committed
fix eslints
1 parent dbb5acb commit e0bac16

File tree

10 files changed

+75
-59
lines changed

10 files changed

+75
-59
lines changed

app/api/crates/[name]/[version]/route.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ interface Dependency {
1515
version: string;
1616
}
1717

18+
type Params = Promise<{ name: string, version: string }>
19+
1820
function generateRandomVulnerabilities(): Vulnerability[] {
1921
const severities: Vulnerability['severity'][] = ['low', 'medium', 'high'];
2022
const randomVulnerabilities: Vulnerability[] = [];
@@ -34,7 +36,8 @@ function generateRandomVulnerabilities(): Vulnerability[] {
3436
return randomVulnerabilities;
3537
}
3638

37-
export async function GET(req: NextRequest, { params }: { params: { name: string, version: string } }) {
39+
export async function GET(req: NextRequest, props: { params: Params }) {
40+
const params = await props.params
3841
const { name, version } = params;
3942
const nameAndVersion = `${name}/${version}`;
4043

@@ -58,7 +61,7 @@ export async function GET(req: NextRequest, { params }: { params: { name: string
5861
}
5962

6063
const versionInfo = versionRes.rows[0];
61-
const dependencies = dependenciesRes.rows.map((row: any) => ({
64+
const dependencies = dependenciesRes.rows.map((row) => ({
6265
name: row.dependency_name,
6366
version: row.dependency_version,
6467
}));

app/api/crates/[name]/route.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ import { NextRequest, NextResponse } from 'next/server';
22
import pool from '../../../lib/db';
33
import { CrateInfo } from '@/app/lib/crate_info';
44

5-
export async function GET(req: NextRequest, { params }: { params: { name: string } }) {
5+
type Params = Promise<{ name: string }>
6+
7+
export async function GET(req: NextRequest, props: { params: Params }) {
8+
const params = await props.params
9+
610
const { name } = params;
711

812
try {
@@ -27,7 +31,7 @@ export async function GET(req: NextRequest, { params }: { params: { name: string
2731
[name]
2832
);
2933

30-
const versions = versionsRes.rows.map((row: any) => row.version);
34+
const versions = versionsRes.rows.map((row) => row.version);
3135

3236
client.release();
3337

app/api/crates/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { NextRequest, NextResponse } from 'next/server';
1+
import { NextResponse } from 'next/server';
22

3-
export async function GET(req: NextRequest) {
3+
export async function GET() {
44
try {
55
// 发送 HTTP 请求获取外部数据
66
const externalApiUrl = 'http://210.28.134.203:6888/crates'; // 替换为你的外部 API URL

app/api/cves/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export async function GET() {
3434
try {
3535
const randomCVEs = Array.from({ length: 7 }, generateRandomCVE);
3636
return NextResponse.json(randomCVEs);
37-
} catch (error) {
37+
} catch {
3838
return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 });
3939
}
4040
}

app/api/submit/route.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { NextResponse } from 'next/server';
1+
import { NextRequest, NextResponse } from 'next/server';
22

3-
export async function POST(request: { json: () => any; }) {
3+
export async function POST(request: NextRequest) {
44
const apiUrl = process.env.API_URL; // 读取环境变量,获取后端服务的基础 URL
55
const body = await request.json(); // 解析请求体
66

@@ -19,7 +19,7 @@ export async function POST(request: { json: () => any; }) {
1919
//解析成功的响应
2020
const result = await response.json();
2121
return NextResponse.json({ message: 'Submission successful', data: result });
22-
} catch (error) {
22+
} catch {
2323
return NextResponse.json({ error: 'An error occurred while submitting data.' }, { status: 500 });
2424
}
2525
}

app/programs/[name]/[version]/page.tsx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
import { useRouter } from 'next/navigation';
33
import React, { useEffect, useState } from 'react';
44
import { useParams } from 'next/navigation';
5-
import Header from '../../../../components/Header';
6-
import Footer from '../../../../components/Footer';
7-
import CrateInfoCard from '../../../../components/CrateInfoCard';
8-
import DependenciesList, { Dependency } from '../../../../components/DependenciesList';
9-
import DependencyGraph, { GraphDependency } from '../../../../components/DependencyGraph';
10-
import VulnerabilitiesList, { Vulnerability } from '../../../../components/VulnerabilitiesList';
11-
import SecurityAdvisories from '../../../../components/SecurityAdvisories';
12-
import BenchmarkResults from '../../../../components/BenchmarkResults';
13-
import VersionsSelector from '../../../../components/VersionsSelector';
5+
import Header from '@/components/Header';
6+
import Footer from '@/components/Footer';
7+
import CrateInfoCard from '@/components/CrateInfoCard';
8+
import DependenciesList, { Dependency } from '@/components/DependenciesList';
9+
import DependencyGraph from '@/components/DependencyGraph';
10+
import VulnerabilitiesList, { Vulnerability } from '@/components/VulnerabilitiesList';
11+
import SecurityAdvisories from '@/components/SecurityAdvisories';
12+
import BenchmarkResults from '@/components/BenchmarkResults';
13+
import VersionsSelector from '@/components/VersionsSelector';
1414
import { CrateInfo } from '@/app/lib/crate_info';
1515
//异步获取依赖树
1616
async function fetchDependencyTree(name: string, version: string) {
@@ -36,7 +36,7 @@ const CratePage = () => {
3636
const [crateInfo, setCrateInfo] = useState<CrateInfo | null>(null);
3737
const [versions, setVersions] = useState<string[]>([]);
3838
const [dependencies, setDependencies] = useState<Dependency[]>([]);
39-
const [graphDependencies, setGraphDependencies] = useState<GraphDependency>();
39+
// const [graphDependencies, setGraphDependencies] = useState<GraphDependency>();
4040
const [vulnerabilities, setVulnerabilities] = useState<Vulnerability[]>([]);
4141
const [benchmarks, setBenchmarks] = useState<{ name: string; value: string }[]>([]);
4242
const { name, version } = useParams<{ name: string; version: string }>();
@@ -74,15 +74,15 @@ const CratePage = () => {
7474
});
7575

7676

77-
}, [crateName, currentVersion]);
77+
}, [crateName, currentVersion, name, version]);
7878

7979

8080
useEffect(() => {
8181
async function loadDependencies() {
8282
try {
8383
const graphDep = await fetchDependencyTree(crateName, currentVersion);
8484
console.log(graphDep);
85-
setGraphDependencies(graphDep);
85+
// setGraphDependencies(graphDep);
8686
} catch (error) {
8787
console.error('Error fetching dependency tree:', error);
8888
}
@@ -121,12 +121,14 @@ const CratePage = () => {
121121
<VersionsSelector
122122
versions={versions}
123123
currentVersion={version}
124-
crateName={crateInfo.name}
124+
// crateName={crateInfo.name}
125125
onVersionChange={handleVersionChange}
126126
/>
127127

128128
<DependenciesList dependencies={dependencies} onDependencyClick={handleDependencyClick} />
129-
<DependencyGraph crateName={name} currentVersion={version} dependencies={graphDependencies} />
129+
<DependencyGraph crateName={name} currentVersion={version}
130+
// dependencies={graphDependencies}
131+
/>
130132
</div>
131133
</div>
132134
</main>

app/programs/cves/[id]/page.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,20 @@ async function fetchCVE(id: string): Promise<CVE> {
2929
};
3030
}
3131

32-
export default function CVEDetail({ params }: { params: { id: string } }) {
32+
type Params = Promise<{ id: string }>
33+
34+
export default function CVEDetail({ params }: { params: Params }) {
35+
const { id } = React.use(params);
36+
3337
const [cve, setCve] = useState<CVE | null>(null);
3438

3539
useEffect(() => {
3640
const getCVE = async () => {
37-
const data = await fetchCVE(params.id);
41+
const data = await fetchCVE(id);
3842
setCve(data);
3943
};
4044
getCVE();
41-
}, [params.id]);
45+
}, [id]);
4246

4347
if (!cve) {
4448
return <div>Loading...</div>;

app/ui/programs/nav-links.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11

22
'use client';
33
import {
4-
UserGroupIcon,
54
HomeIcon,
6-
DocumentDuplicateIcon,
75
} from '@heroicons/react/24/outline';
86
import { PaperAirplaneIcon } from '@heroicons/react/24/outline';
97
import { useState } from 'react';
@@ -62,7 +60,7 @@ const NavLinks: React.FC = () => {
6260
} else {
6361
messageApi.error('提交失败,请重试', 2);
6462
}
65-
} catch (error) {
63+
} catch {
6664
messageApi.error('提交失败,请检查网络连接');
6765
//console.log('提交失败,请检查网络连接。', error);
6866
}

components/DependencyGraph.tsx

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,15 @@ interface DependencyLink extends d3.SimulationLinkDatum<DependencyNode> {
2121
export interface DependencyGraphProps {
2222
crateName: string;
2323
currentVersion: string;
24-
dependencies?: GraphDependency;
24+
// dependencies?: GraphDependency;
2525
}
2626

27-
const DependencyGraph: React.FC<DependencyGraphProps> = ({ crateName, currentVersion, dependencies }) => {
27+
interface SubDep {
28+
name: string;
29+
version: string;
30+
}
31+
32+
const DependencyGraph: React.FC<DependencyGraphProps> = ({ crateName, currentVersion }) => {
2833
const [graphDependencies, setGraphDependencies] = useState<GraphDependency | null>(null);
2934
const d3Container = useRef<HTMLDivElement | null>(null);
3035
const router = useRouter();
@@ -33,10 +38,10 @@ const DependencyGraph: React.FC<DependencyGraphProps> = ({ crateName, currentVer
3338
async function fetchDependencyTree(name: string, version: string): Promise<GraphDependency> {
3439
const response = await fetch(`/api/crates/${name}/${version}`);
3540
const versionData = await response.json();
36-
41+
3742
const dependencies = versionData.dependencies || [];
38-
39-
const dependenciesDetails = await Promise.all(dependencies.map(async (subDep: any) => {
43+
44+
const dependenciesDetails = await Promise.all(dependencies.map(async (subDep: SubDep) => {
4045
return fetchDependencyTree(subDep.name, subDep.version);
4146
}));
4247

@@ -65,25 +70,25 @@ const DependencyGraph: React.FC<DependencyGraphProps> = ({ crateName, currentVer
6570
d3.select(d3Container.current).select('svg').remove();
6671

6772
const svg = d3.select(d3Container.current).append('svg')
68-
.attr('width', '100%')
69-
.attr('height', '100%')
70-
.attr('viewBox', `0 0 ${width} ${height}`)
71-
.attr('preserveAspectRatio', 'xMidYMid meet');
73+
.attr('width', '100%')
74+
.attr('height', '100%')
75+
.attr('viewBox', `0 0 ${width} ${height}`)
76+
.attr('preserveAspectRatio', 'xMidYMid meet');
7277

7378
svg.append('defs').append('marker')
74-
.attr('id', 'arrowhead')
75-
.attr('viewBox', '0 -5 10 10')
76-
.attr('refX', 20) // 增加 refX 以使箭头远离节点
77-
.attr('refY', 0)
78-
.attr('orient', 'auto')
79-
.attr('markerWidth', 7)
80-
.attr('markerHeight', 7)
81-
.append('path')
82-
.attr('d', 'M 0,-5 L 10,0 L 0,5')
83-
.attr('fill', '#333')
84-
.style('stroke', 'none');
85-
86-
79+
.attr('id', 'arrowhead')
80+
.attr('viewBox', '0 -5 10 10')
81+
.attr('refX', 20) // 增加 refX 以使箭头远离节点
82+
.attr('refY', 0)
83+
.attr('orient', 'auto')
84+
.attr('markerWidth', 7)
85+
.attr('markerHeight', 7)
86+
.append('path')
87+
.attr('d', 'M 0,-5 L 10,0 L 0,5')
88+
.attr('fill', '#333')
89+
.style('stroke', 'none');
90+
91+
8792

8893
const nodesMap = new Map<string, DependencyNode>();
8994
const links: DependencyLink[] = [];
@@ -108,12 +113,12 @@ const DependencyGraph: React.FC<DependencyGraphProps> = ({ crateName, currentVer
108113
const nodes = Array.from(nodesMap.values());
109114

110115
const simulation = d3.forceSimulation<DependencyNode>(nodes)
111-
.force('link', d3.forceLink<DependencyNode, DependencyLink>(links).id(d => d.id).distance(100)) // 增加距离
112-
.force('charge', d3.forceManyBody().strength(-500)) // 增加排斥力
113-
.force('center', d3.forceCenter(width / 2, height / 2))
114-
.force('collide', d3.forceCollide().radius(50)); // 增加碰撞半径
116+
.force('link', d3.forceLink<DependencyNode, DependencyLink>(links).id(d => d.id).distance(100)) // 增加距离
117+
.force('charge', d3.forceManyBody().strength(-500)) // 增加排斥力
118+
.force('center', d3.forceCenter(width / 2, height / 2))
119+
.force('collide', d3.forceCollide().radius(50)); // 增加碰撞半径
115120

116-
const link = svg.append('g')
121+
const link = svg.append('g')
117122
.selectAll('line')
118123
.data(links)
119124
.enter().append('line')

components/VersionsSelector.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import React from 'react';
44
interface VersionsSelectorProps {
55
versions: string[];
66
currentVersion: string;
7-
crateName: string;
7+
// crateName: string;
88
onVersionChange: (version: string) => void;
99
}
1010

11-
const VersionsSelector: React.FC<VersionsSelectorProps> = ({ versions, currentVersion, crateName, onVersionChange }) => {
11+
const VersionsSelector: React.FC<VersionsSelectorProps> = ({ versions, currentVersion, onVersionChange }) => {
1212
return (
1313
<div className="bg-white p-4 mb-2 shadow-lg rounded-lg">
1414
<div className="flex items-center mb-0">

0 commit comments

Comments
 (0)