@zhin.js/database 1.0.4 → 1.0.5

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 (115) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1360 -34
  3. package/lib/base/database.d.ts +71 -13
  4. package/lib/base/database.d.ts.map +1 -1
  5. package/lib/base/database.js +128 -4
  6. package/lib/base/database.js.map +1 -1
  7. package/lib/base/dialect.d.ts +27 -10
  8. package/lib/base/dialect.d.ts.map +1 -1
  9. package/lib/base/dialect.js +32 -0
  10. package/lib/base/dialect.js.map +1 -1
  11. package/lib/base/index.d.ts +1 -0
  12. package/lib/base/index.d.ts.map +1 -1
  13. package/lib/base/index.js +1 -0
  14. package/lib/base/index.js.map +1 -1
  15. package/lib/base/model.d.ts +105 -12
  16. package/lib/base/model.d.ts.map +1 -1
  17. package/lib/base/model.js +224 -3
  18. package/lib/base/model.js.map +1 -1
  19. package/lib/base/query-classes.d.ts +204 -33
  20. package/lib/base/query-classes.d.ts.map +1 -1
  21. package/lib/base/query-classes.js +276 -0
  22. package/lib/base/query-classes.js.map +1 -1
  23. package/lib/base/thenable.d.ts +7 -7
  24. package/lib/base/thenable.d.ts.map +1 -1
  25. package/lib/base/thenable.js +5 -4
  26. package/lib/base/thenable.js.map +1 -1
  27. package/lib/base/transaction.d.ts +46 -0
  28. package/lib/base/transaction.d.ts.map +1 -0
  29. package/lib/base/transaction.js +186 -0
  30. package/lib/base/transaction.js.map +1 -0
  31. package/lib/dialects/memory.d.ts +12 -7
  32. package/lib/dialects/memory.d.ts.map +1 -1
  33. package/lib/dialects/memory.js +7 -4
  34. package/lib/dialects/memory.js.map +1 -1
  35. package/lib/dialects/mongodb.d.ts +11 -7
  36. package/lib/dialects/mongodb.d.ts.map +1 -1
  37. package/lib/dialects/mongodb.js +18 -15
  38. package/lib/dialects/mongodb.js.map +1 -1
  39. package/lib/dialects/mysql.d.ts +35 -6
  40. package/lib/dialects/mysql.d.ts.map +1 -1
  41. package/lib/dialects/mysql.js +137 -18
  42. package/lib/dialects/mysql.js.map +1 -1
  43. package/lib/dialects/pg.d.ts +35 -6
  44. package/lib/dialects/pg.d.ts.map +1 -1
  45. package/lib/dialects/pg.js +137 -18
  46. package/lib/dialects/pg.js.map +1 -1
  47. package/lib/dialects/redis.d.ts +11 -6
  48. package/lib/dialects/redis.d.ts.map +1 -1
  49. package/lib/dialects/redis.js +11 -8
  50. package/lib/dialects/redis.js.map +1 -1
  51. package/lib/dialects/sqlite.d.ts +19 -6
  52. package/lib/dialects/sqlite.d.ts.map +1 -1
  53. package/lib/dialects/sqlite.js +63 -10
  54. package/lib/dialects/sqlite.js.map +1 -1
  55. package/lib/index.d.ts +1 -0
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +1 -0
  58. package/lib/index.js.map +1 -1
  59. package/lib/migration.d.ts +132 -0
  60. package/lib/migration.d.ts.map +1 -0
  61. package/lib/migration.js +475 -0
  62. package/lib/migration.js.map +1 -0
  63. package/lib/registry.d.ts +26 -23
  64. package/lib/registry.d.ts.map +1 -1
  65. package/lib/registry.js +1 -5
  66. package/lib/registry.js.map +1 -1
  67. package/lib/type/document/database.d.ts +11 -11
  68. package/lib/type/document/database.d.ts.map +1 -1
  69. package/lib/type/document/database.js.map +1 -1
  70. package/lib/type/document/model.d.ts +7 -7
  71. package/lib/type/document/model.d.ts.map +1 -1
  72. package/lib/type/document/model.js.map +1 -1
  73. package/lib/type/keyvalue/database.d.ts +11 -11
  74. package/lib/type/keyvalue/database.d.ts.map +1 -1
  75. package/lib/type/keyvalue/database.js.map +1 -1
  76. package/lib/type/keyvalue/model.d.ts +2 -2
  77. package/lib/type/keyvalue/model.d.ts.map +1 -1
  78. package/lib/type/keyvalue/model.js.map +1 -1
  79. package/lib/type/related/database.d.ts +48 -13
  80. package/lib/type/related/database.d.ts.map +1 -1
  81. package/lib/type/related/database.js +258 -27
  82. package/lib/type/related/database.js.map +1 -1
  83. package/lib/type/related/model.d.ts +251 -15
  84. package/lib/type/related/model.d.ts.map +1 -1
  85. package/lib/type/related/model.js +647 -22
  86. package/lib/type/related/model.js.map +1 -1
  87. package/lib/types.d.ts +475 -37
  88. package/lib/types.d.ts.map +1 -1
  89. package/lib/types.js +6 -0
  90. package/lib/types.js.map +1 -1
  91. package/package.json +10 -5
  92. package/src/base/database.ts +168 -24
  93. package/src/base/dialect.ts +49 -10
  94. package/src/base/index.ts +2 -1
  95. package/src/base/model.ts +258 -18
  96. package/src/base/query-classes.ts +471 -63
  97. package/src/base/thenable.ts +12 -11
  98. package/src/base/transaction.ts +213 -0
  99. package/src/dialects/memory.ts +14 -13
  100. package/src/dialects/mongodb.ts +40 -38
  101. package/src/dialects/mysql.ts +151 -22
  102. package/src/dialects/pg.ts +148 -21
  103. package/src/dialects/redis.ts +40 -38
  104. package/src/dialects/sqlite.ts +73 -15
  105. package/src/index.ts +1 -2
  106. package/src/migration.ts +544 -0
  107. package/src/registry.ts +33 -33
  108. package/src/type/document/database.ts +32 -32
  109. package/src/type/document/model.ts +14 -14
  110. package/src/type/keyvalue/database.ts +32 -32
  111. package/src/type/keyvalue/model.ts +18 -18
  112. package/src/type/related/database.ts +309 -34
  113. package/src/type/related/model.ts +800 -33
  114. package/src/types.ts +559 -44
  115. package/tests/database.test.ts +1738 -0
@@ -3,17 +3,34 @@ import { RelatedDatabase } from "../type/related/database.js";
3
3
  import { Registry } from "../registry.js";
4
4
  export class MySQLDialect extends Dialect {
5
5
  connection = null;
6
+ pool = null;
7
+ usePool = false;
6
8
  constructor(config) {
7
9
  super('mysql', config);
10
+ this.usePool = !!config.pool;
8
11
  }
9
12
  // Connection management
10
13
  isConnected() {
11
- return this.connection !== null;
14
+ return this.usePool ? this.pool !== null : this.connection !== null;
12
15
  }
13
16
  async connect() {
14
17
  try {
15
- const { createConnection } = await import('mysql2/promise');
16
- this.connection = await createConnection(this.config);
18
+ if (this.usePool) {
19
+ const { createPool } = await import('mysql2/promise');
20
+ const poolConfig = {
21
+ ...this.config,
22
+ waitForConnections: true,
23
+ connectionLimit: this.config.pool?.max ?? 10,
24
+ queueLimit: 0,
25
+ idleTimeout: this.config.pool?.idleTimeoutMillis ?? 60000,
26
+ };
27
+ this.pool = createPool(poolConfig);
28
+ console.log(`MySQL 连接池已创建 (max: ${poolConfig.connectionLimit})`);
29
+ }
30
+ else {
31
+ const { createConnection } = await import('mysql2/promise');
32
+ this.connection = await createConnection(this.config);
33
+ }
17
34
  }
18
35
  catch (error) {
19
36
  console.error('forgot install mysql2 ?');
@@ -21,20 +38,51 @@ export class MySQLDialect extends Dialect {
21
38
  }
22
39
  }
23
40
  async disconnect() {
24
- this.connection = null;
41
+ if (this.usePool && this.pool) {
42
+ await this.pool.end();
43
+ this.pool = null;
44
+ console.log('MySQL 连接池已关闭');
45
+ }
46
+ else if (this.connection) {
47
+ await this.connection.end();
48
+ this.connection = null;
49
+ }
25
50
  }
26
51
  async healthCheck() {
27
- return this.isConnected();
52
+ if (!this.isConnected())
53
+ return false;
54
+ try {
55
+ await this.query('SELECT 1');
56
+ return true;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
28
61
  }
29
62
  async query(sql, params) {
30
- const [rows] = await this.connection.execute(sql, params);
31
- return rows;
63
+ if (this.usePool) {
64
+ const [rows] = await this.pool.execute(sql, params);
65
+ return rows;
66
+ }
67
+ else {
68
+ const [rows] = await this.connection.execute(sql, params);
69
+ return rows;
70
+ }
32
71
  }
33
72
  async dispose() {
34
- if (this.connection) {
35
- await this.connection.end();
36
- this.connection = null;
37
- }
73
+ await this.disconnect();
74
+ }
75
+ /**
76
+ * 获取连接池统计信息(仅在使用连接池时有效)
77
+ */
78
+ getPoolStats() {
79
+ if (!this.usePool || !this.pool)
80
+ return null;
81
+ return {
82
+ total: this.pool.pool?._allConnections?.length ?? 0,
83
+ idle: this.pool.pool?._freeConnections?.length ?? 0,
84
+ waiting: this.pool.pool?._connectionQueue?.length ?? 0,
85
+ };
38
86
  }
39
87
  // SQL generation methods
40
88
  mapColumnType(type) {
@@ -99,7 +147,7 @@ export class MySQLDialect extends Dialect {
99
147
  return `LIMIT ${offset}, ${limit}`;
100
148
  }
101
149
  formatCreateTable(tableName, columns) {
102
- return `CREATE TABLE IF NOT EXISTS ${this.quoteIdentifier(tableName)} (${columns.join(', ')}) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`;
150
+ return `CREATE TABLE IF NOT EXISTS ${this.quoteIdentifier(String(tableName))} (${columns.join(', ')}) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`;
103
151
  }
104
152
  formatColumnDefinition(field, column) {
105
153
  const name = this.quoteIdentifier(String(field));
@@ -115,18 +163,89 @@ export class MySQLDialect extends Dialect {
115
163
  return `${name} ${type}${length}${primary}${unique}${autoIncrement}${nullable}${defaultVal}`;
116
164
  }
117
165
  formatAlterTable(tableName, alterations) {
118
- return `ALTER TABLE ${this.quoteIdentifier(tableName)} ${alterations.join(', ')}`;
166
+ return `ALTER TABLE ${this.quoteIdentifier(String(tableName))} ${alterations.join(', ')}`;
119
167
  }
120
168
  formatDropTable(tableName, ifExists) {
121
169
  const ifExistsClause = ifExists ? 'IF EXISTS ' : '';
122
- return `DROP TABLE ${ifExistsClause}${this.quoteIdentifier(tableName)}`;
170
+ return `DROP TABLE ${ifExistsClause}${this.quoteIdentifier(String(tableName))}`;
123
171
  }
124
172
  formatDropIndex(indexName, tableName, ifExists) {
125
173
  const ifExistsClause = ifExists ? 'IF EXISTS ' : '';
126
- return `DROP INDEX ${ifExistsClause}${this.quoteIdentifier(indexName)} ON ${this.quoteIdentifier(tableName)}`;
174
+ return `DROP INDEX ${ifExistsClause}${this.quoteIdentifier(indexName)} ON ${this.quoteIdentifier(String(tableName))}`;
175
+ }
176
+ // ============================================================================
177
+ // Transaction Support
178
+ // ============================================================================
179
+ /**
180
+ * MySQL 支持事务
181
+ */
182
+ supportsTransactions() {
183
+ return true;
184
+ }
185
+ /**
186
+ * 开始事务
187
+ * 在连接池模式下,会获取一个专用连接用于事务
188
+ */
189
+ async beginTransaction(options) {
190
+ if (this.usePool) {
191
+ // 从连接池获取一个连接用于事务
192
+ const connection = await this.pool.getConnection();
193
+ // 设置隔离级别
194
+ if (options?.isolationLevel) {
195
+ await connection.execute(`SET TRANSACTION ISOLATION LEVEL ${this.formatIsolationLevel(options.isolationLevel)}`);
196
+ }
197
+ // 开始事务
198
+ await connection.execute('START TRANSACTION');
199
+ return {
200
+ async commit() {
201
+ try {
202
+ await connection.execute('COMMIT');
203
+ }
204
+ finally {
205
+ connection.release(); // 归还连接到池
206
+ }
207
+ },
208
+ async rollback() {
209
+ try {
210
+ await connection.execute('ROLLBACK');
211
+ }
212
+ finally {
213
+ connection.release(); // 归还连接到池
214
+ }
215
+ },
216
+ async query(sql, params) {
217
+ const [rows] = await connection.execute(sql, params);
218
+ return rows;
219
+ }
220
+ };
221
+ }
222
+ else {
223
+ // 单连接模式
224
+ const dialect = this;
225
+ // 设置隔离级别
226
+ if (options?.isolationLevel) {
227
+ await this.query(`SET TRANSACTION ISOLATION LEVEL ${this.formatIsolationLevel(options.isolationLevel)}`);
228
+ }
229
+ // 开始事务
230
+ await this.query('START TRANSACTION');
231
+ return {
232
+ async commit() {
233
+ await dialect.query('COMMIT');
234
+ },
235
+ async rollback() {
236
+ await dialect.query('ROLLBACK');
237
+ },
238
+ async query(sql, params) {
239
+ return dialect.query(sql, params);
240
+ }
241
+ };
242
+ }
243
+ }
244
+ }
245
+ export class MySQL extends RelatedDatabase {
246
+ constructor(config, definitions) {
247
+ super(new MySQLDialect(config), definitions);
127
248
  }
128
249
  }
129
- Registry.register('mysql', (config, definitions) => {
130
- return new RelatedDatabase(new MySQLDialect(config), definitions);
131
- });
250
+ Registry.register('mysql', MySQL);
132
251
  //# sourceMappingURL=mysql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/dialects/mysql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/dialects/mysql.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,19 @@
1
1
  import { Dialect } from '../base/index.js';
2
+ import { RelatedDatabase } from "../type/related/database.js";
3
+ import { Database } from "../base/index.js";
2
4
  import type { ClientConfig } from 'pg';
3
- import { Column } from "../types.js";
5
+ import { Column, Transaction, TransactionOptions, PoolConfig } from "../types.js";
4
6
  export interface PostgreSQLDialectConfig extends ClientConfig {
7
+ /**
8
+ * 连接池配置
9
+ * 如果提供此选项,将使用连接池而不是单连接
10
+ */
11
+ pool?: PoolConfig;
5
12
  }
6
- export declare class PostgreSQLDialect extends Dialect<PostgreSQLDialectConfig, string> {
13
+ export declare class PostgreSQLDialect<S extends Record<string, object> = Record<string, object>> extends Dialect<PostgreSQLDialectConfig, S, string> {
7
14
  private connection;
15
+ private pool;
16
+ private usePool;
8
17
  constructor(config: PostgreSQLDialectConfig);
9
18
  isConnected(): boolean;
10
19
  connect(): Promise<void>;
@@ -12,6 +21,14 @@ export declare class PostgreSQLDialect extends Dialect<PostgreSQLDialectConfig,
12
21
  healthCheck(): Promise<boolean>;
13
22
  query<U = any>(sql: string, params?: any[]): Promise<U>;
14
23
  dispose(): Promise<void>;
24
+ /**
25
+ * 获取连接池统计信息(仅在使用连接池时有效)
26
+ */
27
+ getPoolStats(): {
28
+ total: number;
29
+ idle: number;
30
+ waiting: number;
31
+ } | null;
15
32
  mapColumnType(type: string): string;
16
33
  quoteIdentifier(identifier: string): string;
17
34
  getParameterPlaceholder(index: number): string;
@@ -24,10 +41,22 @@ export declare class PostgreSQLDialect extends Dialect<PostgreSQLDialectConfig,
24
41
  formatLimit(limit: number): string;
25
42
  formatOffset(offset: number): string;
26
43
  formatLimitOffset(limit: number, offset: number): string;
27
- formatCreateTable(tableName: string, columns: string[]): string;
44
+ formatCreateTable<T extends keyof S>(tableName: T, columns: string[]): string;
28
45
  formatColumnDefinition(field: string, column: Column<any>): string;
29
- formatAlterTable(tableName: string, alterations: string[]): string;
30
- formatDropTable(tableName: string, ifExists?: boolean): string;
31
- formatDropIndex(indexName: string, tableName: string, ifExists?: boolean): string;
46
+ formatAlterTable<T extends keyof S>(tableName: T, alterations: string[]): string;
47
+ formatDropTable<T extends keyof S>(tableName: T, ifExists?: boolean): string;
48
+ formatDropIndex<T extends keyof S>(indexName: string, tableName: T, ifExists?: boolean): string;
49
+ /**
50
+ * PostgreSQL 支持事务
51
+ */
52
+ supportsTransactions(): boolean;
53
+ /**
54
+ * 开始事务
55
+ * 在连接池模式下,会获取一个专用连接用于事务
56
+ */
57
+ beginTransaction(options?: TransactionOptions): Promise<Transaction>;
58
+ }
59
+ export declare class PG<S extends Record<string, object> = Record<string, object>> extends RelatedDatabase<PostgreSQLDialectConfig, S> {
60
+ constructor(config: PostgreSQLDialectConfig, definitions?: Database.DefinitionObj<S>);
32
61
  }
33
62
  //# sourceMappingURL=pg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/dialects/pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,MAAM,WAAW,uBAAwB,SAAQ,YAAY;CAAG;AAEhE,qBAAa,iBAAkB,SAAQ,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAC7E,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,uBAAuB;IAK3C,WAAW,IAAI,OAAO;IAIhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAKvD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYnC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI3C,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI9C,sBAAsB,IAAI,MAAM;IAIhC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAIrC,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAI/B,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IAI9B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IAgBtC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIlC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIpC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIxD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAI/D,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;IAclE,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAIlE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM;IAK9D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM;CAIlF"}
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/dialects/pg.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,35 @@ import { RelatedDatabase } from "../type/related/database.js";
3
3
  import { Registry } from "../registry.js";
4
4
  export class PostgreSQLDialect extends Dialect {
5
5
  connection = null;
6
+ pool = null;
7
+ usePool = false;
6
8
  constructor(config) {
7
9
  super('pg', config);
10
+ this.usePool = !!config.pool;
8
11
  }
9
12
  // Connection management
10
13
  isConnected() {
11
- return this.connection !== null;
14
+ return this.usePool ? this.pool !== null : this.connection !== null;
12
15
  }
13
16
  async connect() {
14
17
  try {
15
- const { Client } = await import('pg');
16
- this.connection = new Client(this.config);
17
- await this.connection.connect();
18
+ if (this.usePool) {
19
+ const { Pool } = await import('pg');
20
+ const poolConfig = {
21
+ ...this.config,
22
+ max: this.config.pool?.max ?? 10,
23
+ min: this.config.pool?.min ?? 2,
24
+ idleTimeoutMillis: this.config.pool?.idleTimeoutMillis ?? 30000,
25
+ connectionTimeoutMillis: this.config.pool?.acquireTimeoutMillis ?? 10000,
26
+ };
27
+ this.pool = new Pool(poolConfig);
28
+ console.log(`PostgreSQL 连接池已创建 (max: ${poolConfig.max})`);
29
+ }
30
+ else {
31
+ const { Client } = await import('pg');
32
+ this.connection = new Client(this.config);
33
+ await this.connection.connect();
34
+ }
18
35
  }
19
36
  catch (error) {
20
37
  console.error('forgot install pg ?');
@@ -22,20 +39,51 @@ export class PostgreSQLDialect extends Dialect {
22
39
  }
23
40
  }
24
41
  async disconnect() {
25
- this.connection = null;
42
+ if (this.usePool && this.pool) {
43
+ await this.pool.end();
44
+ this.pool = null;
45
+ console.log('PostgreSQL 连接池已关闭');
46
+ }
47
+ else if (this.connection) {
48
+ await this.connection.end();
49
+ this.connection = null;
50
+ }
26
51
  }
27
52
  async healthCheck() {
28
- return this.isConnected();
53
+ if (!this.isConnected())
54
+ return false;
55
+ try {
56
+ await this.query('SELECT 1');
57
+ return true;
58
+ }
59
+ catch {
60
+ return false;
61
+ }
29
62
  }
30
63
  async query(sql, params) {
31
- const result = await this.connection.query(sql, params);
32
- return result.rows;
64
+ if (this.usePool) {
65
+ const result = await this.pool.query(sql, params);
66
+ return result.rows;
67
+ }
68
+ else {
69
+ const result = await this.connection.query(sql, params);
70
+ return result.rows;
71
+ }
33
72
  }
34
73
  async dispose() {
35
- if (this.connection) {
36
- await this.connection.end();
37
- this.connection = null;
38
- }
74
+ await this.disconnect();
75
+ }
76
+ /**
77
+ * 获取连接池统计信息(仅在使用连接池时有效)
78
+ */
79
+ getPoolStats() {
80
+ if (!this.usePool || !this.pool)
81
+ return null;
82
+ return {
83
+ total: this.pool.totalCount ?? 0,
84
+ idle: this.pool.idleCount ?? 0,
85
+ waiting: this.pool.waitingCount ?? 0,
86
+ };
39
87
  }
40
88
  // SQL generation methods
41
89
  mapColumnType(type) {
@@ -100,7 +148,7 @@ export class PostgreSQLDialect extends Dialect {
100
148
  return `LIMIT ${limit} OFFSET ${offset}`;
101
149
  }
102
150
  formatCreateTable(tableName, columns) {
103
- return `CREATE TABLE IF NOT EXISTS ${this.quoteIdentifier(tableName)} (${columns.join(', ')})`;
151
+ return `CREATE TABLE IF NOT EXISTS ${this.quoteIdentifier(String(tableName))} (${columns.join(', ')})`;
104
152
  }
105
153
  formatColumnDefinition(field, column) {
106
154
  const name = this.quoteIdentifier(String(field));
@@ -115,18 +163,89 @@ export class PostgreSQLDialect extends Dialect {
115
163
  return `${name} ${type}${length}${primary}${unique}${nullable}${defaultVal}`;
116
164
  }
117
165
  formatAlterTable(tableName, alterations) {
118
- return `ALTER TABLE ${this.quoteIdentifier(tableName)} ${alterations.join(', ')}`;
166
+ return `ALTER TABLE ${this.quoteIdentifier(String(tableName))} ${alterations.join(', ')}`;
119
167
  }
120
168
  formatDropTable(tableName, ifExists) {
121
169
  const ifExistsClause = ifExists ? 'IF EXISTS ' : '';
122
- return `DROP TABLE ${ifExistsClause}${this.quoteIdentifier(tableName)}`;
170
+ return `DROP TABLE ${ifExistsClause}${this.quoteIdentifier(String(tableName))}`;
123
171
  }
124
172
  formatDropIndex(indexName, tableName, ifExists) {
125
173
  const ifExistsClause = ifExists ? 'IF EXISTS ' : '';
126
174
  return `DROP INDEX ${ifExistsClause}${this.quoteIdentifier(indexName)}`;
127
175
  }
176
+ // ============================================================================
177
+ // Transaction Support
178
+ // ============================================================================
179
+ /**
180
+ * PostgreSQL 支持事务
181
+ */
182
+ supportsTransactions() {
183
+ return true;
184
+ }
185
+ /**
186
+ * 开始事务
187
+ * 在连接池模式下,会获取一个专用连接用于事务
188
+ */
189
+ async beginTransaction(options) {
190
+ if (this.usePool) {
191
+ // 从连接池获取一个连接用于事务
192
+ const client = await this.pool.connect();
193
+ // 开始事务(可以带隔离级别)
194
+ let beginSql = 'BEGIN';
195
+ if (options?.isolationLevel) {
196
+ beginSql = `BEGIN ISOLATION LEVEL ${this.formatIsolationLevel(options.isolationLevel)}`;
197
+ }
198
+ await client.query(beginSql);
199
+ return {
200
+ async commit() {
201
+ try {
202
+ await client.query('COMMIT');
203
+ }
204
+ finally {
205
+ client.release(); // 归还连接到池
206
+ }
207
+ },
208
+ async rollback() {
209
+ try {
210
+ await client.query('ROLLBACK');
211
+ }
212
+ finally {
213
+ client.release(); // 归还连接到池
214
+ }
215
+ },
216
+ async query(sql, params) {
217
+ const result = await client.query(sql, params);
218
+ return result.rows;
219
+ }
220
+ };
221
+ }
222
+ else {
223
+ // 单连接模式
224
+ const dialect = this;
225
+ // 开始事务(可以带隔离级别)
226
+ let beginSql = 'BEGIN';
227
+ if (options?.isolationLevel) {
228
+ beginSql = `BEGIN ISOLATION LEVEL ${this.formatIsolationLevel(options.isolationLevel)}`;
229
+ }
230
+ await this.query(beginSql);
231
+ return {
232
+ async commit() {
233
+ await dialect.query('COMMIT');
234
+ },
235
+ async rollback() {
236
+ await dialect.query('ROLLBACK');
237
+ },
238
+ async query(sql, params) {
239
+ return dialect.query(sql, params);
240
+ }
241
+ };
242
+ }
243
+ }
244
+ }
245
+ export class PG extends RelatedDatabase {
246
+ constructor(config, definitions) {
247
+ super(new PostgreSQLDialect(config), definitions);
248
+ }
128
249
  }
129
- Registry.register('pg', (config, definitions) => {
130
- return new RelatedDatabase(new PostgreSQLDialect(config), definitions);
131
- });
250
+ Registry.register('pg', PG);
132
251
  //# sourceMappingURL=pg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../src/dialects/pg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../src/dialects/pg.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { Dialect } from "../base/index.js";
2
+ import { KeyValueDatabase } from "../type/keyvalue/database.js";
3
+ import { Database } from "../base/index.js";
2
4
  import type { RedisClientOptions } from 'redis';
3
5
  import { BuildQueryResult, KeyValueQueryResult, DatabaseDialect, QueryParams } from "../types.js";
4
6
  export interface RedisDialectConfig extends RedisClientOptions {
5
7
  }
6
- export declare class RedisDialect extends Dialect<RedisDialectConfig, KeyValueQueryResult> {
8
+ export declare class RedisDialect<S extends Record<string, object> = Record<string, object>> extends Dialect<RedisDialectConfig, S, KeyValueQueryResult> {
7
9
  private client;
8
10
  constructor(config: RedisDialectConfig);
9
11
  /**
@@ -41,7 +43,7 @@ export declare class RedisDialect extends Dialect<RedisDialectConfig, KeyValueQu
41
43
  /**
42
44
  * 构建查询
43
45
  */
44
- buildQuery<U extends object = any>(params: QueryParams<U>): BuildQueryResult<KeyValueQueryResult>;
46
+ buildQuery<T extends keyof S>(params: QueryParams<S, T>): BuildQueryResult<KeyValueQueryResult>;
45
47
  mapColumnType(type: string): string;
46
48
  quoteIdentifier(identifier: string): string;
47
49
  getParameterPlaceholder(index: number): string;
@@ -54,10 +56,10 @@ export declare class RedisDialect extends Dialect<RedisDialectConfig, KeyValueQu
54
56
  formatLimit(limit: number): string;
55
57
  formatOffset(offset: number): string;
56
58
  formatLimitOffset(limit: number, offset: number): string;
57
- formatCreateTable(tableName: string, columns: string[]): string;
58
- formatAlterTable(tableName: string, alterations: string[]): string;
59
- formatDropTable(tableName: string, ifExists?: boolean): string;
60
- formatDropIndex(indexName: string, tableName: string, ifExists?: boolean): string;
59
+ formatCreateTable(tableName: keyof S, columns: string[]): string;
60
+ formatAlterTable(tableName: keyof S, alterations: string[]): string;
61
+ formatDropTable(tableName: keyof S, ifExists?: boolean): string;
62
+ formatDropIndex(indexName: string, tableName: keyof S, ifExists?: boolean): string;
61
63
  private buildCreateQuery;
62
64
  private buildSelectQuery;
63
65
  private buildInsertQuery;
@@ -84,4 +86,7 @@ export declare class RedisDialect extends Dialect<RedisDialectConfig, KeyValueQu
84
86
  private executeKeysByPattern;
85
87
  get dialectInfo(): DatabaseDialect;
86
88
  }
89
+ export declare class Redis<S extends Record<string, object> = Record<string, object>> extends KeyValueDatabase<RedisDialectConfig, S> {
90
+ constructor(config: RedisDialectConfig, definitions?: Database.DefinitionObj<S>);
91
+ }
87
92
  //# sourceMappingURL=redis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/dialects/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/dialects/redis.ts"],"names":[],"mappings":"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"}
@@ -191,22 +191,22 @@ export class RedisDialect extends Dialect {
191
191
  return `${limit},${offset}`;
192
192
  }
193
193
  formatCreateTable(tableName, columns) {
194
- return `CREATE TABLE ${tableName} (${columns.join(',')})`;
194
+ return `CREATE TABLE ${String(tableName)} (${columns.join(',')})`;
195
195
  }
196
196
  formatAlterTable(tableName, alterations) {
197
- return `ALTER TABLE ${tableName} ${alterations.join(',')}`;
197
+ return `ALTER TABLE ${String(tableName)} ${alterations.join(',')}`;
198
198
  }
199
199
  formatDropTable(tableName, ifExists) {
200
- return `DROP TABLE ${tableName} ${ifExists ? 'IF EXISTS' : ''}`;
200
+ return `DROP TABLE ${String(tableName)} ${ifExists ? 'IF EXISTS' : ''}`;
201
201
  }
202
202
  formatDropIndex(indexName, tableName, ifExists) {
203
- return `DROP INDEX ${indexName} ON ${tableName} ${ifExists ? 'IF EXISTS' : ''}`;
203
+ return `DROP INDEX ${indexName} ON ${String(tableName)} ${ifExists ? 'IF EXISTS' : ''}`;
204
204
  }
205
205
  // Redis 特定的查询构建方法
206
206
  buildCreateQuery(params) {
207
207
  return {
208
208
  query: {
209
- bucket: params.tableName,
209
+ bucket: String(params.tableName),
210
210
  operation: 'keys'
211
211
  },
212
212
  params: []
@@ -494,7 +494,10 @@ export class RedisDialect extends Dialect {
494
494
  };
495
495
  }
496
496
  }
497
- Registry.register('redis', (config, definitions) => {
498
- return new KeyValueDatabase(new RedisDialect(config), definitions);
499
- });
497
+ export class Redis extends KeyValueDatabase {
498
+ constructor(config, definitions) {
499
+ super(new RedisDialect(config), definitions);
500
+ }
501
+ }
502
+ Registry.register('redis', Redis);
500
503
  //# sourceMappingURL=redis.js.map