typesql-cli 0.6.6 → 0.6.7
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 +13 -9
- package/describe-nested-query.js +2 -1
- package/describe-nested-query.js.map +1 -1
- package/package.json +1 -1
- package/queryExectutor.d.ts +2 -1
- package/queryExectutor.d.ts.map +1 -1
- package/queryExectutor.js +16 -11
- package/queryExectutor.js.map +1 -1
package/README.md
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
TypeSQL: An alternative to access MySQL databases without an ORM. Write your queries in raw SQL and TypeSQL will generate a type-safe API to execute the queries.
|
1
|
+
TypeSQL: An alternative to access MySQL databases without an ORM. Write your queries in raw SQL and TypeSQL will generate a type-safe API to execute the queries.
|
2
2
|
|
3
3
|
## Example
|
4
4
|
|
5
5
|
Having the following query in `select-products.sql` file.
|
6
|
+
|
6
7
|
```sql
|
7
|
-
SELECT
|
8
|
+
SELECT
|
8
9
|
id,
|
9
10
|
product_name,
|
10
11
|
list_price
|
@@ -13,7 +14,7 @@ WHERE discontinued = 0
|
|
13
14
|
AND list_price BETWEEN :minPrice AND :maxPrice
|
14
15
|
```
|
15
16
|
|
16
|
-
TypeSQL will generate the types and function in the file `select-products.ts`.
|
17
|
+
TypeSQL will generate the types and function in the file `select-products.ts`.
|
17
18
|
Then you can import the generate code and execute as following:
|
18
19
|
|
19
20
|
deno syntax:
|
@@ -24,7 +25,7 @@ deno syntax:
|
|
24
25
|
|
25
26
|
- **Do not restrict the use of SQL** You dont need to learn any new query language, you can use SQL with all its power and expressiveness.
|
26
27
|
|
27
|
-
- **Infer parameters and columns types.** `SELECT DATEDIFF(:date1, :date2) as days_stayed` will resolve the `date1` and `date2` parameters to the type `Date` and the function return type as `number`.
|
28
|
+
- **Infer parameters and columns types.** `SELECT DATEDIFF(:date1, :date2) as days_stayed` will resolve the `date1` and `date2` parameters to the type `Date` and the function return type as `number`.
|
28
29
|
|
29
30
|
- **Infer parameter and column nullability.** The nullable database column `email` will generate a nullable field for the query `SELECT email FROM mytable`, but will generate a non-nullable field for the query `SELECT email FROM mytable WHERE email is not null`;
|
30
31
|
|
@@ -34,15 +35,15 @@ deno syntax:
|
|
34
35
|
|
35
36
|
## Usage
|
36
37
|
|
37
|
-
1.
|
38
|
+
1. _npm install -g typesql-cli_
|
38
39
|
|
39
40
|
2. Add the `typesql.json` configuration file in project root folder. You can generate an template with cli command `typesql init`.
|
40
41
|
|
41
42
|
```json
|
42
43
|
{
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
"databaseUri": "mysql://root:password@localhost/mydb",
|
45
|
+
"sqlDir": "./sqls",
|
46
|
+
"target": "node"
|
46
47
|
}
|
47
48
|
```
|
48
49
|
|
@@ -76,6 +77,7 @@ const updateResult = await updateProduct(...
|
|
76
77
|
```
|
77
78
|
|
78
79
|
# Examples
|
80
|
+
|
79
81
|
[Query scaffolding](/docs/query_scaffolding.md)
|
80
82
|
|
81
83
|
[INSERT](/docs/insert.md)
|
@@ -88,8 +90,10 @@ const updateResult = await updateProduct(...
|
|
88
90
|
|
89
91
|
[LIKE](/docs/like.md)
|
90
92
|
|
93
|
+
[Nested Query Result](/docs/nested-query-result.md)
|
94
|
+
|
91
95
|
# Project status
|
92
96
|
|
93
|
-
**WARNING:** This is a WIP experimental project. It is under active development and its API might change.
|
97
|
+
**WARNING:** This is a WIP experimental project. It is under active development and its API might change.
|
94
98
|
|
95
99
|
Issues reports and feature requests are welcome.
|
package/describe-nested-query.js
CHANGED
@@ -68,7 +68,8 @@ function getRelations(tableRef, dbSchema, columns) {
|
|
68
68
|
});
|
69
69
|
});
|
70
70
|
const result = parentList.map(r => {
|
71
|
-
const relationFields = relations.filter(r2 => r2.parent.name == r.name || r2.parent.alias == r.alias)
|
71
|
+
const relationFields = relations.filter(r2 => r2.parent.name == r.name || (r.alias != '' && r2.parent.alias == r.alias))
|
72
|
+
.map(f => {
|
72
73
|
const field = {
|
73
74
|
type: 'relation',
|
74
75
|
name: f.child.name,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe-nested-query.js","sourceRoot":"","sources":["../../src/describe-nested-query.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"describe-nested-query.js","sourceRoot":"","sources":["../../src/describe-nested-query.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/queryExectutor.d.ts
CHANGED
@@ -2,8 +2,9 @@ import { Either } from "fp-ts/lib/Either";
|
|
2
2
|
import { TypeSqlError } from "./types";
|
3
3
|
import { ColumnSchema, ColumnSchema2 } from "./mysql-query-analyzer/types";
|
4
4
|
export declare class DbClient {
|
5
|
-
private
|
5
|
+
private pool;
|
6
6
|
mySqlVersion: string;
|
7
|
+
database: string;
|
7
8
|
connect(connectionUri: string): Promise<Either<TypeSqlError, true>>;
|
8
9
|
closeConnection(): Promise<void>;
|
9
10
|
loadDbSchema(): Promise<Either<TypeSqlError, ColumnSchema[]>>;
|
package/queryExectutor.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queryExectutor.d.ts","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAO3E,qBAAa,QAAQ;IAEjB,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"queryExectutor.d.ts","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAO3E,qBAAa,QAAQ;IAEjB,OAAO,CAAC,IAAI,CAAc;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAkBnE,eAAe;IAMf,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;IAyB7D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IA2BxF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG;IAQzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAcrE,qBAAqB,CAAC,GAAG,EAAE,GAAG;IAQ9B,UAAU;CAGb"}
|
package/queryExectutor.js
CHANGED
@@ -20,9 +20,11 @@ class DbClient {
|
|
20
20
|
connect(connectionUri) {
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
22
22
|
try {
|
23
|
-
this.
|
24
|
-
const [rows] = yield this.
|
23
|
+
this.pool = yield (0, promise_1.createPool)(connectionUri);
|
24
|
+
const [rows] = yield this.pool.execute("select @@version as version");
|
25
25
|
this.mySqlVersion = rows[0].version;
|
26
|
+
//@ts-ignore
|
27
|
+
this.database = this.pool.pool.config.connectionConfig.database;
|
26
28
|
return (0, Either_1.right)(true);
|
27
29
|
}
|
28
30
|
catch (e) {
|
@@ -36,8 +38,8 @@ class DbClient {
|
|
36
38
|
}
|
37
39
|
closeConnection() {
|
38
40
|
return __awaiter(this, void 0, void 0, function* () {
|
39
|
-
if (this.
|
40
|
-
this.
|
41
|
+
if (this.pool != null) {
|
42
|
+
this.pool.end();
|
41
43
|
}
|
42
44
|
});
|
43
45
|
}
|
@@ -54,8 +56,8 @@ class DbClient {
|
|
54
56
|
WHERE TABLE_SCHEMA = ?
|
55
57
|
ORDER BY TABLE_NAME, ORDINAL_POSITION
|
56
58
|
`;
|
57
|
-
if (this.
|
58
|
-
return this.
|
59
|
+
if (this.pool != null) {
|
60
|
+
return this.pool.execute(sql, [this.database])
|
59
61
|
.then(res => {
|
60
62
|
const columns = res[0];
|
61
63
|
return (0, Either_1.right)(columns.map(col => (Object.assign(Object.assign({}, col), { notNull: !!+col.notNull })))); //convert 1 to true, 0 to false
|
@@ -80,8 +82,8 @@ class DbClient {
|
|
80
82
|
AND TABLE_NAME = ?
|
81
83
|
ORDER BY TABLE_NAME, ORDINAL_POSITION
|
82
84
|
`;
|
83
|
-
if (this.
|
84
|
-
return this.
|
85
|
+
if (this.pool) {
|
86
|
+
return this.pool.execute(sql, [this.database, tableName])
|
85
87
|
.then(res => {
|
86
88
|
const columns = res[0];
|
87
89
|
return (0, Either_1.right)(columns);
|
@@ -100,11 +102,14 @@ class DbClient {
|
|
100
102
|
}
|
101
103
|
explainSql(sql) {
|
102
104
|
return __awaiter(this, void 0, void 0, function* () {
|
103
|
-
if (this.
|
104
|
-
|
105
|
-
return
|
105
|
+
if (this.pool) {
|
106
|
+
const conn = yield this.pool.getConnection();
|
107
|
+
return conn.prepare(sql)
|
106
108
|
.then(() => {
|
107
109
|
return (0, Either_1.right)(true);
|
110
|
+
}).finally(() => {
|
111
|
+
var _a;
|
112
|
+
(_a = this.pool) === null || _a === void 0 ? void 0 : _a.releaseConnection(conn);
|
108
113
|
}).catch((err) => this.createInvalidSqlError(err));
|
109
114
|
}
|
110
115
|
return (0, Either_1.left)(connectionNotOpenError);
|
package/queryExectutor.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queryExectutor.js","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
1
|
+
{"version":3,"file":"queryExectutor.js","sourceRoot":"","sources":["../../src/queryExectutor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAkD;AAClD,6CAAuD;AAIvD,MAAM,sBAAsB,GAAiB;IACzC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,sCAAsC;CACtD,CAAA;AAED,MAAa,QAAQ;IAKX,OAAO,CAAC,aAAqB;;YAC/B,IAAI;gBACA,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBACtE,IAAI,CAAC,YAAY,GAAI,IAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/C,YAAY;gBACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBAChE,OAAO,IAAA,cAAK,EAAC,IAAI,CAAC,CAAC;aACtB;YACD,OAAO,CAAM,EAAE;gBACX,MAAM,SAAS,GAAiB;oBAC5B,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EAAE,CAAC,CAAC,OAAO;iBACzB,CAAA;gBACD,OAAO,IAAA,aAAI,EAAC,SAAS,CAAC,CAAC;aAC1B;QACL,CAAC;KAAA;IAEK,eAAe;;YACjB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACnB;QACL,CAAC;KAAA;IAEK,YAAY;;YAEd,MAAM,GAAG,GAAG;;;;;;;;;;aAUP,CAAA;YAEL,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACzC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACR,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAmB,CAAC;oBACzC,OAAO,IAAA,cAAK,EAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,iCAAM,GAAG,KAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAG,CAAC,CAAC,CAAC,CAAC,+BAA+B;gBAC5G,CAAC,CAAC,CAAC;aACV;YACD,OAAO,IAAA,aAAI,EAAC,sBAAsB,CAAC,CAAC;QAExC,CAAC;KAAA;IAEK,eAAe,CAAC,SAAiB;;YACnC,MAAM,GAAG,GAAG;;;;;;;;;;;;;SAaX,CAAA;YAED,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;qBACpD,IAAI,CAAC,GAAG,CAAC,EAAE;oBACR,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAoB,CAAA;oBACzC,OAAO,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACV;YACD,OAAO,IAAA,aAAI,EAAC,sBAAsB,CAAC,CAAC;QAExC,CAAC;KAAA;IAED,YAAY,CAAC,GAAW,EAAE,UAAqB;QAC3C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC/C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,UAAU,CAAC,GAAW;;YACxB,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;qBACnB,IAAI,CAAC,GAAG,EAAE;oBACP,OAAO,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;gBACtB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;;oBACZ,MAAA,IAAI,CAAC,IAAI,0CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;aAC/D;YACD,OAAO,IAAA,aAAI,EAAC,sBAAsB,CAAC,CAAC;QAExC,CAAC;KAAA;IAED,qBAAqB,CAAC,GAAQ;QAC1B,MAAM,KAAK,GAAiB;YACxB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,GAAG,CAAC,OAAO;SAC3B,CAAA;QACD,OAAO,IAAA,aAAI,EAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACJ;AAlHD,4BAkHC"}
|