refactor(server): 拆分 ShrimpServer → buildShrimpRouter + tokenAuth + accessor

ShrimpServer 之前一锅端 Express routes / JWT / Mongoose / 用户字段访问。
现在拆成独立部件,消费方可以单独换掉任何一块:

  - src/server/types.ts: ITokenAuth, IUserAccessor, IShrimpRouterDeps
  - src/server/jwtAuth.ts: createJwtTokenAuth(secret | options) 默认 JWT 适配器
  - src/server/buildShrimpRouter.ts: 纯函数,不直接 import jsonwebtoken/mongoose
  - src/server/ShrimpServer.ts: 装配体,protected create* factory 保留,
    子类化扩展不破坏(hand-server-2 的 AdminApi extends ShrimpServer 仍能用)
  - src/server/index.ts: 'shrimp-server/server' entry,额外暴露低阶 API

test/buildShrimpRouter.test.ts: 用 MemoryShrimpCrud + 假 ITokenAuth 拼出
独立 Router,跑通 /config /login /me 全流程 — 保证 buildShrimpRouter 不
偷偷耦合回 ShrimpServer。

v0.3.0
This commit is contained in:
2026-05-23 17:10:03 +08:00
parent 36b71bd38e
commit 416eb84db7
9 changed files with 700 additions and 390 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "shrimp-server",
"version": "0.2.0",
"version": "0.3.0",
"private": true,
"description": "Shrimp 框架后端 — 声明式字段驱动的 Node.js 管理后台框架(Express + Mongoose + JWT)",
"main": "src/index.ts",
@@ -11,8 +11,8 @@
"default": "./src/core.ts"
},
"./server": {
"types": "./src/server.ts",
"default": "./src/server.ts"
"types": "./src/server/index.ts",
"default": "./src/server/index.ts"
},
"./package.json": "./package.json"
},