@stackpress/inquire-mysql2 0.4.5 → 0.4.10
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 → cjs}/Connection.d.ts +2 -2
- package/{dist → cjs}/Connection.js +1 -1
- package/{dist → cjs}/helpers.d.ts +1 -1
- package/{dist → cjs}/helpers.js +1 -1
- package/cjs/package.json +1 -0
- package/esm/Connection.d.ts +19 -0
- package/esm/Connection.js +67 -0
- package/esm/helpers.d.ts +3 -0
- package/esm/helpers.js +6 -0
- package/esm/index.d.ts +5 -0
- package/esm/index.js +4 -0
- package/esm/package.json +1 -0
- package/esm/types.d.ts +4 -0
- package/esm/types.js +1 -0
- package/package.json +42 -8
- package/index.d.ts +0 -3
- package/index.js +0 -1
- /package/{dist → cjs}/index.d.ts +0 -0
- /package/{dist → cjs}/index.js +0 -0
- /package/{dist → cjs}/types.d.ts +0 -0
- /package/{dist → cjs}/types.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ResultSetHeader } from 'mysql2/promise';
|
|
2
|
-
import type { Dialect, Connection, QueryObject, Transaction } from '@stackpress/inquire/
|
|
2
|
+
import type { Dialect, Connection, QueryObject, Transaction } from '@stackpress/inquire/types';
|
|
3
3
|
import type { Connector, Resource, Results } from './types';
|
|
4
4
|
export default class Mysql2Connection implements Connection<Resource> {
|
|
5
5
|
readonly dialect: Dialect;
|
|
@@ -9,7 +9,7 @@ export default class Mysql2Connection implements Connection<Resource> {
|
|
|
9
9
|
constructor(resource: Connector);
|
|
10
10
|
format(request: QueryObject): {
|
|
11
11
|
query: string;
|
|
12
|
-
values: import("@stackpress/inquire/
|
|
12
|
+
values: import("@stackpress/inquire/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>>;
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const Mysql_1 = __importDefault(require("@stackpress/inquire/
|
|
15
|
+
const Mysql_1 = __importDefault(require("@stackpress/inquire/Mysql"));
|
|
16
16
|
class Mysql2Connection {
|
|
17
17
|
get lastId() {
|
|
18
18
|
return this._lastId;
|
package/{dist → cjs}/helpers.js
RENAMED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.connect = connect;
|
|
7
|
-
const Engine_1 = __importDefault(require("@stackpress/inquire/
|
|
7
|
+
const Engine_1 = __importDefault(require("@stackpress/inquire/Engine"));
|
|
8
8
|
const Connection_1 = __importDefault(require("./Connection"));
|
|
9
9
|
function connect(resource) {
|
|
10
10
|
const connection = new Connection_1.default(resource);
|
package/cjs/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ResultSetHeader } from 'mysql2/promise';
|
|
2
|
+
import type { Dialect, Connection, QueryObject, Transaction } from '@stackpress/inquire/types';
|
|
3
|
+
import type { Connector, Resource, Results } from './types';
|
|
4
|
+
export default class Mysql2Connection implements Connection<Resource> {
|
|
5
|
+
readonly dialect: Dialect;
|
|
6
|
+
protected _lastId?: number | string;
|
|
7
|
+
protected _resource: Connector;
|
|
8
|
+
get lastId(): string | number | undefined;
|
|
9
|
+
constructor(resource: Connector);
|
|
10
|
+
format(request: QueryObject): {
|
|
11
|
+
query: string;
|
|
12
|
+
values: import("@stackpress/inquire/types").Value[];
|
|
13
|
+
};
|
|
14
|
+
query<R = unknown>(request: QueryObject): Promise<R[]>;
|
|
15
|
+
raw<R = unknown>(request: QueryObject): Promise<[ResultSetHeader, undefined] | Results<R>>;
|
|
16
|
+
resource(): Promise<import("mysql2/promise").Connection>;
|
|
17
|
+
transaction<R = unknown>(callback: Transaction<R>): Promise<R>;
|
|
18
|
+
protected _query<R = unknown>(request: QueryObject): Promise<Results<R> | [ResultSetHeader, undefined]>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import Mysql from '@stackpress/inquire/Mysql';
|
|
2
|
+
export default class Mysql2Connection {
|
|
3
|
+
dialect = Mysql;
|
|
4
|
+
_lastId;
|
|
5
|
+
_resource;
|
|
6
|
+
get lastId() {
|
|
7
|
+
return this._lastId;
|
|
8
|
+
}
|
|
9
|
+
constructor(resource) {
|
|
10
|
+
this._resource = resource;
|
|
11
|
+
}
|
|
12
|
+
format(request) {
|
|
13
|
+
let { query, values = [] } = request;
|
|
14
|
+
for (let i = 0; i < values.length; i++) {
|
|
15
|
+
const value = values[i];
|
|
16
|
+
if (value instanceof Date) {
|
|
17
|
+
values[i] = value.toISOString();
|
|
18
|
+
}
|
|
19
|
+
else if (Array.isArray(value)) {
|
|
20
|
+
values[i] = JSON.stringify(value);
|
|
21
|
+
}
|
|
22
|
+
else if (value && typeof value === 'object') {
|
|
23
|
+
values[i] = JSON.stringify(value);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return { query, values };
|
|
27
|
+
}
|
|
28
|
+
async query(request) {
|
|
29
|
+
const results = await this.raw(request);
|
|
30
|
+
if (!Array.isArray(results[0]) && results[0].insertId) {
|
|
31
|
+
this._lastId = results[0].insertId;
|
|
32
|
+
}
|
|
33
|
+
return Array.isArray(results[0]) ? results[0] : [];
|
|
34
|
+
}
|
|
35
|
+
async raw(request) {
|
|
36
|
+
const formatted = this.format(request);
|
|
37
|
+
return await this._query(formatted);
|
|
38
|
+
}
|
|
39
|
+
async resource() {
|
|
40
|
+
if (typeof this._resource === 'function') {
|
|
41
|
+
this._resource = await this._resource();
|
|
42
|
+
}
|
|
43
|
+
return this._resource;
|
|
44
|
+
}
|
|
45
|
+
async transaction(callback) {
|
|
46
|
+
const resource = await this.resource();
|
|
47
|
+
try {
|
|
48
|
+
await resource.beginTransaction();
|
|
49
|
+
const results = await callback(this);
|
|
50
|
+
await resource.commit();
|
|
51
|
+
return results;
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
await resource.rollback();
|
|
55
|
+
throw e;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async _query(request) {
|
|
59
|
+
const { query, values = [] } = request;
|
|
60
|
+
const resource = await this.resource();
|
|
61
|
+
const results = await resource.execute(query, values);
|
|
62
|
+
if (Array.isArray(results[0])) {
|
|
63
|
+
return results;
|
|
64
|
+
}
|
|
65
|
+
return results;
|
|
66
|
+
}
|
|
67
|
+
}
|
package/esm/helpers.d.ts
ADDED
package/esm/helpers.js
ADDED
package/esm/index.d.ts
ADDED
package/esm/index.js
ADDED
package/esm/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
package/esm/types.d.ts
ADDED
package/esm/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"type": "module",
|
|
2
3
|
"name": "@stackpress/inquire-mysql2",
|
|
3
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.10",
|
|
4
5
|
"license": "Apache-2.0",
|
|
5
6
|
"description": "Generic typed mysql2",
|
|
6
7
|
"author": "Chris <chris@incept.asia>",
|
|
@@ -15,20 +16,53 @@
|
|
|
15
16
|
"mysql",
|
|
16
17
|
"stackpress"
|
|
17
18
|
],
|
|
18
|
-
"main": "index.js",
|
|
19
|
+
"main": "./cjs/index.js",
|
|
20
|
+
"module": "./esm/index.js",
|
|
21
|
+
"types": "./cjs/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"require": "./cjs/index.js",
|
|
25
|
+
"import": "./esm/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./helpers": {
|
|
28
|
+
"require": "./cjs/helpers.js",
|
|
29
|
+
"import": "./esm/helpers.js"
|
|
30
|
+
},
|
|
31
|
+
"./types": {
|
|
32
|
+
"require": "./cjs/types.js",
|
|
33
|
+
"import": "./esm/types.js"
|
|
34
|
+
},
|
|
35
|
+
"./Connection": {
|
|
36
|
+
"require": "./cjs/Connection.js",
|
|
37
|
+
"import": "./esm/Connection.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"typesVersions": {
|
|
41
|
+
"*": {
|
|
42
|
+
"index": [ "./cjs/index.d.ts"],
|
|
43
|
+
"helpers": [ "./cjs/helpers.d.ts" ],
|
|
44
|
+
"types": [ "./cjs/types.d.ts" ],
|
|
45
|
+
"Connection": [ "./cjs/Connection.d.ts" ]
|
|
46
|
+
}
|
|
47
|
+
},
|
|
19
48
|
"files": [
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"index.d.ts",
|
|
49
|
+
"cjs",
|
|
50
|
+
"esm",
|
|
23
51
|
"LICENSE",
|
|
24
52
|
"README.md"
|
|
25
53
|
],
|
|
26
54
|
"scripts": {
|
|
27
|
-
"build": "tsc",
|
|
28
|
-
"
|
|
55
|
+
"build": "yarn build:tsc && yarn build:pkg",
|
|
56
|
+
"build:pkg": "yarn build:pkg:cjs && yarn build:pkg:esm",
|
|
57
|
+
"build:pkg:cjs": "echo '{\"type\": \"commonjs\"}' > cjs/package.json",
|
|
58
|
+
"build:pkg:esm": "echo '{\"type\": \"module\"}' > esm/package.json",
|
|
59
|
+
"build:tsc": "yarn build:tsc:cjs && yarn build:tsc:esm",
|
|
60
|
+
"build:tsc:cjs": "tsc -p ./tsconfig.cjs.json",
|
|
61
|
+
"build:tsc:esm": "tsc -p ./tsconfig.esm.json",
|
|
62
|
+
"test": "DATABASE_URL=test ts-mocha -p ./tsconfig.cjs.json tests/*.test.ts"
|
|
29
63
|
},
|
|
30
64
|
"dependencies": {
|
|
31
|
-
"@stackpress/inquire": "0.4.
|
|
65
|
+
"@stackpress/inquire": "0.4.10"
|
|
32
66
|
},
|
|
33
67
|
"peerDependencies": {
|
|
34
68
|
"mysql2": "^3.11.5"
|
package/index.d.ts
DELETED
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./dist');
|
/package/{dist → cjs}/index.d.ts
RENAMED
|
File without changes
|
/package/{dist → cjs}/index.js
RENAMED
|
File without changes
|
/package/{dist → cjs}/types.d.ts
RENAMED
|
File without changes
|
/package/{dist → cjs}/types.js
RENAMED
|
File without changes
|