tspace-mysql 1.9.0 → 1.9.1

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/README.md +4357 -133
  2. package/dist/lib/config/index.d.ts +2 -2
  3. package/dist/lib/config/index.js +24 -16
  4. package/dist/lib/config/index.js.map +1 -1
  5. package/dist/lib/constants/index.d.ts +10 -1
  6. package/dist/lib/constants/index.js +11 -2
  7. package/dist/lib/constants/index.js.map +1 -1
  8. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +11 -7
  9. package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
  10. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  11. package/dist/lib/core/Abstracts/AbstractDB.d.ts +4 -1
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  14. package/dist/lib/core/Blueprint.d.ts +30 -10
  15. package/dist/lib/core/Blueprint.js +39 -14
  16. package/dist/lib/core/Blueprint.js.map +1 -1
  17. package/dist/lib/core/Builder.d.ts +263 -9
  18. package/dist/lib/core/Builder.js +610 -347
  19. package/dist/lib/core/Builder.js.map +1 -1
  20. package/dist/lib/core/Cache/DBCache.js +19 -20
  21. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  22. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  23. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  24. package/dist/lib/core/Cache/RedisCache.js +27 -17
  25. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  26. package/dist/lib/core/Cache/index.js +5 -4
  27. package/dist/lib/core/Cache/index.js.map +1 -1
  28. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  29. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  30. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  31. package/dist/lib/core/Contracts/Audit.js +2 -5
  32. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  33. package/dist/lib/core/DB.d.ts +101 -9
  34. package/dist/lib/core/DB.js +168 -29
  35. package/dist/lib/core/DB.js.map +1 -1
  36. package/dist/lib/core/Decorator.d.ts +144 -16
  37. package/dist/lib/core/Decorator.js +156 -14
  38. package/dist/lib/core/Decorator.js.map +1 -1
  39. package/dist/lib/core/Driver/index.d.ts +43 -9
  40. package/dist/lib/core/Driver/index.js +9 -7
  41. package/dist/lib/core/Driver/index.js.map +1 -1
  42. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +74 -27
  43. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  44. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +45 -9
  45. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +165 -21
  46. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  47. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  48. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +255 -0
  49. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  50. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  51. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +563 -0
  52. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  53. package/dist/lib/core/Driver/mysql/MysqlDriver.js +105 -95
  54. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  55. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +45 -9
  56. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +165 -21
  57. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  58. package/dist/lib/core/Driver/postgres/PostgresDriver.js +97 -72
  59. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +50 -9
  61. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +296 -41
  62. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +20 -0
  64. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +192 -0
  65. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  66. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +144 -0
  67. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +689 -0
  68. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  69. package/dist/lib/core/JoinModel.js +2 -2
  70. package/dist/lib/core/JoinModel.js.map +1 -1
  71. package/dist/lib/core/Meta.d.ts +17 -11
  72. package/dist/lib/core/Meta.js +25 -19
  73. package/dist/lib/core/Meta.js.map +1 -1
  74. package/dist/lib/core/Model.d.ts +450 -108
  75. package/dist/lib/core/Model.js +1031 -587
  76. package/dist/lib/core/Model.js.map +1 -1
  77. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  78. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  79. package/dist/lib/core/Package.js.map +1 -0
  80. package/dist/lib/core/Pool.js +42 -30
  81. package/dist/lib/core/Pool.js.map +1 -1
  82. package/dist/lib/core/Queue.d.ts +240 -0
  83. package/dist/lib/core/Queue.js +686 -0
  84. package/dist/lib/core/Queue.js.map +1 -0
  85. package/dist/lib/core/RelationManager.js +27 -25
  86. package/dist/lib/core/RelationManager.js.map +1 -1
  87. package/dist/lib/core/Repository.d.ts +73 -207
  88. package/dist/lib/core/Repository.js +120 -235
  89. package/dist/lib/core/Repository.js.map +1 -1
  90. package/dist/lib/core/Schema.d.ts +218 -0
  91. package/dist/lib/core/Schema.js +370 -65
  92. package/dist/lib/core/Schema.js.map +1 -1
  93. package/dist/lib/core/StateManager.d.ts +25 -12
  94. package/dist/lib/core/StateManager.js +10 -5
  95. package/dist/lib/core/StateManager.js.map +1 -1
  96. package/dist/lib/core/UtilityTypes.d.ts +85 -56
  97. package/dist/lib/core/UtilityTypes.js.map +1 -1
  98. package/dist/lib/core/index.d.ts +4 -0
  99. package/dist/lib/core/index.js +6 -2
  100. package/dist/lib/core/index.js.map +1 -1
  101. package/dist/lib/types/decorator/index.d.ts +1 -1
  102. package/dist/lib/types/index.d.ts +69 -22
  103. package/dist/lib/types/repository/index.d.ts +68 -37
  104. package/dist/lib/utils/index.d.ts +11 -1
  105. package/dist/lib/utils/index.js +58 -2
  106. package/dist/lib/utils/index.js.map +1 -1
  107. package/package.json +14 -6
  108. package/dist/lib/tools/index.js.map +0 -1
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.MysqlDriver = void 0;
7
+ const mysql2_1 = __importDefault(require("mysql2"));
4
8
  const __1 = require("..");
5
9
  const MysqlQueryBuilder_1 = require("./MysqlQueryBuilder");
6
10
  class MysqlDriver extends __1.BaseDriver {
@@ -10,8 +14,7 @@ class MysqlDriver extends __1.BaseDriver {
10
14
  }
11
15
  connect() {
12
16
  const options = this.options;
13
- const mysql = this.import("mysql2");
14
- this.pool = mysql.createPool({
17
+ const configs = {
15
18
  host: options.host,
16
19
  port: options.port,
17
20
  database: options.database,
@@ -27,32 +30,36 @@ class MysqlDriver extends __1.BaseDriver {
27
30
  maxIdle: Math.max(2, Math.floor((options.connectionLimit ?? 20) / 3)),
28
31
  idleTimeout: 1000 * 60,
29
32
  charset: 'utf8mb4',
33
+ };
34
+ this.pool = mysql2_1.default.createPool(configs);
35
+ this.poolTrx = mysql2_1.default.createPool({
36
+ ...configs,
37
+ connectionLimit: configs.connectionLimit * 1.5
30
38
  });
31
- this.pool.getConnection((err, connection) => {
32
- if (err) {
33
- const message = this._messageError.bind(this);
34
- process.nextTick(() => {
35
- if (String(err.message).includes('Pool is close')) {
36
- return;
37
- }
38
- console.log(message(err.message == null || err.message === '' ? err.code : err.message));
39
- if (this.options.CONNECTION_ERROR)
40
- return process.exit();
41
- });
39
+ this.pool.getConnection((err) => {
40
+ if (!err)
42
41
  return;
43
- }
44
- if (this.options.CONNECTION_SUCCESS) {
45
- connection.query(`SHOW VARIABLES LIKE 'version%'`, (err, results) => {
46
- connection.release();
47
- if (err)
48
- return;
49
- const message = [
50
- results.find(v => v?.Variable_name === 'version'),
51
- results.find(v => v?.Variable_name === 'version_comment')
52
- ].map(v => v?.Value).join(' - ');
53
- console.log(this._messageConnected.bind(this)(`${message}`));
42
+ if (err?.message?.includes('Unknown database')) {
43
+ const db = mysql2_1.default.createConnection({
44
+ host: options.host,
45
+ port: options.port,
46
+ user: options.user || options.username,
47
+ password: options.password,
54
48
  });
49
+ const sql = new MysqlQueryBuilder_1.MysqlQueryBuilder({}).createDatabase(options.database);
50
+ db.query(sql, () => db.end());
51
+ return;
55
52
  }
53
+ const message = this._messageError.bind(this);
54
+ process.nextTick(() => {
55
+ if (String(err.message).includes('Pool is close')) {
56
+ return;
57
+ }
58
+ console.log(message(err.message == null || err.message === '' ? err.code : err.message));
59
+ if (this.options.CONNECTION_ERROR)
60
+ return process.exit();
61
+ });
62
+ return;
56
63
  });
57
64
  this.pool.on("release", (connection) => {
58
65
  this.emit("release", connection);
@@ -85,77 +92,80 @@ class MysqlDriver extends __1.BaseDriver {
85
92
  });
86
93
  });
87
94
  }
88
- _connection() {
89
- let closeTransaction = false;
90
- return new Promise((resolve, reject) => {
91
- this.pool.getConnection((err, connection) => {
92
- if (err)
93
- return reject(err);
94
- const query = (sql) => {
95
- const start = Date.now();
96
- return new Promise((ok, fail) => {
97
- if (closeTransaction) {
98
- return fail(new Error(this.MESSAGE_TRX_CLOSED));
99
- }
100
- connection.query(sql, (err, results) => {
101
- connection.release();
102
- if (err) {
103
- return fail(err);
104
- }
105
- this._detectEventQuery({ start, sql });
106
- this.meta(results, sql);
107
- return ok(this.returning(results));
108
- });
109
- });
110
- };
111
- const startTransaction = async () => {
112
- if (closeTransaction) {
113
- throw new Error(this.MESSAGE_TRX_CLOSED);
114
- }
115
- await query("START TRANSACTION").catch((err) => reject(err));
116
- return;
117
- };
118
- const commit = async () => {
119
- if (closeTransaction) {
120
- throw new Error(this.MESSAGE_TRX_CLOSED);
121
- }
122
- await query("COMMIT").catch((err) => reject(err));
123
- await end();
124
- return;
125
- };
126
- const rollback = async () => {
127
- if (closeTransaction) {
128
- throw new Error(this.MESSAGE_TRX_CLOSED);
129
- }
130
- await query("ROLLBACK").catch((err) => reject(err));
131
- // when rollback will end of transction
132
- await end();
133
- return;
134
- };
135
- const end = async () => {
136
- await new Promise((resolve) => setTimeout(() => {
137
- if (!closeTransaction) {
138
- closeTransaction = true;
139
- // After commit the transaction, you can't perform any actions with this transaction.
140
- connection.destroy();
141
- // After destroying the connection, it will be removed from the connection this.pool.
142
- this.pool.end();
143
- }
144
- return resolve();
145
- }, 500));
146
- return;
147
- };
148
- return resolve({
149
- on: (event, data) => this.on(event, data),
150
- query,
151
- queryBuilder: MysqlQueryBuilder_1.MysqlQueryBuilder,
152
- startTransaction,
153
- commit,
154
- rollback,
155
- end,
156
- });
157
- });
158
- });
95
+ async _connection() {
96
+ const conn = await this.poolTrx.promise().getConnection();
97
+ let started = false;
98
+ let closed = false;
99
+ let commited = false;
100
+ let rollbacked = false;
101
+ const query = async (sql) => {
102
+ const start = Date.now();
103
+ const [results] = await conn.query(sql);
104
+ this._detectEventQuery({ start, sql });
105
+ this.meta(results, sql);
106
+ return this.returning(results);
107
+ };
108
+ const startTransaction = async () => {
109
+ await conn.beginTransaction();
110
+ started = true;
111
+ closed = false;
112
+ return;
113
+ };
114
+ const commit = async () => {
115
+ if (closed) {
116
+ throw new Error(this.MESSAGE_TRX_CLOSED);
117
+ }
118
+ if (!started) {
119
+ throw new Error(this.MESSAGE_TRX_NOT_STARTED);
120
+ }
121
+ commited = true;
122
+ await conn.commit();
123
+ await end();
124
+ return;
125
+ };
126
+ const rollback = async () => {
127
+ if (closed) {
128
+ throw new Error(this.MESSAGE_TRX_CLOSED);
129
+ }
130
+ if (!started) {
131
+ throw new Error(this.MESSAGE_TRX_NOT_STARTED);
132
+ }
133
+ rollbacked = true;
134
+ await conn.rollback();
135
+ await end();
136
+ return;
137
+ };
138
+ const end = async () => {
139
+ if (closed)
140
+ return;
141
+ if (!started) {
142
+ throw new Error(this.MESSAGE_TRX_NOT_STARTED);
143
+ }
144
+ if (!commited && !rollbacked) {
145
+ await rollback();
146
+ return;
147
+ }
148
+ await conn.release();
149
+ started = false;
150
+ closed = true;
151
+ return;
152
+ };
153
+ const release = async () => {
154
+ if (closed)
155
+ return;
156
+ await conn.release();
157
+ return;
158
+ };
159
+ return {
160
+ on: (event, data) => this.on(event, data),
161
+ queryBuilder: MysqlQueryBuilder_1.MysqlQueryBuilder,
162
+ query,
163
+ startTransaction,
164
+ commit,
165
+ rollback,
166
+ end,
167
+ release
168
+ };
159
169
  }
160
170
  async _end() {
161
171
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../../src/lib/core/Driver/mysql/MysqlDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../../src/lib/core/Driver/mysql/MysqlDriver.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,11 @@ export declare class MysqlQueryBuilder extends QueryBuilder {
17
17
  table: string;
18
18
  }): string;
19
19
  getTables(database: string): string;
20
- getTable({ database, table }: {
20
+ hasTable({ database, table }: {
21
21
  database: string;
22
22
  table: string;
23
23
  }): string;
24
+ createDatabase(database: string): string;
24
25
  createTable({ database, table, schema, }: {
25
26
  database: string;
26
27
  table: string;
@@ -52,7 +53,7 @@ export declare class MysqlQueryBuilder extends QueryBuilder {
52
53
  table: string;
53
54
  constraint: string;
54
55
  }): string;
55
- createFK({ table, tableRef, key, constraint, foreign, }: {
56
+ addFK({ table, tableRef, key, constraint, foreign, }: {
56
57
  table: string;
57
58
  tableRef: string;
58
59
  key: string;
@@ -71,15 +72,44 @@ export declare class MysqlQueryBuilder extends QueryBuilder {
71
72
  database: string;
72
73
  table: string;
73
74
  }): string;
74
- hasIndex({ database, table, index, }: {
75
+ hasIndex({ database, table, name, }: {
75
76
  database: string;
76
77
  table: string;
77
- index: string;
78
+ name: string;
78
79
  }): string;
79
- createIndex({ table, index, key, }: {
80
+ addIndex({ table, name, columns, }: {
81
+ table: string;
82
+ name: string;
83
+ columns: string[];
84
+ }): string;
85
+ dropIndex({ table, name, }: {
86
+ table: string;
87
+ name: string;
88
+ }): string;
89
+ hasUnique({ database, table, name, }: {
90
+ database: string;
91
+ table: string;
92
+ name: string;
93
+ }): string;
94
+ addUnique({ table, name, columns }: {
95
+ table: string;
96
+ name: string;
97
+ columns: string[];
98
+ }): string;
99
+ dropUnique({ table, name, }: {
100
+ table: string;
101
+ name: string;
102
+ }): string;
103
+ hasPrimaryKey({ database, table, }: {
104
+ database: string;
105
+ table: string;
106
+ }): string;
107
+ addPrimaryKey({ table, columns, }: {
108
+ table: string;
109
+ columns: string[];
110
+ }): string;
111
+ dropPrimaryKey({ table }: {
80
112
  table: string;
81
- index: string;
82
- key: string;
83
113
  }): string;
84
114
  getDatabase(database: string): string;
85
115
  dropDatabase(database: string): string;
@@ -88,8 +118,10 @@ export declare class MysqlQueryBuilder extends QueryBuilder {
88
118
  truncate(table: string): string;
89
119
  sleep(second: number): string;
90
120
  format(sql: (string | null)[] | string): string;
121
+ getActiveConnections(): string;
122
+ getMaxConnections(): string;
91
123
  protected bindJoin(values: string[]): string | null;
92
- protected bindWhere(values: string[]): string | null;
124
+ protected bindWhere(values: any[]): string | null;
93
125
  protected bindOrderBy(values: string[]): string | null;
94
126
  protected bindGroupBy(values: string[]): string | null;
95
127
  protected bindSelect(values: string[], { distinct }?: {
@@ -103,5 +135,9 @@ export declare class MysqlQueryBuilder extends QueryBuilder {
103
135
  protected bindLimit(limit: string | number | null): string;
104
136
  protected bindOffset(offset: string | number | null): string;
105
137
  protected bindHaving(having: string | null): string;
106
- protected bindRowLevelLock(mode: "FOR_UPDATE" | "FOR_SHARE" | null): any;
138
+ protected bindRowLevelLock(rowLevelLock: {
139
+ mode: "FOR_UPDATE" | "FOR_SHARE" | null;
140
+ skipLocked: boolean | null;
141
+ nowait: boolean | null;
142
+ }): any;
107
143
  }
@@ -11,8 +11,8 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
11
11
  this.bindSelect(this.$state.get("SELECT")),
12
12
  this.bindFrom({
13
13
  from: !this.$state.get("FROM").length
14
- ? [this.$state.get("TABLE_NAME")].map(String)
15
- : [this.$state.get("TABLE_NAME"), ...this.$state.get("FROM")].map(String),
14
+ ? [this.$state.get("TABLE_NAME")].filter(Boolean).map(String)
15
+ : [this.$state.get("TABLE_NAME"), ...this.$state.get("FROM")].filter(Boolean).map(String),
16
16
  alias: this.$state.get("ALIAS"),
17
17
  rawAlias: this.$state.get("RAW_ALIAS"),
18
18
  }),
@@ -173,21 +173,24 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
173
173
  ];
174
174
  return this.format(sql);
175
175
  }
176
- getTable({ database, table }) {
176
+ hasTable({ database, table }) {
177
177
  const sql = [
178
- `
179
- SELECT
180
- TABLE_NAME AS "Table"
178
+ `SELECT EXISTS(
179
+ SELECT 1
181
180
  FROM
182
181
  INFORMATION_SCHEMA.TABLES
183
182
  WHERE
184
183
  TABLE_SCHEMA = '${database.replace(/\`/g, "")}'
185
184
  AND TABLE_NAME = '${table.replace(/\`/g, "")}'
186
185
  AND TABLE_TYPE = 'BASE TABLE'
187
- `,
186
+ ) AS "IS_EXISTS"`,
188
187
  ];
189
188
  return this.format(sql);
190
189
  }
190
+ createDatabase(database) {
191
+ const sql = `CREATE DATABASE IF NOT EXISTS \`${database}\``;
192
+ return this.format(sql);
193
+ }
191
194
  createTable({ database, table, schema, }) {
192
195
  let columns = [];
193
196
  if (Array.isArray(schema)) {
@@ -303,7 +306,7 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
303
306
  ];
304
307
  return this.format(sql);
305
308
  }
306
- createFK({ table, tableRef, key, constraint, foreign, }) {
309
+ addFK({ table, tableRef, key, constraint, foreign, }) {
307
310
  const sql = [
308
311
  `${this.$constants("ALTER_TABLE")}`,
309
312
  `\`${table}\``,
@@ -350,7 +353,7 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
350
353
  ];
351
354
  return this.format(sql);
352
355
  }
353
- hasIndex({ database, table, index, }) {
356
+ hasIndex({ database, table, name, }) {
354
357
  const sql = [
355
358
  `
356
359
  SELECT EXISTS(
@@ -368,18 +371,105 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
368
371
  k.REFERENCED_TABLE_NAME IS NULL
369
372
  AND s.TABLE_SCHEMA = '${database.replace(/`/g, "")}'
370
373
  AND s.TABLE_NAME = '${table.replace(/`/g, "")}'
371
- AND s.INDEX_NAME = '${index}'
374
+ AND s.INDEX_NAME = '${name}'
372
375
  ) AS "IS_EXISTS"
373
376
  `,
374
377
  ];
375
378
  return this.format(sql);
376
379
  }
377
- createIndex({ table, index, key, }) {
380
+ addIndex({ table, name, columns, }) {
381
+ const cols = columns
382
+ .map(col => `\`${col}\``)
383
+ .join(", ");
384
+ const sql = [
385
+ this.$constants("ALTER_TABLE"),
386
+ `\`${table}\``,
387
+ this.$constants("ADD_INDEX"),
388
+ `\`${name}\``,
389
+ `(${cols})`
390
+ ];
391
+ return this.format(sql);
392
+ }
393
+ dropIndex({ table, name, }) {
394
+ const sql = [
395
+ this.$constants("ALTER_TABLE"),
396
+ `\`${table}\``,
397
+ this.$constants("DROP"),
398
+ this.$constants("INDEX"),
399
+ `\`${name}\``
400
+ ];
401
+ return this.format(sql);
402
+ }
403
+ hasUnique({ database, table, name, }) {
378
404
  const sql = [
379
- `${this.$constants("CREATE_INDEX")}`,
380
- `\`${index}\``,
381
- `${this.$constants("ON")}`,
382
- `${table}(\`${key}\`)`,
405
+ `
406
+ SELECT EXISTS(
407
+ SELECT
408
+ 1
409
+ FROM
410
+ INFORMATION_SCHEMA.TABLE_CONSTRAINTS
411
+ WHERE
412
+ TABLE_SCHEMA = '${database.replace(/`/g, "")}'
413
+ AND TABLE_NAME = '${table.replace(/`/g, "")}'
414
+ AND CONSTRAINT_TYPE = '${name}'
415
+ ) AS "IS_EXISTS"
416
+ `,
417
+ ];
418
+ return this.format(sql);
419
+ }
420
+ addUnique({ table, name, columns }) {
421
+ const cols = columns
422
+ .map(col => `\`${col}\``)
423
+ .join(", ");
424
+ const sql = [
425
+ this.$constants("ALTER_TABLE"),
426
+ `\`${table}\``,
427
+ this.$constants("ADD_CONSTRAINT"),
428
+ `\`${name}\``,
429
+ this.$constants("UNIQUE"),
430
+ `(${cols})`
431
+ ];
432
+ return this.format(sql);
433
+ }
434
+ dropUnique({ table, name, }) {
435
+ const sql = [
436
+ this.$constants("ALTER_TABLE"),
437
+ `\`${table}\``,
438
+ this.$constants("DROP"),
439
+ this.$constants("INDEX"),
440
+ `\`${name}\``
441
+ ];
442
+ return this.format(sql);
443
+ }
444
+ hasPrimaryKey({ database, table, }) {
445
+ const sql = `
446
+ SELECT EXISTS (
447
+ SELECT 1
448
+ FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
449
+ WHERE
450
+ TABLE_SCHEMA = '${database.replace(/['"`]/g, "")}'
451
+ AND TABLE_NAME = '${table.replace(/['"`]/g, "")}'
452
+ AND CONSTRAINT_TYPE = '${this.$constants('PRIMARY_KEY')}'
453
+ ) AS IS_EXISTS
454
+ `;
455
+ return this.format(sql);
456
+ }
457
+ addPrimaryKey({ table, columns, }) {
458
+ const cols = columns
459
+ .map(col => `\`${col}\``)
460
+ .join(", ");
461
+ const sql = `
462
+ ${this.$constants('ALTER_TABLE')} \`${table}\`
463
+ ${this.$constants('ADD')} ${this.$constants('PRIMARY_KEY')} (${cols})
464
+ `;
465
+ return this.format(sql);
466
+ }
467
+ dropPrimaryKey({ table }) {
468
+ const sql = [
469
+ this.$constants("ALTER_TABLE"),
470
+ `\`${table}\``,
471
+ this.$constants("DROP"),
472
+ this.$constants("PRIMARY_KEY")
383
473
  ];
384
474
  return this.format(sql);
385
475
  }
@@ -430,6 +520,21 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
430
520
  .join(" ")
431
521
  .replace(/\s+/g, " ");
432
522
  }
523
+ getActiveConnections() {
524
+ const sql = `
525
+ SELECT
526
+ VARIABLE_VALUE AS Connections
527
+ FROM
528
+ PERFORMANCE_SCHEMA.GLOBAL_STATUS
529
+ WHERE
530
+ VARIABLE_NAME = 'Threads_connected'
531
+ `;
532
+ return this.format(sql);
533
+ }
534
+ getMaxConnections() {
535
+ const sql = `SELECT @@max_connections AS MaxConnections;`;
536
+ return this.format(sql);
537
+ }
433
538
  bindJoin(values) {
434
539
  if (!Array.isArray(values) || !values.length)
435
540
  return null;
@@ -438,9 +543,42 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
438
543
  bindWhere(values) {
439
544
  if (!Array.isArray(values) || !values.length)
440
545
  return null;
441
- return `${this.$constants("WHERE")} ${values
442
- .map((v) => v.replace(/^\s/, "").replace(/\s+/g, " "))
443
- .join(" ")}`;
546
+ const serializeWhere = (wheres) => {
547
+ const resolveValue = ({ operator, value }) => {
548
+ let valueStr = '';
549
+ if (operator?.toUpperCase() === this.$constants('IN') && Array.isArray(value)) {
550
+ valueStr = `(${value.map((v) => v).join(',')})`;
551
+ }
552
+ else if (operator?.toUpperCase() === this.$constants('IS_NULL') ||
553
+ operator?.toUpperCase() === this.$constants('IS_NOT_NULL')) {
554
+ valueStr = '';
555
+ }
556
+ else {
557
+ valueStr = `${value}`;
558
+ }
559
+ return valueStr;
560
+ };
561
+ const conditionToSQL = (cond, isFirst = false) => {
562
+ const { column = '', operator = '', condition, value, nested } = cond;
563
+ if (nested && nested.length) {
564
+ const nestedSQL = nested
565
+ .map((c) => conditionToSQL(c))
566
+ .join(' ');
567
+ const valueStr = resolveValue({ operator, value });
568
+ if (!isFirst) {
569
+ return `${condition ?? this.$constants('AND')} (${column} ${operator} ${valueStr} ${nestedSQL})`;
570
+ }
571
+ return `(${column} ${operator} ${valueStr} ${nestedSQL})`;
572
+ }
573
+ const valueStr = resolveValue({ operator, value });
574
+ if (!isFirst) {
575
+ return `${condition ?? this.$constants('AND')} ${column} ${operator} ${valueStr}`.trim();
576
+ }
577
+ return `${column} ${operator} ${valueStr}`.trim();
578
+ };
579
+ return wheres.map((cond, i) => conditionToSQL(cond, !i)).join(' ');
580
+ };
581
+ return `${this.$constants("WHERE")} ${serializeWhere(values)}`;
444
582
  }
445
583
  bindOrderBy(values) {
446
584
  if (!Array.isArray(values) || !values.length)
@@ -501,12 +639,18 @@ class MysqlQueryBuilder extends __1.QueryBuilder {
501
639
  return "";
502
640
  return `${this.$constants("HAVING")} ${having}`;
503
641
  }
504
- bindRowLevelLock(mode) {
505
- if (mode == null)
642
+ bindRowLevelLock(rowLevelLock) {
643
+ if (rowLevelLock.mode == null)
506
644
  return '';
507
- const modeLock = mode === "FOR_UPDATE"
645
+ let modeLock = rowLevelLock.mode === "FOR_UPDATE"
508
646
  ? this.$constants("ROW_LEVEL_LOCK").update
509
647
  : this.$constants("ROW_LEVEL_LOCK").share;
648
+ if (rowLevelLock.skipLocked) {
649
+ modeLock += ` ${this.$constants("ROW_LEVEL_LOCK").skipLocked}`;
650
+ }
651
+ if (rowLevelLock.nowait) {
652
+ modeLock += ` ${this.$constants("ROW_LEVEL_LOCK").nowait}`;
653
+ }
510
654
  return modeLock;
511
655
  }
512
656
  }