@stackpress/inquire-mysql2 0.3.27 → 0.3.28
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/dist/Connection.d.ts +6 -5
- package/dist/Connection.js +15 -5
- package/dist/helpers.d.ts +2 -2
- package/dist/types.d.ts +3 -1
- package/package.json +2 -2
package/dist/Connection.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import type { ResultSetHeader
|
|
1
|
+
import type { ResultSetHeader } from 'mysql2/promise';
|
|
2
2
|
import type { Dialect, Connection, QueryObject, Transaction } from '@stackpress/inquire/dist/types';
|
|
3
|
-
import type { Results } from './types';
|
|
4
|
-
export default class Mysql2Connection implements Connection {
|
|
3
|
+
import type { Connector, Resource, Results } from './types';
|
|
4
|
+
export default class Mysql2Connection implements Connection<Resource> {
|
|
5
5
|
readonly dialect: Dialect;
|
|
6
|
-
readonly resource: Database;
|
|
7
6
|
protected _lastId?: number | string;
|
|
7
|
+
protected _resource: Connector;
|
|
8
8
|
get lastId(): string | number | undefined;
|
|
9
|
-
constructor(resource:
|
|
9
|
+
constructor(resource: Connector);
|
|
10
10
|
format(request: QueryObject): {
|
|
11
11
|
query: string;
|
|
12
12
|
values: import("@stackpress/inquire/dist/types").Value[];
|
|
13
13
|
};
|
|
14
14
|
query<R = unknown>(request: QueryObject): Promise<R[]>;
|
|
15
15
|
raw<R = unknown>(request: QueryObject): Promise<[ResultSetHeader, undefined] | Results<R>>;
|
|
16
|
+
resource(): Promise<import("mysql2/promise").Connection>;
|
|
16
17
|
transaction<R = unknown>(callback: Transaction<R>): Promise<R>;
|
|
17
18
|
protected _query<R = unknown>(request: QueryObject): Promise<Results<R> | [ResultSetHeader, undefined]>;
|
|
18
19
|
}
|
package/dist/Connection.js
CHANGED
|
@@ -19,7 +19,7 @@ class Mysql2Connection {
|
|
|
19
19
|
}
|
|
20
20
|
constructor(resource) {
|
|
21
21
|
this.dialect = Mysql_1.default;
|
|
22
|
-
this.
|
|
22
|
+
this._resource = resource;
|
|
23
23
|
}
|
|
24
24
|
format(request) {
|
|
25
25
|
let { query, values = [] } = request;
|
|
@@ -52,16 +52,25 @@ class Mysql2Connection {
|
|
|
52
52
|
return yield this._query(formatted);
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
+
resource() {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
if (typeof this._resource === 'function') {
|
|
58
|
+
this._resource = yield this._resource();
|
|
59
|
+
}
|
|
60
|
+
return this._resource;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
55
63
|
transaction(callback) {
|
|
56
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const resource = yield this.resource();
|
|
57
66
|
try {
|
|
58
|
-
yield
|
|
67
|
+
yield resource.beginTransaction();
|
|
59
68
|
const results = yield callback(this);
|
|
60
|
-
yield
|
|
69
|
+
yield resource.commit();
|
|
61
70
|
return results;
|
|
62
71
|
}
|
|
63
72
|
catch (e) {
|
|
64
|
-
yield
|
|
73
|
+
yield resource.rollback();
|
|
65
74
|
throw e;
|
|
66
75
|
}
|
|
67
76
|
});
|
|
@@ -69,7 +78,8 @@ class Mysql2Connection {
|
|
|
69
78
|
_query(request) {
|
|
70
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
80
|
const { query, values = [] } = request;
|
|
72
|
-
const
|
|
81
|
+
const resource = yield this.resource();
|
|
82
|
+
const results = yield resource.execute(query, values);
|
|
73
83
|
if (Array.isArray(results[0])) {
|
|
74
84
|
return results;
|
|
75
85
|
}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Connection as Database } from 'mysql2/promise';
|
|
2
1
|
import Engine from '@stackpress/inquire/dist/Engine';
|
|
3
|
-
|
|
2
|
+
import type { Connector } from './types';
|
|
3
|
+
export declare function connect(resource: Connector): Engine<import("mysql2/promise").Connection>;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import type { FieldPacket } from 'mysql2/promise';
|
|
1
|
+
import type { Connection, FieldPacket } from 'mysql2/promise';
|
|
2
2
|
export type Results<R = unknown> = [R[], FieldPacket[]];
|
|
3
|
+
export type Resource = Connection;
|
|
4
|
+
export type Connector = Resource | (() => Promise<Resource>);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackpress/inquire-mysql2",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.28",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Generic typed mysql2",
|
|
6
6
|
"author": "Chris <chris@incept.asia>",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"test": "ts-mocha tests/*.test.ts"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@stackpress/inquire": "0.3.
|
|
31
|
+
"@stackpress/inquire": "0.3.28"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"mysql2": "^3.11.5"
|