|
|
@@ -3,6 +3,7 @@
|
|
|
## ็ๆฌไฟกๆฏ
|
|
|
| ็ๆฌ | ๆฅๆ | ๆ่ฟฐ | ไฝ่
|
|
|
|
|------|------|------|------|
|
|
|
+| 3.2 | 2025-11-11 | ๆดๆฐๅ
็ปๆ๏ผๆทปๅ ๅบ็ก่ฎพๆฝๅไธๅกๆจกๅๅ
| Winston |
|
|
|
| 3.1 | 2025-11-09 | ๆดๆฐๆต่ฏ็ปๆ๏ผๆธ
็้ๅคๆต่ฏๆไปถ | James |
|
|
|
| 3.0 | 2025-10-22 | ๆดๆฐไธบ monorepo ็ปๆ๏ผๆทปๅ packages/server | Winston |
|
|
|
|
|
|
@@ -52,79 +53,111 @@ d8d-mini-starter/
|
|
|
โ โ โโโ prod.ts # ็ไบง็ฏๅข้
็ฝฎ
|
|
|
โ โโโ package.json
|
|
|
โโโ packages/ # ๅ
ฑไบซๅ
|
|
|
-โ โโโ server/ # APIๆๅกๅจๅ
(@d8d/server)
|
|
|
+โ โโโ server/ # APIๆๅกๅจๅ
(@d8d/server) - ้ๆๅ
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ api.ts # API่ทฏ็ฑๅฏผๅบ
|
|
|
+โ โ โ โโโ index.ts # ๆๅกๅจๅ
ฅๅฃ
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ shared-types/ # ๅ
ฑไบซ็ฑปๅๅฎไน (@d8d/shared-types)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ index.ts # ็ฑปๅๅฎไนๅฏผๅบ
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ shared-utils/ # ๅ
ฑไบซๅทฅๅ
ทๅฝๆฐ (@d8d/shared-utils)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ utils/
|
|
|
+โ โ โ โ โโโ jwt.util.ts # JWTๅทฅๅ
ท
|
|
|
+โ โ โ โ โโโ errorHandler.ts # ้่ฏฏๅค็
|
|
|
+โ โ โ โ โโโ parseWithAwait.ts # ๅผๆญฅ่งฃๆ
|
|
|
+โ โ โ โ โโโ logger.ts # ๆฅๅฟๅทฅๅ
ท
|
|
|
+โ โ โ โ โโโ redis.util.ts # Redisไผ่ฏ็ฎก็
|
|
|
+โ โ โ โโโ data-source.ts # ๆฐๆฎๅบ่ฟๆฅ
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ shared-crud/ # ้็จCRUDๅบ็ก่ฎพๆฝ (@d8d/shared-crud)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ services/
|
|
|
+โ โ โ โ โโโ generic-crud.service.ts # ้็จCRUDๆๅก
|
|
|
+โ โ โ โ โโโ concrete-crud.service.ts # ๅ
ทไฝCRUDๆๅก
|
|
|
+โ โ โ โโโ routes/
|
|
|
+โ โ โ โโโ generic-crud.routes.ts # ้็จCRUD่ทฏ็ฑ
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ shared-test-util/ # ๆต่ฏๅบ็ก่ฎพๆฝ (@d8d/shared-test-util)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ integration-test-db.ts # ้ๆๆต่ฏๆฐๆฎๅบๅทฅๅ
ท
|
|
|
+โ โ โ โโโ integration-test-utils.ts # ้ๆๆต่ฏๆญ่จๅทฅๅ
ท
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ user-module/ # ็จๆท็ฎก็ๆจกๅ (@d8d/user-module)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ entities/
|
|
|
+โ โ โ โ โโโ user.entity.ts # ็จๆทๅฎไฝ
|
|
|
+โ โ โ โ โโโ role.entity.ts # ่ง่ฒๅฎไฝ
|
|
|
+โ โ โ โโโ services/
|
|
|
+โ โ โ โ โโโ user.service.ts # ็จๆทๆๅก
|
|
|
+โ โ โ โ โโโ role.service.ts # ่ง่ฒๆๅก
|
|
|
+โ โ โ โโโ schemas/
|
|
|
+โ โ โ โ โโโ user.schema.ts # ็จๆทSchema
|
|
|
+โ โ โ โ โโโ role.schema.ts # ่ง่ฒSchema
|
|
|
+โ โ โ โโโ routes/
|
|
|
+โ โ โ โโโ user.routes.ts # ็จๆท่ทฏ็ฑ
|
|
|
+โ โ โ โโโ role.routes.ts # ่ง่ฒ่ทฏ็ฑ
|
|
|
+โ โ โ โโโ custom.routes.ts # ่ชๅฎไน่ทฏ็ฑ
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ auth-module/ # ่ฎค่ฏ็ฎก็ๆจกๅ (@d8d/auth-module)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ services/
|
|
|
+โ โ โ โ โโโ auth.service.ts # ่ฎค่ฏๆๅก
|
|
|
+โ โ โ โ โโโ mini-auth.service.ts # ๅฐ็จๅบ่ฎค่ฏๆๅก
|
|
|
+โ โ โ โโโ schemas/
|
|
|
+โ โ โ โ โโโ auth.schema.ts # ่ฎค่ฏSchema
|
|
|
+โ โ โ โโโ routes/
|
|
|
+โ โ โ โ โโโ login.route.ts # ็ปๅฝ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ register.route.ts # ๆณจๅ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ mini-login.route.ts # ๅฐ็จๅบ็ปๅฝ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ phone-decrypt.route.ts # ๆๆบๅท่งฃๅฏ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ me.route.ts # ่ทๅ็จๆทไฟกๆฏ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ update-me.route.ts # ๆดๆฐ็จๆทไฟกๆฏ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ logout.route.ts # ็ปๅบ่ทฏ็ฑ
|
|
|
+โ โ โ โ โโโ sso-verify.route.ts # SSO้ช่ฏ่ทฏ็ฑ
|
|
|
+โ โ โ โโโ middleware/
|
|
|
+โ โ โ โโโ auth.middleware.ts # ่ฎค่ฏไธญ้ดไปถ
|
|
|
+โ โ โ โโโ index.ts # ไธญ้ดไปถๅฏผๅบ
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ file-module/ # ๆไปถ็ฎก็ๆจกๅ (@d8d/file-module)
|
|
|
+โ โ โโโ src/
|
|
|
+โ โ โ โโโ entities/
|
|
|
+โ โ โ โ โโโ file.entity.ts # ๆไปถๅฎไฝ
|
|
|
+โ โ โ โโโ services/
|
|
|
+โ โ โ โ โโโ file.service.ts # ๆไปถๆๅก
|
|
|
+โ โ โ โ โโโ minio.service.ts # MinIOๆๅก
|
|
|
+โ โ โ โโโ schemas/
|
|
|
+โ โ โ โ โโโ file.schema.ts # ๆไปถSchema
|
|
|
+โ โ โ โโโ routes/
|
|
|
+โ โ โ โโโ upload-policy/post.ts # ไธไผ ็ญ็ฅ่ทฏ็ฑ
|
|
|
+โ โ โ โโโ multipart-policy/post.ts # ๅค้จๅไธไผ ็ญ็ฅ่ทฏ็ฑ
|
|
|
+โ โ โ โโโ multipart-complete/post.ts # ๅฎๆๅค้จๅไธไผ ่ทฏ็ฑ
|
|
|
+โ โ โ โโโ [id]/
|
|
|
+โ โ โ โโโ get.ts # ่ทๅๆไปถ่ฏฆๆ
่ทฏ็ฑ
|
|
|
+โ โ โ โโโ get-url.ts # ่ทๅๆไปถURL่ทฏ็ฑ
|
|
|
+โ โ โ โโโ download.ts # ๆไปถไธ่ฝฝ่ทฏ็ฑ
|
|
|
+โ โ โ โโโ delete.ts # ๅ ้คๆไปถ่ทฏ็ฑ
|
|
|
+โ โ โโโ tests/
|
|
|
+โ โ โโโ package.json
|
|
|
+โ โโโ geo-areas/ # ๅฐๅบๆจกๅ (@d8d/geo-areas)
|
|
|
โ โโโ src/
|
|
|
-โ โ โโโ api/ # API่ทฏ็ฑ
|
|
|
-โ โ โ โโโ auth/ # ่ฎค่ฏ็ธๅ
ณ
|
|
|
-โ โ โ โ โโโ index.ts # ่ฎค่ฏ่ทฏ็ฑๅ
ฅๅฃ
|
|
|
-โ โ โ โ โโโ login/post.ts # ็ปๅฝๆฅๅฃ
|
|
|
-โ โ โ โ โโโ logout.ts # ็ปๅบๆฅๅฃ
|
|
|
-โ โ โ โ โโโ me/get.ts # ่ทๅ็จๆทไฟกๆฏ
|
|
|
-โ โ โ โ โโโ me/put.ts # ๆดๆฐ็จๆทไฟกๆฏ
|
|
|
-โ โ โ โ โโโ mini-login/post.ts # ๅฐ็จๅบ็ปๅฝ
|
|
|
-โ โ โ โ โโโ register/create.ts # ๆณจๅๆฅๅฃ
|
|
|
-โ โ โ โ โโโ sso-verify.ts # SSO้ช่ฏ
|
|
|
-โ โ โ โโโ files/ # ๆไปถ็ฎก็
|
|
|
-โ โ โ โ โโโ [id]/delete.ts # ๅ ้คๆไปถ
|
|
|
-โ โ โ โ โโโ [id]/download.ts # ไธ่ฝฝๆไปถ
|
|
|
-โ โ โ โ โโโ [id]/get-url.ts # ่ทๅๆไปถURL
|
|
|
-โ โ โ โ โโโ index.ts # ๆไปถๅ่กจ
|
|
|
-โ โ โ โ โโโ multipart-complete/post.ts # ๅฎๆๅ็ไธไผ
|
|
|
-โ โ โ โ โโโ multipart-policy/post.ts # ๅ็ไธไผ ็ญ็ฅ
|
|
|
-โ โ โ โ โโโ upload-policy/post.ts # ไธไผ ็ญ็ฅ
|
|
|
-โ โ โ โโโ roles/index.ts # ่ง่ฒ็ฎก็
|
|
|
-โ โ โ โโโ users/index.ts # ็จๆท็ฎก็
|
|
|
-โ โ โ โโโ users/custom.ts # ่ชๅฎไน็จๆทๆฅๅฃ
|
|
|
-โ โ โโโ modules/ # ไธๅกๆจกๅ
|
|
|
-โ โ โ โโโ auth/ # ่ฎค่ฏๆจกๅ
|
|
|
-โ โ โ โ โโโ auth.service.ts # ่ฎค่ฏๆๅก
|
|
|
-โ โ โ โ โโโ mini-auth.service.ts # ๅฐ็จๅบ่ฎค่ฏๆๅก
|
|
|
-โ โ โ โโโ files/ # ๆไปถๆจกๅ
|
|
|
-โ โ โ โ โโโ file.entity.ts # ๆไปถๅฎไฝ
|
|
|
-โ โ โ โ โโโ file.schema.ts # ๆไปถๆจกๅผ
|
|
|
-โ โ โ โ โโโ file.service.ts # ๆไปถๆๅก
|
|
|
-โ โ โ โ โโโ minio.service.ts # MinIOๆๅก
|
|
|
-โ โ โ โโโ users/ # ็จๆทๆจกๅ
|
|
|
-โ โ โ โโโ role.entity.ts # ่ง่ฒๅฎไฝ
|
|
|
-โ โ โ โโโ role.schema.ts # ่ง่ฒๆจกๅผ
|
|
|
-โ โ โ โโโ role.service.ts # ่ง่ฒๆๅก
|
|
|
-โ โ โ โโโ user.entity.ts # ็จๆทๅฎไฝ
|
|
|
-โ โ โ โโโ user.schema.ts # ็จๆทๆจกๅผ
|
|
|
-โ โ โ โโโ user.service.ts # ็จๆทๆๅก
|
|
|
-โ โ โโโ middleware/ # ไธญ้ดไปถ
|
|
|
-โ โ โ โโโ auth.middleware.ts # ่ฎค่ฏไธญ้ดไปถ
|
|
|
-โ โ โ โโโ permission.middleware.ts # ๆ้ไธญ้ดไปถ
|
|
|
-โ โ โโโ share/ # ๅ
ฑไบซ็ฑปๅ
|
|
|
-โ โ โ โโโ types.ts # ๅ
ฑไบซ็ฑปๅๅฎไน
|
|
|
-โ โ โโโ types/ # ็ฑปๅๅฎไน
|
|
|
-โ โ โ โโโ context.ts # ไธไธๆ็ฑปๅ
|
|
|
-โ โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐ
|
|
|
-โ โ โ โโโ backup.ts # ๆฐๆฎๅบๅคไปฝ
|
|
|
-โ โ โ โโโ concrete-crud.service.ts # ๅ
ทไฝCRUDๆๅก
|
|
|
-โ โ โ โโโ errorHandler.ts # ้่ฏฏๅค็
|
|
|
-โ โ โ โโโ generic-crud.routes.ts # ้็จCRUD่ทฏ็ฑ
|
|
|
-โ โ โ โโโ generic-crud.service.ts # ้็จCRUDๆๅก
|
|
|
-โ โ โ โโโ jwt.util.ts # JWTๅทฅๅ
ท
|
|
|
-โ โ โ โโโ logger.ts # ๆฅๅฟๅทฅๅ
ท
|
|
|
-โ โ โ โโโ parseWithAwait.ts # ๅผๆญฅ่งฃๆ
|
|
|
-โ โ โ โโโ restore.ts # ๆฐๆฎๅบๆขๅค
|
|
|
-โ โ โโโ data-source.ts # ๆฐๆฎๅบ่ฟๆฅ
|
|
|
-โ โ โโโ index.ts # ๆๅกๅจๅ
ฅๅฃ
|
|
|
-โ โโโ tests/ # ๆๅกๅจๆต่ฏ
|
|
|
-โ โ โโโ integration/ # ้ๆๆต่ฏ
|
|
|
-โ โ โ โโโ auth.integration.test.ts # ่ฎค่ฏ้ๆๆต่ฏ
|
|
|
-โ โ โ โโโ backup.integration.test.ts # ๅคไปฝ้ๆๆต่ฏ
|
|
|
-โ โ โ โโโ files.integration.test.ts # ๆไปถ้ๆๆต่ฏ
|
|
|
-โ โ โ โโโ minio.integration.test.ts # MinIO้ๆๆต่ฏ
|
|
|
-โ โ โ โโโ users.integration.test.ts # ็จๆท้ๆๆต่ฏ
|
|
|
-โ โ โโโ unit/ # ๅๅ
ๆต่ฏ
|
|
|
-โ โ โโโ modules/ # ไธๅกๆจกๅๆต่ฏ
|
|
|
-โ โ โ โโโ file.service.test.ts # ๆไปถๆๅกๆต่ฏ
|
|
|
-โ โ โ โโโ minio.service.test.ts # MinIOๆๅกๆต่ฏ
|
|
|
-โ โ โ โโโ user.service.test.ts # ็จๆทๆๅกๆต่ฏ
|
|
|
-โ โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐๆต่ฏ
|
|
|
-โ โ โโโ backup.test.ts # ๅคไปฝๅทฅๅ
ทๆต่ฏ
|
|
|
-โ โ โโโ restore.test.ts # ๆขๅคๅทฅๅ
ทๆต่ฏ
|
|
|
+โ โ โโโ modules/areas/
|
|
|
+โ โ โ โโโ area.entity.ts # ๅฐๅบๅฎไฝ
|
|
|
+โ โ โ โโโ area.service.ts # ๅฐๅบๆๅก
|
|
|
+โ โ โ โโโ area.schema.ts # ๅฐๅบSchema
|
|
|
+โ โ โโโ api/
|
|
|
+โ โ โ โโโ areas/index.ts # ๅ
ฌๅ
ฑๅฐๅบAPI
|
|
|
+โ โ โ โโโ admin/areas/index.ts # ็ฎก็ๅฐๅบAPI
|
|
|
+โ โ โโโ index.ts # ๅ
ๅ
ฅๅฃ
|
|
|
+โ โโโ tests/
|
|
|
โ โโโ package.json
|
|
|
โโโ web/ # Webๅบ็จ (Hono + React SSR)
|
|
|
โ โโโ src/
|
|
|
@@ -185,26 +218,31 @@ d8d-mini-starter/
|
|
|
|
|
|
## ้ๆๆๅ
|
|
|
- **ๆไปถๅฝๅ**: ไฟๆ็ฐๆkebab-caseๅฝๅ็บฆๅฎ
|
|
|
-- **้กน็ฎ็ปๆ**: ้็จmonorepoๆจกๅผ๏ผๅ
ๅซๅฐ็จๅบ(mini)ใWebๅบ็จ(web)ๅๅ
ฑไบซๆๅกๅจๅ
(packages/server)
|
|
|
+- **้กน็ฎ็ปๆ**: ้็จmonorepoๆจกๅผ๏ผๅ
ๅซๅฐ็จๅบ(mini)ใWebๅบ็จ(web)ๅๆจกๅๅๅ
ๆถๆ
|
|
|
- **ๅ
็ฎก็**: ไฝฟ็จpnpm workspace็ฎก็ๅคๅ
ไพ่ตๅ
ณ็ณป
|
|
|
- **ๅฐ็จๅบๆถๆ**: ๅบไบTaroๆกๆถ๏ผๆฏๆๅคๅนณๅฐ๏ผๅพฎไฟกๅฐ็จๅบใH5็ญ๏ผ
|
|
|
- **Webๅบ็จๆถๆ**: ๅบไบHono + React SSR๏ผไฝฟ็จshadcn/ui็ปไปถๅบ
|
|
|
-- **APIๆๅกๅจ**: ็ฌ็ซ็`@d8d/server`ๅ
๏ผๅบไบHonoๆกๆถ๏ผๆไพRESTful API
|
|
|
+- **ๆจกๅๅๆถๆ**: ้็จๅๅฑๅ
็ปๆ๏ผๆฏๆๆ้ๅฎ่ฃ
ๅ็ฌ็ซๅผๅ
|
|
|
+- **APIๆๅกๅจ**: ้ๆๅ็`@d8d/server`ๅ
๏ผๅบไบๆจกๅๅๆถๆ๏ผๆไพRESTful API
|
|
|
- **API่ฎพ่ฎก**: ไฝฟ็จHonoๆกๆถ๏ผRESTful API่ฎพ่ฎก๏ผๆฏๆๆไปถๅ็ไธไผ
|
|
|
- **ๆฐๆฎๅบ**: ไฝฟ็จPostgreSQL + TypeORM
|
|
|
- **ๅญๅจ**: ไฝฟ็จMinIO่ฟ่กๆไปถๅญๅจ
|
|
|
+- **ๅ
ๆถๆๅฑๆฌก**:
|
|
|
+ - **ๅบ็ก่ฎพๆฝๅฑ**: shared-types โ shared-utils โ shared-crud
|
|
|
+ - **ๆต่ฏๅบ็ก่ฎพๆฝ**: shared-test-util
|
|
|
+ - **ไธๅกๆจกๅๅฑ**: user-module โ auth-module โ file-module โ geo-areas
|
|
|
+ - **ๅบ็จๅฑ**: server (้ๆๅ)
|
|
|
- **ๆต่ฏ็ปๆ**:
|
|
|
- - **packages/server**: ็ฌ็ซ็ๆๅกๅจๆต่ฏ
|
|
|
- - ๅๅ
ๆต่ฏไฝไบ`packages/server/tests/unit/`
|
|
|
- - ้ๆๆต่ฏไฝไบ`packages/server/tests/integration/`
|
|
|
- - **web**: Webๅบ็จๆต่ฏ
|
|
|
- - ๅๅ
ๆต่ฏไฝไบ`web/tests/unit/`
|
|
|
- - ้ๆๆต่ฏไฝไบ`web/tests/integration/`
|
|
|
- - E2Eๆต่ฏไฝไบ`web/tests/e2e/` (Playwright)
|
|
|
+ - **ๅบ็ก่ฎพๆฝๅ
**: ๆฏไธชๅ
็ฌ็ซ็ๅๅ
ๆต่ฏๅ้ๆๆต่ฏ
|
|
|
+ - **ไธๅกๆจกๅๅ
**: ๆฏไธชๆจกๅๅ
ๅซๅฎๆด็ๆต่ฏๅฅไปถ
|
|
|
+ - **serverๅ
**: ้ๆๆต่ฏ้ช่ฏๆจกๅ้ดๅไฝ
|
|
|
+ - **webๅบ็จ**: ็ปไปถๆต่ฏใ้ๆๆต่ฏๅE2Eๆต่ฏ
|
|
|
- **ๅผๅ็ฏๅข**: ๅคๅ
ซๅคไบ็ซฏๅผๅๅฎนๅจ๏ผๅ
ๅซNode.js 20.19.2ใPostgreSQL 17ใRedis 7ใMinIO
|
|
|
- **ๆๅปบๅทฅๅ
ท**: ไฝฟ็จVite + pnpm๏ผๆฏๆSSRๆๅปบ
|
|
|
- **ๆถๆไผๅฟ**:
|
|
|
- - ๆๅกๅจไปฃ็ ๅฏ็ฌ็ซ้จ็ฝฒๅๆต่ฏ
|
|
|
- - ๅ็ซฏๅๅ็ซฏๅฏ็ฌ็ซๅผๅ
|
|
|
- - ๅ
ฑไบซ็ฑปๅๅฎไนๅๅฐ้ๅคไปฃ็
|
|
|
- - ็ปไธ็้่ฏฏๅค็ๅไธญ้ดไปถ
|
|
|
+ - ๆธ
ๆฐ็ๆจกๅ่พน็ๅ่่ดฃๅ็ฆป
|
|
|
+ - ๆฏๆๆ้ๅฎ่ฃ
๏ผๅๅฐๅ
ไฝ็งฏ
|
|
|
+ - ๅบ็ก่ฎพๆฝๅไธๅก้ป่พๅ็ฆป
|
|
|
+ - ็ปไธ็ๆต่ฏๆจกๅผๅๅทฅๅ
ท
|
|
|
+ - ๆดๅฅฝ็ไปฃ็ ๅค็จๅ็ปดๆคๆง
|
|
|
+ - ็ฌ็ซ็ๅ
็ๆฌ็ฎก็
|