Skip to content

Commit 8979eb1

Browse files
authored
refactor: unifies spread types in their proper places (#2075)
* refactor: moving `Auth` types * refactor: unify `Connection` types * refactor: unify `Pool` and `PoolConnection` types * refactor: unify `ConnectionOptions`, `PoolOptions` and `ConnectionConfig` types * refactor: remove duplicate types between `Connection` and `PoolConnection` * refactor: unify `execute` and `query` overloads * ci: add strict checks for `query` and `execute` returns
1 parent a0e9400 commit 8979eb1

File tree

14 files changed

+680
-660
lines changed

14 files changed

+680
-660
lines changed

index.d.ts

-224
Original file line numberDiff line numberDiff line change
@@ -1,225 +1 @@
1-
import * as mysql from './typings/mysql/index.js';
2-
import {
3-
Connection as PromiseConnection,
4-
Pool as PromisePool,
5-
PoolConnection as PromisePoolConnection,
6-
} from './promise.js';
7-
81
export * from './typings/mysql/index.js';
9-
10-
export interface Connection extends mysql.Connection {
11-
execute<
12-
T extends
13-
| mysql.RowDataPacket[][]
14-
| mysql.RowDataPacket[]
15-
| mysql.OkPacket
16-
| mysql.OkPacket[]
17-
| mysql.ResultSetHeader
18-
>(
19-
sql: string,
20-
callback?: (
21-
err: mysql.QueryError | null,
22-
result: T,
23-
fields: mysql.FieldPacket[]
24-
) => any
25-
): mysql.Query;
26-
execute<
27-
T extends
28-
| mysql.RowDataPacket[][]
29-
| mysql.RowDataPacket[]
30-
| mysql.OkPacket
31-
| mysql.OkPacket[]
32-
| mysql.ResultSetHeader
33-
>(
34-
sql: string,
35-
values: any | any[] | { [param: string]: any },
36-
callback?: (
37-
err: mysql.QueryError | null,
38-
result: T,
39-
fields: mysql.FieldPacket[]
40-
) => any
41-
): mysql.Query;
42-
execute<
43-
T extends
44-
| mysql.RowDataPacket[][]
45-
| mysql.RowDataPacket[]
46-
| mysql.OkPacket
47-
| mysql.OkPacket[]
48-
| mysql.ResultSetHeader
49-
>(
50-
options: mysql.QueryOptions,
51-
callback?: (
52-
err: mysql.QueryError | null,
53-
result: T,
54-
fields?: mysql.FieldPacket[]
55-
) => any
56-
): mysql.Query;
57-
execute<
58-
T extends
59-
| mysql.RowDataPacket[][]
60-
| mysql.RowDataPacket[]
61-
| mysql.OkPacket
62-
| mysql.OkPacket[]
63-
| mysql.ResultSetHeader
64-
>(
65-
options: mysql.QueryOptions,
66-
values: any | any[] | { [param: string]: any },
67-
callback?: (
68-
err: mysql.QueryError | null,
69-
result: T,
70-
fields: mysql.FieldPacket[]
71-
) => any
72-
): mysql.Query;
73-
ping(callback?: (err: mysql.QueryError | null) => any): void;
74-
unprepare(sql: string): mysql.PrepareStatementInfo;
75-
prepare(
76-
sql: string,
77-
callback?: (
78-
err: mysql.QueryError | null,
79-
statement: mysql.PrepareStatementInfo
80-
) => any
81-
): mysql.Prepare;
82-
serverHandshake(args: any): any;
83-
writeOk(args?: mysql.OkPacketParams): void;
84-
writeError(args?: mysql.ErrorPacketParams): void;
85-
writeEof(warnings?: number, statusFlags?: number): void;
86-
writeTextResult(rows?: Array<any>, columns?: Array<any>): void;
87-
writePacket(packet: any): void;
88-
promise(promiseImpl?: PromiseConstructor): PromiseConnection;
89-
sequenceId: number;
90-
}
91-
92-
export interface PoolConnection extends mysql.PoolConnection {
93-
promise(promiseImpl?: PromiseConstructor): PromisePool;
94-
}
95-
96-
export interface Pool extends mysql.Connection {
97-
execute<
98-
T extends
99-
| mysql.RowDataPacket[][]
100-
| mysql.RowDataPacket[]
101-
| mysql.OkPacket
102-
| mysql.OkPacket[]
103-
| mysql.ResultSetHeader
104-
>(
105-
sql: string,
106-
callback?: (
107-
err: mysql.QueryError | null,
108-
result: T,
109-
fields: mysql.FieldPacket[]
110-
) => any
111-
): mysql.Query;
112-
execute<
113-
T extends
114-
| mysql.RowDataPacket[][]
115-
| mysql.RowDataPacket[]
116-
| mysql.OkPacket
117-
| mysql.OkPacket[]
118-
| mysql.ResultSetHeader
119-
>(
120-
sql: string,
121-
values: any | any[] | { [param: string]: any },
122-
callback?: (
123-
err: mysql.QueryError | null,
124-
result: T,
125-
fields: mysql.FieldPacket[]
126-
) => any
127-
): mysql.Query;
128-
execute<
129-
T extends
130-
| mysql.RowDataPacket[][]
131-
| mysql.RowDataPacket[]
132-
| mysql.OkPacket
133-
| mysql.OkPacket[]
134-
| mysql.ResultSetHeader
135-
>(
136-
options: mysql.QueryOptions,
137-
callback?: (
138-
err: mysql.QueryError | null,
139-
result: T,
140-
fields?: mysql.FieldPacket[]
141-
) => any
142-
): mysql.Query;
143-
execute<
144-
T extends
145-
| mysql.RowDataPacket[][]
146-
| mysql.RowDataPacket[]
147-
| mysql.OkPacket
148-
| mysql.OkPacket[]
149-
| mysql.ResultSetHeader
150-
>(
151-
options: mysql.QueryOptions,
152-
values: any | any[] | { [param: string]: any },
153-
callback?: (
154-
err: mysql.QueryError | null,
155-
result: T,
156-
fields: mysql.FieldPacket[]
157-
) => any
158-
): mysql.Query;
159-
getConnection(
160-
callback: (err: NodeJS.ErrnoException, connection: PoolConnection) => any
161-
): void;
162-
releaseConnection(connection: PoolConnection | PromisePoolConnection): void;
163-
on(event: string, listener: (args: any[]) => void): this;
164-
on(event: 'connection', listener: (connection: PoolConnection) => any): this;
165-
on(event: 'acquire', listener: (connection: PoolConnection) => any): this;
166-
on(event: 'release', listener: (connection: PoolConnection) => any): this;
167-
on(event: 'enqueue', listener: () => any): this;
168-
unprepare(sql: string): mysql.PrepareStatementInfo;
169-
prepare(
170-
sql: string,
171-
callback?: (
172-
err: mysql.QueryError | null,
173-
statement: mysql.PrepareStatementInfo
174-
) => any
175-
): mysql.Prepare;
176-
promise(promiseImpl?: PromiseConstructor): PromisePool;
177-
config: mysql.PoolOptions;
178-
}
179-
180-
export interface ConnectionOptions extends mysql.ConnectionOptions {
181-
charsetNumber?: number;
182-
compress?: boolean;
183-
authSwitchHandler?: (data: any, callback: () => void) => any;
184-
connectAttributes?: { [param: string]: any };
185-
decimalNumbers?: boolean;
186-
isServer?: boolean;
187-
maxPreparedStatements?: number;
188-
namedPlaceholders?: boolean;
189-
nestTables?: boolean | string;
190-
passwordSha1?: string;
191-
pool?: any;
192-
rowsAsArray?: boolean;
193-
stream?: any;
194-
uri?: string;
195-
connectionLimit?: number;
196-
maxIdle?: number;
197-
idleTimeout?: number;
198-
Promise?: any;
199-
queueLimit?: number;
200-
waitForConnections?: boolean;
201-
authPlugins?: {
202-
[key: string]: mysql.AuthPlugin;
203-
};
204-
}
205-
206-
export interface ConnectionConfig extends ConnectionOptions {
207-
mergeFlags(defaultFlags: string[], userFlags: string[] | string): number;
208-
getDefaultFlags(options?: ConnectionOptions): string[];
209-
getCharsetNumber(charset: string): number;
210-
getSSLProfile(name: string): { ca: string[] };
211-
parseUrl(url: string): {
212-
host: string;
213-
port: number;
214-
database: string;
215-
user: string;
216-
password: string;
217-
[key: string]: any;
218-
};
219-
}
220-
221-
export interface PoolOptions extends mysql.PoolOptions, ConnectionOptions {}
222-
223-
export function createConnection(connectionUri: string): Connection;
224-
export function createConnection(config: ConnectionOptions): Connection;
225-
export function createPool(config: PoolOptions): Pool;

0 commit comments

Comments
 (0)