Skip to content

Commit 0208898

Browse files
committed
Upgrade @koa/router to v15
1 parent 9563317 commit 0208898

File tree

8 files changed

+49
-30
lines changed

8 files changed

+49
-30
lines changed

app/routes.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint babel/semi: "error" */
2-
import Router from '@koa/router';
2+
import { Router } from '@koa/router';
33
import cors from '@koa/cors';
44

55
import AttachmentsRoute from './routes/api/v1/AttachmentsRoute';
@@ -94,7 +94,13 @@ export function createRouter() {
9494
HashtagsRoute(publicRouter);
9595

9696
const router = new Router();
97-
router.use('/v([1-9]\\d*)', publicRouter.routes(), publicRouter.allowedMethods());
97+
98+
router.use(
99+
'/v:version',
100+
validateApiVersion,
101+
publicRouter.routes(),
102+
publicRouter.allowedMethods(),
103+
);
98104

99105
{
100106
const adminRouter = new Router();
@@ -119,3 +125,15 @@ function fixMatchedRouteMiddleware(ctx, next) {
119125
ctx.state.matchedRoute = ctx.matched.find((layer) => layer.methods.includes(ctx.method)).path;
120126
return next();
121127
}
128+
129+
// Validate API version parameter (v1, v2, etc.)
130+
async function validateApiVersion(ctx, next) {
131+
const { version } = ctx.params;
132+
133+
if (!/^[1-9]\d*$/.test(version)) {
134+
ctx.status = 404;
135+
return;
136+
}
137+
138+
await next();
139+
}

app/routes/api/admin/AdminRoute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Router from '@koa/router';
1+
import { type Router } from '@koa/router';
22
import { type DefaultStateExtends } from 'koa';
33

44
import { listUsers, promoteModerator } from '../../../controllers/api/admin/AdminController';

app/routes/api/admin/CommonRoute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Router from '@koa/router';
1+
import { type Router } from '@koa/router';
22
import { type DefaultState } from 'koa';
33

44
import { journal, whoAmI } from '../../../controllers/api/admin/CommonController';

app/routes/api/admin/ModeratorRoute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Router from '@koa/router';
1+
import { type Router } from '@koa/router';
22
import { type DefaultState } from 'koa';
33

44
import { adminRolesRequired } from '../../../controllers/middlewares/admin-only';

app/routes/api/v2/CorsProxyRoute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type Router from '@koa/router';
1+
import { type Router } from '@koa/router';
22

33
import { proxy } from '../../../controllers/api/v2/CorsProxyController';
44

app/routes/api/v2/UndoRoute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type Router from '@koa/router';
1+
import { type Router } from '@koa/router';
22

33
import { undo } from '../../../controllers/api/v2/UndoController';
44

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"@keyv/redis": "~5.1.5",
4343
"@koa/cors": "~5.0.0",
4444
"@koa/etag": "~5.0.2",
45-
"@koa/router": "~13.1.1",
45+
"@koa/router": "~15.2.0",
4646
"@socket.io/redis-adapter": "~8.3.0",
4747
"@types/react": "~19.2.8",
4848
"@types/react-dom": "~19.2.3",
@@ -129,7 +129,6 @@
129129
"@types/koa-morgan": "~1.0.9",
130130
"@types/koa-response-time": "~2.1.5",
131131
"@types/koa-static": "~4.0.4",
132-
"@types/koa__router": "~12.0.5",
133132
"@types/lodash-es": "^4.17.12",
134133
"@types/mime-types": "~3.0.1",
135134
"@types/mocha": "~10.0.10",

yarn.lock

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,15 +1410,20 @@ __metadata:
14101410
languageName: node
14111411
linkType: hard
14121412

1413-
"@koa/router@npm:~13.1.1":
1414-
version: 13.1.1
1415-
resolution: "@koa/router@npm:13.1.1"
1413+
"@koa/router@npm:~15.2.0":
1414+
version: 15.2.0
1415+
resolution: "@koa/router@npm:15.2.0"
14161416
dependencies:
1417-
debug: "npm:^4.4.1"
1418-
http-errors: "npm:^2.0.0"
1417+
debug: "npm:^4.4.3"
1418+
http-errors: "npm:^2.0.1"
14191419
koa-compose: "npm:^4.1.0"
1420-
path-to-regexp: "npm:^6.3.0"
1421-
checksum: 10c0/041a568968f1d0a2f05a4f5add1d95e5e9e127a625c4b30be8ca3884f798cf560bf23722d00ca55cbc729f5e509bddc05b39b95b0625e79420baa2ffa140d644
1420+
path-to-regexp: "npm:^8.3.0"
1421+
peerDependencies:
1422+
koa: ^2.0.0 || ^3.0.0
1423+
peerDependenciesMeta:
1424+
koa:
1425+
optional: false
1426+
checksum: 10c0/671679ea4ca5c0755136ecf02a43dde55730e4783d39f53f8f5176878b957d0d4526bea829f164c2ea1c8c45c5bfd858b9b8faa711a17872d632cc5cb568e70e
14221427
languageName: node
14231428
linkType: hard
14241429

@@ -2590,15 +2595,6 @@ __metadata:
25902595
languageName: node
25912596
linkType: hard
25922597

2593-
"@types/koa__router@npm:~12.0.5":
2594-
version: 12.0.5
2595-
resolution: "@types/koa__router@npm:12.0.5"
2596-
dependencies:
2597-
"@types/koa": "npm:*"
2598-
checksum: 10c0/7f994a809a5ab308a62b876a259cec49bcdd261d17c0a48d9eeda324bd655e25474ac534c7949dd5aefd4f391fa9ceb52c047e49bf7aa1bfa610d6a60e31ac32
2599-
languageName: node
2600-
linkType: hard
2601-
26022598
"@types/lodash-es@npm:^4.17.12":
26032599
version: 4.17.12
26042600
resolution: "@types/lodash-es@npm:4.17.12"
@@ -4304,7 +4300,7 @@ __metadata:
43044300
languageName: node
43054301
linkType: hard
43064302

4307-
"debug@npm:*, debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7, debug@npm:^4.4.1, debug@npm:^4.4.3, debug@npm:~4.4.1, debug@npm:~4.4.3":
4303+
"debug@npm:*, debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7, debug@npm:^4.4.3, debug@npm:~4.4.1, debug@npm:~4.4.3":
43084304
version: 4.4.3
43094305
resolution: "debug@npm:4.4.3"
43104306
dependencies:
@@ -5888,7 +5884,7 @@ __metadata:
58885884
"@keyv/redis": "npm:~5.1.5"
58895885
"@koa/cors": "npm:~5.0.0"
58905886
"@koa/etag": "npm:~5.0.2"
5891-
"@koa/router": "npm:~13.1.1"
5887+
"@koa/router": "npm:~15.2.0"
58925888
"@socket.io/redis-adapter": "npm:~8.3.0"
58935889
"@types/debug": "npm:~4.1.12"
58945890
"@types/ejs": "npm:~3.1.5"
@@ -5900,7 +5896,6 @@ __metadata:
59005896
"@types/koa-morgan": "npm:~1.0.9"
59015897
"@types/koa-response-time": "npm:~2.1.5"
59025898
"@types/koa-static": "npm:~4.0.4"
5903-
"@types/koa__router": "npm:~12.0.5"
59045899
"@types/lodash-es": "npm:^4.17.12"
59055900
"@types/mime-types": "npm:~3.0.1"
59065901
"@types/mocha": "npm:~10.0.10"
@@ -6538,7 +6533,7 @@ __metadata:
65386533
languageName: node
65396534
linkType: hard
65406535

6541-
"http-errors@npm:^2.0.0, http-errors@npm:~2.0.1":
6536+
"http-errors@npm:^2.0.0, http-errors@npm:^2.0.1, http-errors@npm:~2.0.1":
65426537
version: 2.0.1
65436538
resolution: "http-errors@npm:2.0.1"
65446539
dependencies:
@@ -9083,13 +9078,20 @@ __metadata:
90839078
languageName: node
90849079
linkType: hard
90859080

9086-
"path-to-regexp@npm:^6.1.0, path-to-regexp@npm:^6.3.0":
9081+
"path-to-regexp@npm:^6.1.0":
90879082
version: 6.3.0
90889083
resolution: "path-to-regexp@npm:6.3.0"
90899084
checksum: 10c0/73b67f4638b41cde56254e6354e46ae3a2ebc08279583f6af3d96fe4664fc75788f74ed0d18ca44fa4a98491b69434f9eee73b97bb5314bd1b5adb700f5c18d6
90909085
languageName: node
90919086
linkType: hard
90929087

9088+
"path-to-regexp@npm:^8.3.0":
9089+
version: 8.3.0
9090+
resolution: "path-to-regexp@npm:8.3.0"
9091+
checksum: 10c0/ee1544a73a3f294a97a4c663b0ce71bbf1621d732d80c9c9ed201b3e911a86cb628ebad691b9d40f40a3742fe22011e5a059d8eed2cf63ec2cb94f6fb4efe67c
9092+
languageName: node
9093+
linkType: hard
9094+
90939095
"path-type@npm:^3.0.0":
90949096
version: 3.0.0
90959097
resolution: "path-type@npm:3.0.0"

0 commit comments

Comments
 (0)