Skip to content

Commit 9cb714a

Browse files
committed
refactor: pattern procedureCallPacket according to documentation
1 parent b63b94c commit 9cb714a

File tree

8 files changed

+46
-159
lines changed

8 files changed

+46
-159
lines changed

documentation/en/TypeScript-Examples.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -286,19 +286,15 @@ conn.query<ProcedureCallPacket<ResultSetHeader>>(sql, (_err, result) => {
286286
287287
By using `SELECT` and `SHOW` queries in a **Procedure Call**, it groups the results as:
288288
```tsx
289-
// ProcedureCallPacket<RowDataPacket[]>
290-
[...RowDataPacket[], ResultSetHeader]
291-
292-
// ProcedureCallPacket<RowDataPacket[][]>
293-
[...RowDataPacket[][], ResultSetHeader]
289+
/** ProcedureCallPacket<RowDataPacket[]> */
290+
[RowDataPacket[], ResultSetHeader]
294291
```
295292

296-
For `ProcedureCallPacket<RowDataPacket[]>` and `ProcedureCallPacket<RowDataPacket[][]>`, please see the following examples.
293+
For `ProcedureCallPacket<RowDataPacket[]>`, please see the following examples.
297294

298295
---
299296

300297
## Examples
301-
302298
You can also check some code examples using **MySQL2** and **TypeScript** to understand advanced concepts:
303299

304300
- [Extending and using **Interfaces** with `RowDataPacket`](../../examples/typescript/row-data-packet.ts)

examples/typescript/procedure-call-packet-row-as-array.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ const isResultSetHeader = (data: unknown): data is ResultSetHeader => {
7272
`);
7373

7474
/** Getting users */
75-
const [procedureResult] = await conn.query<ProcedureCallPacket<User[][]>>(
75+
const [procedureResult] = await conn.query<ProcedureCallPacket<User[]>>(
7676
'CALL getUsers()',
7777
);
7878

examples/typescript/procedure-call-packet.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ const isResultSetHeader = (data: unknown): data is ResultSetHeader => {
6969
`);
7070

7171
/** Getting users */
72-
const [procedureResult] = await conn.query<ProcedureCallPacket<User[][]>>(
72+
const [procedureResult] = await conn.query<ProcedureCallPacket<User[]>>(
7373
'CALL getUsers()',
7474
);
7575

test/tsc-build/strict-checks/ProcedureCallPacket.ts

Lines changed: 12 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ const procedureCall = {
3434
}
3535

3636
const conn = mysql.createConnection(access);
37-
const connAsRow = mysql.createConnection({ ...access, rowsAsArray: true });
3837

3938
// Checking `RowDataPacket[]` Procedure Calls
4039
conn.query(dropProcedure.select, () => {
@@ -43,66 +42,37 @@ const procedureCall = {
4342
procedureCall.select,
4443
[],
4544
(_err, procedureResult) => {
46-
procedureResult.forEach((results) => {
47-
if (isResultSetHeader(results)) {
48-
console.log(results);
45+
procedureResult.forEach((users) => {
46+
if (isResultSetHeader(users)) {
47+
console.log(users);
4948

5049
return;
5150
}
5251

5352
// Strict checking the `RowDataPacket[]`
54-
const user: User = results;
55-
const id: number = user.id;
56-
57-
console.log(id);
58-
});
59-
}
60-
);
61-
});
62-
});
63-
64-
// Checking `RowDataPacket[][]` Procedure Calls
65-
connAsRow.query(dropProcedure.select, () => {
66-
connAsRow.query(createProcedure.select, () => {
67-
connAsRow.query<mysql.ProcedureCallPacket<User[][]>>(
68-
procedureCall.select,
69-
[],
70-
(_err, procedureResult) => {
71-
procedureResult.forEach((results) => {
72-
if (isResultSetHeader(results)) {
73-
console.log(results);
74-
75-
return;
76-
}
77-
78-
// Strict checking the `RowDataPacket[][]`
79-
const users: User[] = results;
80-
8153
users.forEach((user) => {
8254
const id: number = user.id;
8355

8456
console.log(id);
8557
});
8658
});
87-
}
59+
},
8860
);
8961
});
9062
});
9163

92-
// Checking `ResultSetHeader | OkPacket | OkPacket[]` Procedure Calls
64+
// Checking `ResultSetHeader | OkPacket` Procedure Calls
9365
conn.query(dropProcedure.update, () => {
9466
conn.query(createProcedure.update, () => {
9567
conn.query<
96-
mysql.ProcedureCallPacket<
97-
mysql.ResultSetHeader | mysql.OkPacket | mysql.OkPacket[]
98-
>
68+
mysql.ProcedureCallPacket<mysql.ResultSetHeader | mysql.OkPacket>
9969
>(
10070
procedureCall.update,
10171
[],
10272
// Strict checking the `ResultSetHeader`
10373
(_err, procedureResult: mysql.ResultSetHeader) => {
10474
console.log(procedureResult);
105-
}
75+
},
10676
);
10777
});
10878
});
@@ -115,10 +85,6 @@ const procedureCall = {
11585
}
11686

11787
const conn = await mysqlp.createConnection(access);
118-
const connAsRow = await mysqlp.createConnection({
119-
...access,
120-
rowsAsArray: true,
121-
});
12288

12389
// Checking `RowDataPacket[]` Procedure Calls
12490
{
@@ -129,40 +95,14 @@ const procedureCall = {
12995
mysqlp.ProcedureCallPacket<User[]>
13096
>(procedureCall.select, []);
13197

132-
procedureResult.forEach((results) => {
133-
if (isResultSetHeader(results)) {
134-
console.log(results);
98+
procedureResult.forEach((users) => {
99+
if (isResultSetHeader(users)) {
100+
console.log(users);
135101

136102
return;
137103
}
138104

139105
// Strict checking the `RowDataPacket[]`
140-
const user: User = results;
141-
const id: number = user.id;
142-
143-
console.log(id);
144-
});
145-
}
146-
147-
// Checking `RowDataPacket[][]` Procedure Calls
148-
{
149-
await connAsRow.query(dropProcedure.select);
150-
await connAsRow.query(createProcedure.select);
151-
152-
const [procedureResult] = await connAsRow.query<
153-
mysqlp.ProcedureCallPacket<User[][]>
154-
>(procedureCall.select, []);
155-
156-
procedureResult.forEach((results) => {
157-
if (isResultSetHeader(results)) {
158-
console.log(results);
159-
160-
return;
161-
}
162-
163-
// Strict checking the `RowDataPacket[][]`
164-
const users: User[] = results;
165-
166106
users.forEach((user) => {
167107
const id: number = user.id;
168108

@@ -171,15 +111,13 @@ const procedureCall = {
171111
});
172112
}
173113

174-
// Checking `ResultSetHeader | OkPacket | OkPacket[]` Procedure Calls
114+
// Checking `ResultSetHeader | OkPacket` Procedure Calls
175115
{
176116
await conn.query(dropProcedure.update);
177117
await conn.query(createProcedure.update);
178118

179119
const [procedureResult] = await conn.query<
180-
mysqlp.ProcedureCallPacket<
181-
mysqlp.ResultSetHeader | mysqlp.OkPacket | mysqlp.OkPacket[]
182-
>
120+
mysqlp.ProcedureCallPacket<mysqlp.ResultSetHeader | mysqlp.OkPacket>
183121
>(procedureCall.update, []);
184122

185123
// Strict checking the `ResultSetHeader`

test/tsc-build/strict-checks/execute.ts

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ import { access, sql } from '../promise/baseConnection.js';
5252

5353
conn.execute<mysql.ProcedureCallPacket>(sql, (_e, _r, _f) => {
5454
const err: mysql.QueryError | null = _e;
55-
const result: mysql.ProcedureCallPacket = _r;
55+
const result:
56+
| [mysqlp.RowDataPacket[], mysqlp.ResultSetHeader]
57+
| mysqlp.ResultSetHeader = _r;
5658
const fields: mysql.FieldPacket[] = _f;
5759

5860
console.log(err, result, fields);
@@ -62,28 +64,15 @@ import { access, sql } from '../promise/baseConnection.js';
6264
sql,
6365
(_e, _r, _f) => {
6466
const err: mysql.QueryError | null = _e;
65-
const result: [...mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
67+
const result: [mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
6668
const fields: mysql.FieldPacket[] = _f;
6769

6870
console.log(err, result, fields);
69-
}
70-
);
71-
72-
conn.execute<mysql.ProcedureCallPacket<mysql.RowDataPacket[][]>>(
73-
sql,
74-
(_e, _r, _f) => {
75-
const err: mysql.QueryError | null = _e;
76-
const result: [...mysqlp.RowDataPacket[][], mysql.ResultSetHeader] = _r;
77-
const fields: mysql.FieldPacket[] = _f;
78-
79-
console.log(err, result, fields);
80-
}
71+
},
8172
);
8273

8374
conn.execute<
84-
mysql.ProcedureCallPacket<
85-
mysql.OkPacket | mysql.OkPacket[] | mysql.ResultSetHeader
86-
>
75+
mysql.ProcedureCallPacket<mysql.OkPacket | mysql.ResultSetHeader>
8776
>(sql, (_e, _r, _f) => {
8877
const err: mysql.QueryError | null = _e;
8978
const result: mysql.ResultSetHeader = _r;
@@ -133,7 +122,9 @@ import { access, sql } from '../promise/baseConnection.js';
133122
});
134123

135124
conn.execute<mysqlp.ProcedureCallPacket>(sql).then(([_r, _f]) => {
136-
const result: mysqlp.ProcedureCallPacket = _r;
125+
const result:
126+
| [mysqlp.RowDataPacket[], mysqlp.ResultSetHeader]
127+
| mysqlp.ResultSetHeader = _r;
137128
const fields: mysqlp.FieldPacket[] = _f;
138129

139130
console.log(result, fields);
@@ -142,26 +133,15 @@ import { access, sql } from '../promise/baseConnection.js';
142133
conn
143134
.execute<mysqlp.ProcedureCallPacket<mysqlp.RowDataPacket[]>>(sql)
144135
.then(([_r, _f]) => {
145-
const result: [...mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
146-
const fields: mysqlp.FieldPacket[] = _f;
147-
148-
console.log(result, fields);
149-
});
150-
151-
conn
152-
.execute<mysqlp.ProcedureCallPacket<mysqlp.RowDataPacket[][]>>(sql)
153-
.then(([_r, _f]) => {
154-
const result: [...mysqlp.RowDataPacket[][], mysql.ResultSetHeader] = _r;
136+
const result: [mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
155137
const fields: mysqlp.FieldPacket[] = _f;
156138

157139
console.log(result, fields);
158140
});
159141

160142
conn
161143
.execute<
162-
mysqlp.ProcedureCallPacket<
163-
mysqlp.OkPacket | mysqlp.OkPacket[] | mysqlp.ResultSetHeader
164-
>
144+
mysqlp.ProcedureCallPacket<mysqlp.OkPacket | mysqlp.ResultSetHeader>
165145
>(sql)
166146
.then(([_r, _f]) => {
167147
const result: mysqlp.ResultSetHeader = _r;

test/tsc-build/strict-checks/query.ts

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ import { access, sql } from '../promise/baseConnection.js';
5252

5353
conn.query<mysql.ProcedureCallPacket>(sql, (_e, _r, _f) => {
5454
const err: mysql.QueryError | null = _e;
55-
const result: mysql.ProcedureCallPacket = _r;
55+
const result:
56+
| [mysqlp.RowDataPacket[], mysqlp.ResultSetHeader]
57+
| mysqlp.ResultSetHeader = _r;
5658
const fields: mysql.FieldPacket[] = _f;
5759

5860
console.log(err, result, fields);
@@ -62,35 +64,23 @@ import { access, sql } from '../promise/baseConnection.js';
6264
sql,
6365
(_e, _r, _f) => {
6466
const err: mysql.QueryError | null = _e;
65-
const result: [...mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
67+
const result: [mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
6668
const fields: mysql.FieldPacket[] = _f;
6769

6870
console.log(err, result, fields);
69-
}
71+
},
7072
);
7173

72-
conn.query<mysql.ProcedureCallPacket<mysql.RowDataPacket[][]>>(
74+
conn.query<mysql.ProcedureCallPacket<mysql.OkPacket | mysql.ResultSetHeader>>(
7375
sql,
7476
(_e, _r, _f) => {
7577
const err: mysql.QueryError | null = _e;
76-
const result: [...mysqlp.RowDataPacket[][], mysql.ResultSetHeader] = _r;
78+
const result: mysql.ResultSetHeader = _r;
7779
const fields: mysql.FieldPacket[] = _f;
7880

7981
console.log(err, result, fields);
80-
}
82+
},
8183
);
82-
83-
conn.query<
84-
mysql.ProcedureCallPacket<
85-
mysql.OkPacket | mysql.OkPacket[] | mysql.ResultSetHeader
86-
>
87-
>(sql, (_e, _r, _f) => {
88-
const err: mysql.QueryError | null = _e;
89-
const result: mysql.ResultSetHeader = _r;
90-
const fields: mysql.FieldPacket[] = _f;
91-
92-
console.log(err, result, fields);
93-
});
9484
}
9585

9686
// Promise
@@ -133,7 +123,9 @@ import { access, sql } from '../promise/baseConnection.js';
133123
});
134124

135125
conn.query<mysqlp.ProcedureCallPacket>(sql).then(([_r, _f]) => {
136-
const result: mysqlp.ProcedureCallPacket = _r;
126+
const result:
127+
| [mysqlp.RowDataPacket[], mysqlp.ResultSetHeader]
128+
| mysqlp.ResultSetHeader = _r;
137129
const fields: mysqlp.FieldPacket[] = _f;
138130

139131
console.log(result, fields);
@@ -142,26 +134,15 @@ import { access, sql } from '../promise/baseConnection.js';
142134
conn
143135
.query<mysqlp.ProcedureCallPacket<mysqlp.RowDataPacket[]>>(sql)
144136
.then(([_r, _f]) => {
145-
const result: [...mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
146-
const fields: mysqlp.FieldPacket[] = _f;
147-
148-
console.log(result, fields);
149-
});
150-
151-
conn
152-
.query<mysqlp.ProcedureCallPacket<mysqlp.RowDataPacket[][]>>(sql)
153-
.then(([_r, _f]) => {
154-
const result: [...mysqlp.RowDataPacket[][], mysql.ResultSetHeader] = _r;
137+
const result: [mysqlp.RowDataPacket[], mysql.ResultSetHeader] = _r;
155138
const fields: mysqlp.FieldPacket[] = _f;
156139

157140
console.log(result, fields);
158141
});
159142

160143
conn
161144
.query<
162-
mysqlp.ProcedureCallPacket<
163-
mysqlp.OkPacket | mysqlp.OkPacket[] | mysqlp.ResultSetHeader
164-
>
145+
mysqlp.ProcedureCallPacket<mysqlp.OkPacket | mysqlp.ResultSetHeader>
165146
>(sql)
166147
.then(([_r, _f]) => {
167148
const result: mysqlp.ResultSetHeader = _r;

test/tsc-build/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"include": ["index.ts", "helpers.ts", "mysql", "promise"],
2+
"include": ["index.ts", "helpers.ts", "mysql", "promise", "strict-checks"],
33
"compilerOptions": {
44
"target": "ES2016",
55
"module": "CommonJS",

0 commit comments

Comments
 (0)