befly 3.5.2 → 3.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/apis/admin/del.ts +1 -1
  2. package/apis/admin/info.ts +1 -1
  3. package/apis/admin/ins.ts +1 -1
  4. package/apis/admin/list.ts +1 -1
  5. package/apis/admin/roleDetail.ts +1 -1
  6. package/apis/admin/roleSave.ts +1 -1
  7. package/apis/admin/upd.ts +1 -1
  8. package/apis/api/all.ts +1 -1
  9. package/apis/auth/login.ts +1 -1
  10. package/apis/auth/logout.ts +1 -1
  11. package/apis/auth/register.ts +1 -1
  12. package/apis/auth/sendSmsCode.ts +3 -2
  13. package/apis/cache/refresh.ts +1 -1
  14. package/apis/dashboard/addonList.ts +1 -1
  15. package/apis/dashboard/changelog.ts +1 -1
  16. package/apis/dashboard/configStatus.ts +1 -1
  17. package/apis/dashboard/environmentInfo.ts +1 -1
  18. package/apis/dashboard/performanceMetrics.ts +1 -1
  19. package/apis/dashboard/permissionStats.ts +1 -1
  20. package/apis/dashboard/serviceStatus.ts +2 -2
  21. package/apis/dashboard/systemInfo.ts +3 -2
  22. package/apis/dashboard/systemOverview.ts +1 -1
  23. package/apis/dashboard/systemResources.ts +1 -1
  24. package/apis/dict/all.ts +1 -1
  25. package/apis/dict/del.ts +1 -1
  26. package/apis/dict/detail.ts +1 -1
  27. package/apis/dict/ins.ts +1 -1
  28. package/apis/dict/list.ts +1 -1
  29. package/apis/dict/upd.ts +1 -1
  30. package/apis/menu/all.ts +1 -1
  31. package/apis/menu/del.ts +1 -1
  32. package/apis/menu/ins.ts +1 -1
  33. package/apis/menu/list.ts +1 -1
  34. package/apis/menu/upd.ts +1 -1
  35. package/apis/role/apiDetail.ts +1 -1
  36. package/apis/role/apiSave.ts +1 -1
  37. package/apis/role/del.ts +1 -1
  38. package/apis/role/detail.ts +1 -1
  39. package/apis/role/ins.ts +1 -1
  40. package/apis/role/list.ts +1 -1
  41. package/apis/role/menuDetail.ts +1 -1
  42. package/apis/role/menuSave.ts +1 -1
  43. package/apis/role/save.ts +1 -1
  44. package/apis/role/upd.ts +1 -1
  45. package/bin/index.ts +1 -1
  46. package/checks/conflict.ts +1 -1
  47. package/checks/table.ts +1 -1
  48. package/commands/index.ts +1 -1
  49. package/commands/sync.ts +2 -2
  50. package/commands/syncApi.ts +1 -1
  51. package/commands/syncDb/apply.ts +1 -1
  52. package/commands/syncDb/constants.ts +2 -2
  53. package/commands/syncDb/ddl.ts +1 -1
  54. package/commands/syncDb/helpers.ts +1 -1
  55. package/commands/syncDb/index.ts +2 -2
  56. package/commands/syncDb/schema.ts +2 -2
  57. package/commands/syncDb/sqlite.ts +1 -1
  58. package/commands/syncDb/state.ts +1 -1
  59. package/commands/syncDb/table.ts +1 -1
  60. package/commands/syncDb/tableCreate.ts +1 -1
  61. package/commands/syncDb/types.ts +1 -1
  62. package/commands/syncDb/version.ts +2 -2
  63. package/commands/syncDb.ts +1 -1
  64. package/commands/syncDev.ts +2 -2
  65. package/commands/syncMenu.ts +1 -1
  66. package/commands/util.ts +1 -1
  67. package/lib/cipher.ts +1 -1
  68. package/lib/database.ts +2 -2
  69. package/lib/dbHelper.ts +1 -1
  70. package/lib/jwt.ts +2 -2
  71. package/lib/logger.ts +3 -3
  72. package/lib/middleware.ts +2 -2
  73. package/lib/redisHelper.ts +2 -2
  74. package/lib/sqlBuilder.ts +1 -1
  75. package/lib/validator.ts +1 -1
  76. package/lib/xml.ts +1 -1
  77. package/lifecycle/bootstrap.ts +2 -2
  78. package/lifecycle/checker.ts +1 -1
  79. package/lifecycle/lifecycle.ts +1 -1
  80. package/lifecycle/loader.ts +1 -1
  81. package/main.ts +2 -2
  82. package/package.json +2 -2
  83. package/paths.ts +1 -1
  84. package/plugins/cache.ts +1 -1
  85. package/plugins/db.ts +3 -3
  86. package/plugins/logger.ts +1 -1
  87. package/plugins/redis.ts +2 -2
  88. package/router/api.ts +2 -2
  89. package/router/root.ts +2 -2
  90. package/router/static.ts +2 -2
  91. package/types/addon.d.ts +1 -1
  92. package/types/api.d.ts +1 -1
  93. package/types/befly.d.ts +1 -1
  94. package/types/common.d.ts +1 -1
  95. package/types/context.d.ts +1 -1
  96. package/types/crypto.d.ts +1 -1
  97. package/types/database.d.ts +1 -1
  98. package/types/env.ts +67 -0
  99. package/types/index.ts +5 -0
  100. package/types/jwt.d.ts +1 -1
  101. package/types/logger.d.ts +1 -1
  102. package/types/plugin.d.ts +1 -1
  103. package/types/redis.d.ts +1 -1
  104. package/types/tool.d.ts +1 -1
  105. package/types/util.d.ts +1 -1
  106. package/types/validator.d.ts +1 -1
  107. package/util.ts +2 -2
  108. package/config/env.ts +0 -202
@@ -1,10 +1,10 @@
1
- /**
1
+ /**
2
2
  * Redis 助手 - TypeScript 版本
3
3
  * 提供 Redis 操作的便捷方法
4
4
  */
5
5
 
6
6
  import { RedisClient } from 'bun';
7
- import { Env } from '../config/env.js';
7
+ import { Env } from '../env.js';
8
8
  import { Logger } from '../lib/logger.js';
9
9
  import { Database } from './database.js';
10
10
 
package/lib/sqlBuilder.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * SQL 构造器 - TypeScript 版本
3
3
  * 提供链式 API 构建 SQL 查询
4
4
  */
package/lib/validator.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 数据验证器 - Befly 项目专用
3
3
  * 内置 RegexAliases,直接使用 util.ts 中的 parseRule
4
4
  */
package/lib/xml.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * XML 解析器 - TypeScript 版本
3
3
  * 将 XML 字符串解析为 JSON 对象
4
4
  */
@@ -1,11 +1,11 @@
1
- /**
1
+ /**
2
2
  * 服务启动引导器
3
3
  * 负责组装和启动Bun HTTP服务器
4
4
  */
5
5
 
6
6
  import { Logger } from '../lib/logger.js';
7
7
  import { calcPerfTime, No } from '../util.js';
8
- import { Env } from '../config/env.js';
8
+ import { Env } from '../env.js';
9
9
  import { rootHandler } from '../router/root.js';
10
10
  import { apiHandler } from '../router/api.js';
11
11
  import { staticHandler } from '../router/static.js';
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 系统检查管理器
3
3
  * 负责在框架启动前执行系统检查
4
4
  */
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 生命周期管理器
3
3
  * 统一管理框架的启动流程:检查、加载插件、加载API、启动服务器
4
4
  */
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 插件和API加载器
3
3
  * 负责加载和初始化插件以及API路由
4
4
  */
package/main.ts CHANGED
@@ -1,9 +1,9 @@
1
- /**
1
+ /**
2
2
  * Befly 框架主入口文件
3
3
  * 提供简洁的框架接口,核心逻辑已提取到 lifecycle 层
4
4
  */
5
5
 
6
- import { Env } from './config/env.js';
6
+ import { Env } from './env.js';
7
7
  import { Yes, No } from './util.js';
8
8
  import { Logger } from './lib/logger.js';
9
9
  import { Cipher } from './lib/cipher.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "befly",
3
- "version": "3.5.2",
3
+ "version": "3.5.3",
4
4
  "description": "Befly - 为 Bun 专属打造的 TypeScript API 接口框架核心引擎",
5
5
  "type": "module",
6
6
  "private": false,
@@ -78,5 +78,5 @@
78
78
  "es-toolkit": "^1.41.0",
79
79
  "pathe": "^2.0.3"
80
80
  },
81
- "gitHead": "0896911e340ee0e7ee9d65a28d0809a3365ee9f4"
81
+ "gitHead": "97e7d2949ef44b34f38797bfcdf626892b002712"
82
82
  }
package/paths.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Befly 框架路径配置
3
3
  *
4
4
  * 提供统一的路径常量,供整个框架使用
package/plugins/cache.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 缓存插件 - TypeScript 版本
3
3
  * 负责在服务器启动时缓存接口、菜单和角色权限到 Redis
4
4
  */
package/plugins/db.ts CHANGED
@@ -1,9 +1,9 @@
1
- /**
1
+ /**
2
2
  * 数据库插件 - TypeScript 版本
3
3
  * 初始化数据库连接和 SQL 管理器
4
4
  */
5
5
 
6
- import { Env } from '../config/env.js';
6
+ import { Env } from '../env.js';
7
7
  import { Logger } from '../lib/logger.js';
8
8
  import { Database } from '../lib/database.js';
9
9
  import { DbHelper } from '../lib/dbHelper.js';
@@ -24,7 +24,7 @@ const dbPlugin: Plugin = {
24
24
  if (Env.DB_ENABLE === 1) {
25
25
  // 创建 Bun SQL 客户端(内置连接池),并确保连接验证成功后再继续
26
26
  // 从环境变量读取连接超时配置
27
- const connectionTimeout = process.env.DB_CONNECTION_TIMEOUT ? parseInt(process.env.DB_CONNECTION_TIMEOUT) : 5000;
27
+ const connectionTimeout = Env.DB_CONNECTION_TIMEOUT ? parseInt(Env.DB_CONNECTION_TIMEOUT) : 5000;
28
28
 
29
29
  sql = await Database.connectSql({
30
30
  connectionTimeout
package/plugins/logger.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 日志插件 - TypeScript 版本
3
3
  * 提供全局日志功能
4
4
  */
package/plugins/redis.ts CHANGED
@@ -1,9 +1,9 @@
1
- /**
1
+ /**
2
2
  * Redis 插件 - TypeScript 版本
3
3
  * 初始化 Redis 连接和助手工具
4
4
  */
5
5
 
6
- import { Env } from '../config/env.js';
6
+ import { Env } from '../env.js';
7
7
  import { Logger } from '../lib/logger.js';
8
8
  import { RedisHelper } from '../lib/redisHelper.js';
9
9
  import { Database } from '../lib/database.js';
package/router/api.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * API路由处理器
3
3
  * 处理 /api/* 路径的请求
4
4
  */
@@ -6,7 +6,7 @@
6
6
  import { Logger } from '../lib/logger.js';
7
7
  import { No } from '../util.js';
8
8
  import { setCorsOptions, handleOptionsRequest, authenticate, parseGetParams, parsePostParams, checkPermission, validateParams, executePluginHooks, logRequest } from '../lib/middleware.js';
9
- import { Env } from '../config/env.js';
9
+ import { Env } from '../env.js';
10
10
  import type { RequestContext } from '../util.js';
11
11
  import type { ApiRoute } from '../types/api.js';
12
12
  import type { Plugin } from '../types/plugin.js';
package/router/root.ts CHANGED
@@ -1,9 +1,9 @@
1
- /**
1
+ /**
2
2
  * 根路径路由处理器
3
3
  * 处理 / 路径的请求
4
4
  */
5
5
 
6
- import { Env } from '../config/env.js';
6
+ import { Env } from '../env.js';
7
7
  import { setCorsOptions } from '../lib/middleware.js';
8
8
  import { Logger } from '../lib/logger.js';
9
9
  import { No } from '../util.js';
package/router/static.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 静态文件路由处理器
3
3
  * 处理 /* 路径的静态文件请求
4
4
  */
@@ -8,7 +8,7 @@ import { projectDir } from '../paths.js';
8
8
  import { No } from '../util.js';
9
9
  import { setCorsOptions } from '../lib/middleware.js';
10
10
  import { Logger } from '../lib/logger.js';
11
- import { Env } from '../config/env.js';
11
+ import { Env } from '../env.js';
12
12
 
13
13
  /**
14
14
  * 静态文件处理器
package/types/addon.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Addon 配置类型定义
3
3
  */
4
4
 
package/types/api.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Befly API 类型定义
3
3
  */
4
4
 
package/types/befly.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Befly 核心框架类型定义
3
3
  */
4
4
 
package/types/common.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Befly 框架通用类型定义
3
3
  */
4
4
 
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 请求上下文类型定义
3
3
  * 实现代码位于 util.ts,类型定义位于 types/util.d.ts
4
4
  */
package/types/crypto.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 加密相关类型定义
3
3
  */
4
4
 
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 数据库相关类型定义
3
3
  */
4
4
 
package/types/env.ts ADDED
@@ -0,0 +1,67 @@
1
+ /**
2
+ * 环境变量配置接口
3
+ */
4
+ export interface EnvConfig {
5
+ // ========== 项目配置 ==========
6
+ NODE_ENV: string;
7
+ APP_NAME: string;
8
+ APP_PORT: number;
9
+ APP_HOST: string;
10
+ DEV_EMAIL: string;
11
+ DEV_PASSWORD: string;
12
+ BODY_LIMIT: number;
13
+ PARAMS_CHECK: string;
14
+
15
+ // ========== 日志配置 ==========
16
+ LOG_DEBUG: number;
17
+ LOG_EXCLUDE_FIELDS: string;
18
+ LOG_DIR: string;
19
+ LOG_TO_CONSOLE: number;
20
+ LOG_MAX_SIZE: number;
21
+
22
+ // ========== 时区配置 ==========
23
+ TZ: string;
24
+
25
+ // ========== 数据库配置 ==========
26
+ DB_ENABLE: number;
27
+ DB_TYPE: string;
28
+ DB_HOST: string;
29
+ DB_PORT: number;
30
+ DB_USER: string;
31
+ DB_PASS: string;
32
+ DB_NAME: string;
33
+ DB_DEBUG: number;
34
+ DB_POOL_MAX: number;
35
+
36
+ // ========== Redis 配置 ==========
37
+ REDIS_ENABLE: number;
38
+ REDIS_HOST: string;
39
+ REDIS_PORT: number;
40
+ REDIS_USERNAME: string;
41
+ REDIS_PASSWORD: string;
42
+ REDIS_DB: number;
43
+ REDIS_KEY_PREFIX: string;
44
+
45
+ // ========== JWT 配置 ==========
46
+ JWT_SECRET: string;
47
+ JWT_EXPIRES_IN: string;
48
+ JWT_ALGORITHM: string;
49
+
50
+ // ========== CORS 配置 ==========
51
+ CORS_ALLOWED_ORIGIN: string;
52
+ CORS_ALLOWED_METHODS: string;
53
+ CORS_ALLOWED_HEADERS: string;
54
+ CORS_EXPOSE_HEADERS: string;
55
+ CORS_MAX_AGE: number;
56
+ CORS_ALLOW_CREDENTIALS: string;
57
+
58
+ // ========== 邮件配置 ==========
59
+ MAIL_HOST: string;
60
+ MAIL_PORT: number;
61
+ MAIL_POOL: string;
62
+ MAIL_SECURE: string;
63
+ MAIL_USER: string;
64
+ MAIL_PASS: string;
65
+ MAIL_SENDER: string;
66
+ MAIL_ADDRESS: string;
67
+ }
package/types/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 类型定义导出
3
+ */
4
+
5
+ export * from './env.js';
package/types/jwt.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * JWT 相关类型定义
3
3
  */
4
4
 
package/types/logger.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 日志相关类型定义
3
3
  */
4
4
 
package/types/plugin.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Befly 插件系统类型定义
3
3
  */
4
4
 
package/types/redis.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Redis 相关类型定义
3
3
  */
4
4
 
package/types/tool.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 工具函数相关类型定义
3
3
  */
4
4
 
package/types/util.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * util.ts 相关类型定义
3
3
  */
4
4
 
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 验证器相关类型定义
3
3
  */
4
4
 
package/util.ts CHANGED
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Befly 核心工具函数集合
3
3
  *
4
4
  * 本文件整合了框架核心工具函数:
@@ -20,7 +20,7 @@ import { join } from 'pathe';
20
20
  import { readdirSync, statSync, readFileSync, existsSync } from 'node:fs';
21
21
  import { isEmpty, isPlainObject } from 'es-toolkit/compat';
22
22
  import { snakeCase, camelCase, kebabCase } from 'es-toolkit/string';
23
- import { Env } from './config/env.js';
23
+ import { Env } from './env.js';
24
24
  import { Logger } from './lib/logger.js';
25
25
  import { projectDir } from './paths.js';
26
26
  import type { KeyValue } from './types/common.js';
package/config/env.ts DELETED
@@ -1,202 +0,0 @@
1
- /**
2
- * 环境变量配置 - TypeScript 版本
3
- * 类型化所有环境变量
4
- */
5
-
6
- /**
7
- * 环境变量配置接口
8
- */
9
- export interface EnvConfig {
10
- // ========== 项目配置 ==========
11
- /** 项目模式:development | production | test */
12
- NODE_ENV: string;
13
- /** 应用名称 */
14
- APP_NAME: string;
15
- /** 监听端口 */
16
- APP_PORT: number;
17
- /** 监听主机 */
18
- APP_HOST: string;
19
- /** 开发管理员邮箱 */
20
- DEV_EMAIL: string;
21
- /** 开发管理员密码 */
22
- DEV_PASSWORD: string;
23
- /** 请求体大小限制(字节) */
24
- BODY_LIMIT: number;
25
- /** 是否进行参数验证 */
26
- PARAMS_CHECK: string;
27
-
28
- // ========== 日志配置 ==========
29
- /** debug日志开关:0 | 1 */
30
- LOG_DEBUG: number;
31
- /** 日志排除字段(逗号分隔) */
32
- LOG_EXCLUDE_FIELDS: string;
33
- /** 日志目录 */
34
- LOG_DIR: string;
35
- /** 是否输出到控制台:0 | 1 */
36
- LOG_TO_CONSOLE: number;
37
- /** 日志文件最大大小(字节) */
38
- LOG_MAX_SIZE: number;
39
-
40
- // ========== 时区配置 ==========
41
- /** 时区:Asia/Shanghai */
42
- TZ: string;
43
-
44
- // ========== 数据库配置 ==========
45
- /** 是否启用数据库:0 | 1 */
46
- DB_ENABLE: number;
47
- /** 数据库类型:sqlite | mysql | postgresql */
48
- DB_TYPE: string;
49
- /** 数据库主机 */
50
- DB_HOST: string;
51
- /** 数据库端口 */
52
- DB_PORT: number;
53
- /** 数据库用户名 */
54
- DB_USER: string;
55
- /** 数据库密码 */
56
- DB_PASS: string;
57
- /** 数据库名称 */
58
- DB_NAME: string;
59
- /** 是否启用调试:0 | 1 */
60
- DB_DEBUG: number;
61
- /** 连接池最大连接数 */
62
- DB_POOL_MAX: number;
63
-
64
- // ========== Redis 配置 ==========
65
- /** 是否启用 Redis:0 | 1 */
66
- REDIS_ENABLE: number;
67
- /** Redis 主机 */
68
- REDIS_HOST: string;
69
- /** Redis 端口 */
70
- REDIS_PORT: number;
71
- /** Redis 用户名 */
72
- REDIS_USERNAME: string;
73
- /** Redis 密码 */
74
- REDIS_PASSWORD: string;
75
- /** Redis 数据库索引 */
76
- REDIS_DB: number;
77
- /** Redis 键前缀 */
78
- REDIS_KEY_PREFIX: string;
79
-
80
- // ========== JWT 配置 ==========
81
- /** JWT 密钥 */
82
- JWT_SECRET: string;
83
- /** JWT 过期时间:7d | 30d | 1h */
84
- JWT_EXPIRES_IN: string;
85
- /** JWT 算法:HS256 | HS384 | HS512 */
86
- JWT_ALGORITHM: string;
87
-
88
- // ========== CORS 配置 ==========
89
- /** 允许的来源 */
90
- CORS_ALLOWED_ORIGIN: string;
91
- /** 允许的方法 */
92
- CORS_ALLOWED_METHODS: string;
93
- /** 允许的头部 */
94
- CORS_ALLOWED_HEADERS: string;
95
- /** 暴露的头部 */
96
- CORS_EXPOSE_HEADERS: string;
97
- /** 预检请求缓存时间(秒) */
98
- CORS_MAX_AGE: number;
99
- /** 是否允许凭证 */
100
- CORS_ALLOW_CREDENTIALS: string;
101
-
102
- // ========== 邮件配置 ==========
103
- /** 邮件服务器主机 */
104
- MAIL_HOST: string;
105
- /** 邮件服务器端口 */
106
- MAIL_PORT: number;
107
- /** 是否使用连接池 */
108
- MAIL_POOL: string;
109
- /** 是否使用 SSL */
110
- MAIL_SECURE: string;
111
- /** 邮件用户名 */
112
- MAIL_USER: string;
113
- /** 邮件密码 */
114
- MAIL_PASS: string;
115
- /** 发件人名称 */
116
- MAIL_SENDER: string;
117
- /** 发件人地址 */
118
- MAIL_ADDRESS: string;
119
- }
120
-
121
- /**
122
- * 获取环境变量值(带默认值)
123
- */
124
- const getEnv = (key: string, defaultValue: string = ''): string => {
125
- return process.env[key] || defaultValue;
126
- };
127
-
128
- /**
129
- * 获取数字类型环境变量
130
- */
131
- const getEnvNumber = (key: string, defaultValue: number = 0): number => {
132
- const value = process.env[key];
133
- return value ? Number(value) : defaultValue;
134
- };
135
-
136
- /**
137
- * 环境变量配置对象
138
- */
139
- export const Env: EnvConfig = {
140
- // ========== 项目配置 ==========
141
- NODE_ENV: getEnv('NODE_ENV', 'development'),
142
- APP_NAME: getEnv('APP_NAME', 'befly'),
143
- APP_PORT: getEnvNumber('APP_PORT', 3000),
144
- APP_HOST: getEnv('APP_HOST', '0.0.0.0'),
145
- DEV_EMAIL: getEnv('DEV_EMAIL', 'dev@qq.com'),
146
- DEV_PASSWORD: getEnv('DEV_PASSWORD', ''),
147
- BODY_LIMIT: getEnvNumber('BODY_LIMIT', 10485760), // 10MB
148
- PARAMS_CHECK: getEnv('PARAMS_CHECK', 'true'),
149
-
150
- // ========== 日志配置 ==========
151
- LOG_DEBUG: getEnvNumber('LOG_DEBUG', 0),
152
- LOG_EXCLUDE_FIELDS: getEnv('LOG_EXCLUDE_FIELDS', 'password,token,secret'),
153
- LOG_DIR: getEnv('LOG_DIR', './logs'),
154
- LOG_TO_CONSOLE: getEnvNumber('LOG_TO_CONSOLE', 1),
155
- LOG_MAX_SIZE: getEnvNumber('LOG_MAX_SIZE', 10485760), // 10MB
156
-
157
- // ========== 时区配置 ==========
158
- TZ: getEnv('TZ', 'Asia/Shanghai'),
159
-
160
- // ========== 数据库配置 ==========
161
- DB_ENABLE: getEnvNumber('DB_ENABLE', 1),
162
- DB_TYPE: getEnv('DB_TYPE', 'mysql'),
163
- DB_HOST: getEnv('DB_HOST', 'localhost'),
164
- DB_PORT: getEnvNumber('DB_PORT', 3306),
165
- DB_USER: getEnv('DB_USER', 'root'),
166
- DB_PASS: getEnv('DB_PASS', ''),
167
- DB_NAME: getEnv('DB_NAME', 'befly'),
168
- DB_DEBUG: getEnvNumber('DB_DEBUG', 0),
169
- DB_POOL_MAX: getEnvNumber('DB_POOL_MAX', 10),
170
-
171
- // ========== Redis 配置 ==========
172
- REDIS_ENABLE: getEnvNumber('REDIS_ENABLE', 1),
173
- REDIS_HOST: getEnv('REDIS_HOST', 'localhost'),
174
- REDIS_PORT: getEnvNumber('REDIS_PORT', 6379),
175
- REDIS_USERNAME: getEnv('REDIS_USERNAME', ''),
176
- REDIS_PASSWORD: getEnv('REDIS_PASSWORD', ''),
177
- REDIS_DB: getEnvNumber('REDIS_DB', 0),
178
- REDIS_KEY_PREFIX: getEnv('REDIS_KEY_PREFIX', 'befly'),
179
-
180
- // ========== JWT 配置 ==========
181
- JWT_SECRET: getEnv('JWT_SECRET', 'befly-secret'),
182
- JWT_EXPIRES_IN: getEnv('JWT_EXPIRES_IN', '7d'),
183
- JWT_ALGORITHM: getEnv('JWT_ALGORITHM', 'HS256'),
184
-
185
- // ========== CORS 配置 ==========
186
- CORS_ALLOWED_ORIGIN: getEnv('CORS_ALLOWED_ORIGIN', '*'),
187
- CORS_ALLOWED_METHODS: getEnv('CORS_ALLOWED_METHODS', 'GET, POST, PUT, DELETE, OPTIONS'),
188
- CORS_ALLOWED_HEADERS: getEnv('CORS_ALLOWED_HEADERS', 'Content-Type, Authorization, authorization, token'),
189
- CORS_EXPOSE_HEADERS: getEnv('CORS_EXPOSE_HEADERS', 'Content-Range, X-Content-Range, Authorization, authorization, token'),
190
- CORS_MAX_AGE: getEnvNumber('CORS_MAX_AGE', 86400),
191
- CORS_ALLOW_CREDENTIALS: getEnv('CORS_ALLOW_CREDENTIALS', 'true'),
192
-
193
- // ========== 邮件配置 ==========
194
- MAIL_HOST: getEnv('MAIL_HOST', ''),
195
- MAIL_PORT: getEnvNumber('MAIL_PORT', 587),
196
- MAIL_POOL: getEnv('MAIL_POOL', 'true'),
197
- MAIL_SECURE: getEnv('MAIL_SECURE', 'false'),
198
- MAIL_USER: getEnv('MAIL_USER', ''),
199
- MAIL_PASS: getEnv('MAIL_PASS', ''),
200
- MAIL_SENDER: getEnv('MAIL_SENDER', ''),
201
- MAIL_ADDRESS: getEnv('MAIL_ADDRESS', '')
202
- };