浏览代码

♻️ refactor(geo-areas): optimize package exports and service initialization

- 调整package.json中exports字段的types属性顺序,统一将types移至import和require之前
- 修改AreaService实例化方式,使用全局AppDataSource替代请求上下文数据源
- 添加@d8d/auth-module依赖,为后续认证功能做准备
yourname 3 周之前
父节点
当前提交
86603b9dcd
共有 3 个文件被更改,包括 21 次插入16 次删除
  1. 13 12
      packages/geo-areas/package.json
  2. 5 4
      packages/geo-areas/src/api/admin/areas/tree.ts
  3. 3 0
      pnpm-lock.yaml

+ 13 - 12
packages/geo-areas/package.json

@@ -7,34 +7,34 @@
   "types": "src/index.ts",
   "exports": {
     ".": {
+      "types": "./src/index.ts",
       "import": "./src/index.ts",
-      "require": "./src/index.ts",
-      "types": "./src/index.ts"
+      "require": "./src/index.ts"
     },
     "./area.entity": {
+      "types": "./src/modules/areas/area.entity.ts",
       "import": "./src/modules/areas/area.entity.ts",
-      "require": "./src/modules/areas/area.entity.ts",
-      "types": "./src/modules/areas/area.entity.ts"
+      "require": "./src/modules/areas/area.entity.ts"
     },
     "./area.service": {
+      "types": "./src/modules/areas/area.service.ts",
       "import": "./src/modules/areas/area.service.ts",
-      "require": "./src/modules/areas/area.service.ts",
-      "types": "./src/modules/areas/area.service.ts"
+      "require": "./src/modules/areas/area.service.ts"
     },
     "./area.schema": {
+      "types": "./src/modules/areas/area.schema.ts",
       "import": "./src/modules/areas/area.schema.ts",
-      "require": "./src/modules/areas/area.schema.ts",
-      "types": "./src/modules/areas/area.schema.ts"
+      "require": "./src/modules/areas/area.schema.ts"
     },
     "./api": {
+      "types": "./src/api/areas/index.ts",
       "import": "./src/api/areas/index.ts",
-      "require": "./src/api/areas/index.ts",
-      "types": "./src/api/areas/index.ts"
+      "require": "./src/api/areas/index.ts"
     },
     "./api/admin": {
+      "types": "./src/api/admin/areas/index.ts",
       "import": "./src/api/admin/areas/index.ts",
-      "require": "./src/api/admin/areas/index.ts",
-      "types": "./src/api/admin/areas/index.ts"
+      "require": "./src/api/admin/areas/index.ts"
     }
   },
   "scripts": {
@@ -48,6 +48,7 @@
     "test:typecheck": "tsc --noEmit"
   },
   "dependencies": {
+    "@d8d/auth-module": "workspace:*",
     "@d8d/shared-types": "workspace:*",
     "@d8d/shared-utils": "workspace:*",
     "@d8d/shared-crud": "workspace:*",

+ 5 - 4
packages/geo-areas/src/api/admin/areas/tree.ts

@@ -3,6 +3,7 @@ import { createRoute, z } from '@hono/zod-openapi';
 import { authMiddleware } from '@d8d/auth-module';
 import { AreaService } from '../../modules/areas/area.service';
 import { AreaLevel } from '../../modules/areas/area.entity';
+import { AppDataSource } from '@d8d/shared-utils';
 
 // 获取完整树形结构
 const getAreaTreeRoute = createRoute({
@@ -207,7 +208,7 @@ const getAreaPathRoute = createRoute({
 const app = new OpenAPIHono()
   // 注册路由 - 使用链式结构
   .openapi(getAreaTreeRoute, async (c) => {
-    const areaService = new AreaService(c.var.dataSource);
+    const areaService = new AreaService(AppDataSource);
     try {
       const treeData = await areaService.getAreaTree();
       return c.json({
@@ -223,7 +224,7 @@ const app = new OpenAPIHono()
     }
   })
   .openapi(getAreaTreeByLevelRoute, async (c) => {
-    const areaService = new AreaService(c.var.dataSource);
+    const areaService = new AreaService(AppDataSource);
     try {
       const { level } = c.req.valid('param');
       const treeData = await areaService.getAreaTreeByLevel(level);
@@ -240,7 +241,7 @@ const app = new OpenAPIHono()
     }
   })
   .openapi(getSubTreeRoute, async (c) => {
-    const areaService = new AreaService(c.var.dataSource);
+    const areaService = new AreaService(AppDataSource);
     try {
       const { id } = c.req.valid('param');
       const subTree = await areaService.getSubTree(id);
@@ -265,7 +266,7 @@ const app = new OpenAPIHono()
     }
   })
   .openapi(getAreaPathRoute, async (c) => {
-    const areaService = new AreaService(c.var.dataSource);
+    const areaService = new AreaService(AppDataSource);
     try {
       const { id } = c.req.valid('param');
       const path = await areaService.getAreaPath(id);

+ 3 - 0
pnpm-lock.yaml

@@ -335,6 +335,9 @@ importers:
 
   packages/geo-areas:
     dependencies:
+      '@d8d/auth-module':
+        specifier: workspace:*
+        version: link:../auth-module
       '@d8d/shared-crud':
         specifier: workspace:*
         version: link:../shared-crud