aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--biome.json3
-rw-r--r--docs/dev/roadmap.md2
-rw-r--r--pkgs/server/package.json14
-rw-r--r--pkgs/server/src/index.ts23
-rw-r--r--pnpm-lock.yaml41
5 files changed, 77 insertions, 6 deletions
diff --git a/biome.json b/biome.json
index ba74412..690def9 100644
--- a/biome.json
+++ b/biome.json
@@ -6,7 +6,8 @@
"useIgnoreFile": true
},
"files": {
- "ignoreUnknown": false
+ "ignoreUnknown": false,
+ "includes": ["**", "!.claude"]
},
"formatter": {
"enabled": true,
diff --git a/docs/dev/roadmap.md b/docs/dev/roadmap.md
index 7916835..26e92b8 100644
--- a/docs/dev/roadmap.md
+++ b/docs/dev/roadmap.md
@@ -10,7 +10,7 @@
- [x] Configure Biome
### Server Foundation
-- [ ] Initialize Hono app
+- [x] Initialize Hono app
- [ ] Setup Vitest
- [ ] Add simple test to test that Hono works
- [ ] Error handling middleware
diff --git a/pkgs/server/package.json b/pkgs/server/package.json
index 3d179d6..90f8f41 100644
--- a/pkgs/server/package.json
+++ b/pkgs/server/package.json
@@ -2,12 +2,22 @@
"name": "@kioku/server",
"version": "0.1.0",
"private": true,
- "main": "index.js",
+ "main": "dist/index.js",
"scripts": {
+ "dev": "node --watch src/index.ts",
+ "build": "tsc",
+ "start": "node dist/index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "nsfisis",
"license": "MIT",
"packageManager": "pnpm@10.23.0",
- "type": "module"
+ "type": "module",
+ "dependencies": {
+ "@hono/node-server": "^1.19.6",
+ "hono": "^4.10.7"
+ },
+ "devDependencies": {
+ "@types/node": "^24.10.1"
+ }
}
diff --git a/pkgs/server/src/index.ts b/pkgs/server/src/index.ts
index cb0ff5c..6c89217 100644
--- a/pkgs/server/src/index.ts
+++ b/pkgs/server/src/index.ts
@@ -1 +1,22 @@
-export {};
+import { serve } from "@hono/node-server";
+import { Hono } from "hono";
+
+const app = new Hono();
+
+app.get("/", (c) => {
+ return c.json({ message: "Kioku API" });
+});
+
+app.get("/api/health", (c) => {
+ return c.json({ status: "ok" });
+});
+
+const port = Number(process.env.PORT) || 3000;
+console.log(`Server is running on port ${port}`);
+
+serve({
+ fetch: app.fetch,
+ port,
+});
+
+export { app };
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9fa931c..3d62033 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,7 +17,18 @@ importers:
pkgs/client: {}
- pkgs/server: {}
+ pkgs/server:
+ dependencies:
+ '@hono/node-server':
+ specifier: ^1.19.6
+ version: 1.19.6(hono@4.10.7)
+ hono:
+ specifier: ^4.10.7
+ version: 4.10.7
+ devDependencies:
+ '@types/node':
+ specifier: ^24.10.1
+ version: 24.10.1
pkgs/shared: {}
@@ -76,11 +87,27 @@ packages:
cpu: [x64]
os: [win32]
+ '@hono/node-server@1.19.6':
+ resolution: {integrity: sha512-Shz/KjlIeAhfiuE93NDKVdZ7HdBVLQAfdbaXEaoAVO3ic9ibRSLGIQGkcBbFyuLr+7/1D5ZCINM8B+6IvXeMtw==}
+ engines: {node: '>=18.14.1'}
+ peerDependencies:
+ hono: ^4
+
+ '@types/node@24.10.1':
+ resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==}
+
+ hono@4.10.7:
+ resolution: {integrity: sha512-icXIITfw/07Q88nLSkB9aiUrd8rYzSweK681Kjo/TSggaGbOX4RRyxxm71v+3PC8C/j+4rlxGeoTRxQDkaJkUw==}
+ engines: {node: '>=16.9.0'}
+
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
snapshots:
'@biomejs/biome@2.3.8':
@@ -118,4 +145,16 @@ snapshots:
'@biomejs/cli-win32-x64@2.3.8':
optional: true
+ '@hono/node-server@1.19.6(hono@4.10.7)':
+ dependencies:
+ hono: 4.10.7
+
+ '@types/node@24.10.1':
+ dependencies:
+ undici-types: 7.16.0
+
+ hono@4.10.7: {}
+
typescript@5.9.3: {}
+
+ undici-types@7.16.0: {}