zerohelper-mysql-adapter 11.0.0
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.
- package/README.md +55 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +201 -0
- package/dist/index.js.map +1 -0
- package/package.json +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# zerohelper-mysql-adapter
|
|
2
|
+
|
|
3
|
+
MySQL database adapter for ZeroHelper.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install zerohelper-mysql-adapter
|
|
9
|
+
npm install mysql2
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { createDatabase } from '@onurege3467/zerohelper';
|
|
16
|
+
|
|
17
|
+
const db = createDatabase({
|
|
18
|
+
adapter: 'mysql',
|
|
19
|
+
config: {
|
|
20
|
+
host: 'localhost',
|
|
21
|
+
port: 3306,
|
|
22
|
+
username: 'root',
|
|
23
|
+
password: 'password',
|
|
24
|
+
database: 'mydb',
|
|
25
|
+
poolSize: 10
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
await db.insert('users', { name: 'John', age: 30 });
|
|
30
|
+
const users = await db.select('users', { name: 'John' });
|
|
31
|
+
await db.close();
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Features
|
|
35
|
+
|
|
36
|
+
- Connection pooling with mysql2
|
|
37
|
+
- Prepared statements for security
|
|
38
|
+
- Automatic table creation
|
|
39
|
+
- Transaction support
|
|
40
|
+
- Batch operations
|
|
41
|
+
|
|
42
|
+
## Configuration
|
|
43
|
+
|
|
44
|
+
| Option | Type | Required | Description |
|
|
45
|
+
|--------|------|----------|-------------|
|
|
46
|
+
| `host` | string | Yes | MySQL host |
|
|
47
|
+
| `port` | number | Yes | MySQL port |
|
|
48
|
+
| `username` | string | Yes | MySQL username |
|
|
49
|
+
| `password` | string | Yes | MySQL password |
|
|
50
|
+
| `database` | string | Yes | Database name |
|
|
51
|
+
| `poolSize` | number | No | Connection pool size (default: 10) |
|
|
52
|
+
|
|
53
|
+
## License
|
|
54
|
+
|
|
55
|
+
ISC
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IDatabase, MySQLConfig } from '@onurege3467/zerohelper-core';
|
|
2
|
+
export declare class MySQLDatabase extends IDatabase {
|
|
3
|
+
private config;
|
|
4
|
+
private pool;
|
|
5
|
+
private _connected;
|
|
6
|
+
private _queue;
|
|
7
|
+
private _connectionPromise;
|
|
8
|
+
constructor(config: MySQLConfig);
|
|
9
|
+
private _initConnection;
|
|
10
|
+
private _execute;
|
|
11
|
+
private _processQueue;
|
|
12
|
+
query(sql: string, params?: any[]): Promise<any>;
|
|
13
|
+
private _ensureColumns;
|
|
14
|
+
ensureTable(table: string, data?: any): Promise<void>;
|
|
15
|
+
insert(table: string, data: Record<string, any>): Promise<number>;
|
|
16
|
+
update(table: string, data: Record<string, any>, where: Record<string, any>): Promise<number>;
|
|
17
|
+
delete(table: string, where: Record<string, any>): Promise<number>;
|
|
18
|
+
select<T = any>(table: string, where?: Record<string, any> | null): Promise<T[]>;
|
|
19
|
+
selectOne<T = any>(table: string, where?: Record<string, any> | null): Promise<T | null>;
|
|
20
|
+
set(table: string, data: Record<string, any>, where: Record<string, any>): Promise<any>;
|
|
21
|
+
bulkInsert(table: string, dataArray: Record<string, any>[]): Promise<number>;
|
|
22
|
+
increment(table: string, incs: Record<string, number>, where: Record<string, any>): Promise<number>;
|
|
23
|
+
decrement(table: string, decs: Record<string, number>, where: Record<string, any>): Promise<number>;
|
|
24
|
+
close(): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export declare function createDatabase(config: MySQLConfig): MySQLDatabase;
|
|
27
|
+
export default MySQLDatabase;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAGtE,qBAAa,aAAc,SAAQ,SAAS;IAM9B,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAyG;IACvH,OAAO,CAAC,kBAAkB,CAAgB;gBAEtB,MAAM,EAAE,WAAW;YAKzB,eAAe;YAkCf,QAAQ;YAgBR,aAAa;IAOrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;YAM5C,cAAc;IAUtB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAajE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IActF,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9F,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAKvF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAa5E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMnG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAEjE;AACD,eAAe,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MySQLDatabase = void 0;
|
|
7
|
+
exports.createDatabase = createDatabase;
|
|
8
|
+
const zerohelper_core_1 = require("@onurege3467/zerohelper-core");
|
|
9
|
+
const promise_1 = __importDefault(require("mysql2/promise"));
|
|
10
|
+
class MySQLDatabase extends zerohelper_core_1.IDatabase {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
super();
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.pool = null;
|
|
15
|
+
this._connected = false;
|
|
16
|
+
this._queue = [];
|
|
17
|
+
this._connectionPromise = this._initConnection();
|
|
18
|
+
}
|
|
19
|
+
async _initConnection() {
|
|
20
|
+
return new Promise(async (resolve, reject) => {
|
|
21
|
+
try {
|
|
22
|
+
const connection = await promise_1.default.createConnection({
|
|
23
|
+
host: this.config.host || 'localhost',
|
|
24
|
+
port: this.config.port || 3306,
|
|
25
|
+
user: this.config.username,
|
|
26
|
+
password: this.config.password,
|
|
27
|
+
});
|
|
28
|
+
await connection.query(`CREATE DATABASE IF NOT EXISTS ${this.config.database}`);
|
|
29
|
+
await connection.end();
|
|
30
|
+
this.pool = promise_1.default.createPool({
|
|
31
|
+
host: this.config.host || 'localhost',
|
|
32
|
+
port: this.config.port || 3306,
|
|
33
|
+
user: this.config.username,
|
|
34
|
+
password: this.config.password,
|
|
35
|
+
database: this.config.database,
|
|
36
|
+
waitForConnections: true,
|
|
37
|
+
connectionLimit: this.config.poolSize || 15,
|
|
38
|
+
queueLimit: 0,
|
|
39
|
+
});
|
|
40
|
+
this._connected = true;
|
|
41
|
+
resolve(this.pool);
|
|
42
|
+
this._processQueue();
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
this._queue.forEach(q => q.reject(error));
|
|
46
|
+
this._queue = [];
|
|
47
|
+
reject(error);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async _execute(op, table, fn) {
|
|
52
|
+
const start = Date.now();
|
|
53
|
+
if (this._connected) {
|
|
54
|
+
const res = await fn();
|
|
55
|
+
this.recordMetric(op, table, Date.now() - start);
|
|
56
|
+
return res;
|
|
57
|
+
}
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
this._queue.push({ operation: async () => {
|
|
60
|
+
const res = await fn();
|
|
61
|
+
this.recordMetric(op, table, Date.now() - start);
|
|
62
|
+
return res;
|
|
63
|
+
}, resolve, reject });
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async _processQueue() {
|
|
67
|
+
while (this._queue.length > 0) {
|
|
68
|
+
const item = this._queue.shift();
|
|
69
|
+
if (item) {
|
|
70
|
+
try {
|
|
71
|
+
item.resolve(await item.operation());
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
item.reject(error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async query(sql, params = []) {
|
|
80
|
+
const pool = await this._connectionPromise;
|
|
81
|
+
const [rows] = await pool.execute(sql, params);
|
|
82
|
+
return rows;
|
|
83
|
+
}
|
|
84
|
+
async _ensureColumns(table, data) {
|
|
85
|
+
const existingColumns = await this.query(`DESCRIBE ${table}`).catch(() => []);
|
|
86
|
+
const columnNames = existingColumns.map(col => col.Field);
|
|
87
|
+
for (const key of Object.keys(data)) {
|
|
88
|
+
if (key !== '_id' && !columnNames.includes(key)) {
|
|
89
|
+
await this.query(`ALTER TABLE ${table} ADD COLUMN ${key} TEXT`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async ensureTable(table, data = {}) {
|
|
94
|
+
const tables = await this.query(`SHOW TABLES LIKE '${table}'`);
|
|
95
|
+
if (tables.length === 0) {
|
|
96
|
+
const defs = Object.keys(data).map(k => `${k} TEXT`).join(', ');
|
|
97
|
+
await this.query(`CREATE TABLE ${table} (_id INT PRIMARY KEY AUTO_INCREMENT${defs ? ', ' + defs : ''})`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
await this._ensureColumns(table, data);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async insert(table, data) {
|
|
104
|
+
await this.runHooks('beforeInsert', table, data);
|
|
105
|
+
return this._execute('insert', table, async () => {
|
|
106
|
+
await this.ensureTable(table, data);
|
|
107
|
+
const keys = Object.keys(data);
|
|
108
|
+
const sql = `INSERT INTO ${table} (${keys.join(',')}) VALUES (${keys.map(() => '?').join(',')})`;
|
|
109
|
+
const result = await this.query(sql, Object.values(data));
|
|
110
|
+
const finalData = { _id: result.insertId, ...data };
|
|
111
|
+
await this.runHooks('afterInsert', table, finalData);
|
|
112
|
+
return result.insertId;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
async update(table, data, where) {
|
|
116
|
+
await this.runHooks('beforeUpdate', table, { data, where });
|
|
117
|
+
return this._execute('update', table, async () => {
|
|
118
|
+
await this.ensureTable(table, { ...data, ...where });
|
|
119
|
+
const set = Object.keys(data).map(k => `${k} = ?`).join(', ');
|
|
120
|
+
const wKeys = Object.keys(where);
|
|
121
|
+
const sql = `UPDATE ${table} SET ${set} WHERE ${wKeys.map(k => `${k} = ?`).join(' AND ')}`;
|
|
122
|
+
const result = await this.query(sql, [...Object.values(data), ...Object.values(where)]);
|
|
123
|
+
return result.affectedRows;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
async delete(table, where) {
|
|
127
|
+
await this.runHooks('beforeDelete', table, where);
|
|
128
|
+
return this._execute('delete', table, async () => {
|
|
129
|
+
await this.ensureTable(table, where);
|
|
130
|
+
const wKeys = Object.keys(where);
|
|
131
|
+
const sql = `DELETE FROM ${table} WHERE ${wKeys.map(k => `${k} = ?`).join(' AND ')}`;
|
|
132
|
+
const result = await this.query(sql, Object.values(where));
|
|
133
|
+
return result.affectedRows;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async select(table, where = null) {
|
|
137
|
+
return this._execute('select', table, async () => {
|
|
138
|
+
await this.ensureTable(table, where || {});
|
|
139
|
+
const wKeys = where ? Object.keys(where) : [];
|
|
140
|
+
const sql = `SELECT * FROM ${table}${wKeys.length ? ' WHERE ' + wKeys.map(k => `${k} = ?`).join(' AND ') : ''}`;
|
|
141
|
+
const rows = await this.query(sql, wKeys.map(k => where[k]));
|
|
142
|
+
return rows.map((row) => {
|
|
143
|
+
const nr = {};
|
|
144
|
+
for (const k in row) {
|
|
145
|
+
try {
|
|
146
|
+
nr[k] = JSON.parse(row[k]);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
nr[k] = row[k];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return nr;
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async selectOne(table, where = null) {
|
|
157
|
+
const res = await this.select(table, where);
|
|
158
|
+
return res[0] || null;
|
|
159
|
+
}
|
|
160
|
+
async set(table, data, where) {
|
|
161
|
+
const existing = await this.selectOne(table, where);
|
|
162
|
+
return existing ? this.update(table, data, where) : this.insert(table, { ...where, ...data });
|
|
163
|
+
}
|
|
164
|
+
async bulkInsert(table, dataArray) {
|
|
165
|
+
if (!dataArray.length)
|
|
166
|
+
return 0;
|
|
167
|
+
return this._execute('bulkInsert', table, async () => {
|
|
168
|
+
await this.ensureTable(table, dataArray[0]);
|
|
169
|
+
const keys = Object.keys(dataArray[0]);
|
|
170
|
+
const values = dataArray.map(() => `(${keys.map(() => '?').join(',')})`).join(',');
|
|
171
|
+
const params = dataArray.flatMap(obj => keys.map(k => obj[k]));
|
|
172
|
+
const sql = `INSERT INTO ${table} (${keys.join(',')}) VALUES ${values}`;
|
|
173
|
+
const result = await this.query(sql, params);
|
|
174
|
+
return result.affectedRows;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
async increment(table, incs, where) {
|
|
178
|
+
return this._execute('increment', table, async () => {
|
|
179
|
+
await this.ensureTable(table, where);
|
|
180
|
+
const set = Object.keys(incs).map(f => `${f} = ${f} + ?`).join(', ');
|
|
181
|
+
const wKeys = Object.keys(where);
|
|
182
|
+
const sql = `UPDATE ${table} SET ${set} WHERE ${wKeys.map(k => `${k} = ?`).join(' AND ')}`;
|
|
183
|
+
const result = await this.query(sql, [...Object.values(incs), ...Object.values(where)]);
|
|
184
|
+
return result.affectedRows;
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
async decrement(table, decs, where) {
|
|
188
|
+
const incs = {};
|
|
189
|
+
for (const k in decs)
|
|
190
|
+
incs[k] = -decs[k];
|
|
191
|
+
return this.increment(table, incs, where);
|
|
192
|
+
}
|
|
193
|
+
async close() { if (this.pool)
|
|
194
|
+
await this.pool.end(); }
|
|
195
|
+
}
|
|
196
|
+
exports.MySQLDatabase = MySQLDatabase;
|
|
197
|
+
function createDatabase(config) {
|
|
198
|
+
return new MySQLDatabase(config);
|
|
199
|
+
}
|
|
200
|
+
exports.default = MySQLDatabase;
|
|
201
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "zerohelper-mysql-adapter",
|
|
3
|
+
"version": "11.0.0",
|
|
4
|
+
"description": "MySQL adapter for ZeroHelper database framework",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"clean": "rm -rf dist",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"lint": "tsc --noEmit"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"zerohelper",
|
|
15
|
+
"database",
|
|
16
|
+
"mysql",
|
|
17
|
+
"adapter"
|
|
18
|
+
],
|
|
19
|
+
"author": "Onure9e",
|
|
20
|
+
"license": "ISC",
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"mysql2": "^3.14.1"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"@onurege3467/zerohelper-core": "^11.0.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^22.10.2",
|
|
29
|
+
"typescript": "^5.7.2"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"README.md"
|
|
34
|
+
],
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"access": "public"
|
|
37
|
+
}
|
|
38
|
+
}
|