Skip to content

Commit db20f6f

Browse files
nclaywelllart2150
authored andcommitted
feat: replace koa-jsonapi-zod with @jsonapi-serde/integration-koa
- Drop koa-jsonapi-zod - Add @jsonapi-serde/integration-koa and @jsonapi-serde/server - Sort type now imported from @jsonapi-serde/server/request - Add type cast on Router onMethodNotAllowed to bridge tree-router's @types/koa@2 against integration-koa's Koa v3 types
1 parent eae0c88 commit db20f6f

3 files changed

Lines changed: 14 additions & 9 deletions

File tree

‎skeleton/packages/api/package.json.liquid‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
{%- if features contains "app-config" %}
2121
"@{{project.name}}/app-config": "workspace:*",
2222
{%- endif %}
23+
"@jsonapi-serde/integration-koa": "^1.2.8",
24+
"@jsonapi-serde/server": "^1.9.0",
2325
"@koa/bodyparser": "^6.1.0",
2426
"@koa/cors": "^5.0.0",
2527
"body-parser": "^2.2.0",
@@ -32,7 +34,6 @@
3234
"koa": "^3.2.0",
3335
"koa-cache-control": "^2.0.0",
3436
"koa-compress": "^5.1.1",
35-
"koa-jsonapi-zod": "^3.6.0",
3637
"koa-tree-router": "^0.13.0",
3738
"logforth": "^1.2.2",
3839
"nanoid": "^5.1.5",

‎skeleton/packages/api/src/index.ts.liquid‎

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import * as zlib from "node:zlib";
2+
import {
3+
jsonApiErrorMiddleware,
4+
jsonApiRequestMiddleware,
5+
treeRouterMethodNotAllowedHandler,
6+
} from "@jsonapi-serde/integration-koa";
7+
import { bodyParser } from "@koa/bodyparser";
28
import cors from "@koa/cors";
39
import gracefulShutdown from "http-graceful-shutdown";
410
import Koa from "koa";
5-
import { bodyParser } from "@koa/bodyparser";
611
import cacheControl from "koa-cache-control";
712
import compress from "koa-compress";
8-
import {
9-
jsonApiErrorMiddleware,
10-
jsonApiRequestMiddleware,
11-
methodNotAllowedHandler,
12-
} from "koa-jsonapi-zod";
1313
import Router from "koa-tree-router";
1414
{%- if features contains "app-config" %}
1515
import { appConfigHandler } from "@{{project.name}}/app-config";
@@ -67,7 +67,11 @@ app.use(bodyParser());
6767
app.use(requestContextMiddleware);
6868
{%- endif %}
6969

70-
const router = new Router({ onMethodNotAllowed: methodNotAllowedHandler });
70+
// Type assertion needed: koa-tree-router still types against @types/koa@2,
71+
// while @jsonapi-serde/integration-koa expects Koa v3 types. Compatible at runtime.
72+
const router = new Router({
73+
onMethodNotAllowed: treeRouterMethodNotAllowedHandler as unknown as Router.Middleware,
74+
});
7175
registerRoutes(router);
7276
app.use(router.routes());
7377

‎skeleton/packages/api/src/util/mikro-orm.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import type { Sort } from "@jsonapi-serde/server/request";
12
import { type QueryOrderMap, RequestContext } from "@mikro-orm/core";
23
import { MikroORM } from "@mikro-orm/postgresql";
34
import fnv1a from "@sindresorhus/fnv1a";
45
import { unflatten } from "flat";
56
import type { Next, ParameterizedContext } from "koa";
6-
import type { Sort } from "koa-jsonapi-zod";
77

88
export const orm = await MikroORM.init();
99
export const em = orm.em;

0 commit comments

Comments
 (0)