@effect/sql-mysql2 4.0.0-beta.4 → 4.0.0-beta.41
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/MysqlClient.d.ts +1 -1
- package/dist/MysqlClient.d.ts.map +1 -1
- package/dist/MysqlClient.js +60 -15
- package/dist/MysqlClient.js.map +1 -1
- package/package.json +3 -3
- package/src/MysqlClient.ts +87 -12
package/dist/MysqlClient.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export interface MysqlClientConfig {
|
|
|
51
51
|
readonly username?: string | undefined;
|
|
52
52
|
readonly password?: Redacted.Redacted | undefined;
|
|
53
53
|
readonly maxConnections?: number | undefined;
|
|
54
|
-
readonly connectionTTL?: Duration.
|
|
54
|
+
readonly connectionTTL?: Duration.Input | undefined;
|
|
55
55
|
readonly poolConfig?: Mysql.PoolOptions | undefined;
|
|
56
56
|
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
57
57
|
readonly transformResultNames?: ((str: string) => string) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MysqlClient.d.ts","sourceRoot":"","sources":["../src/MysqlClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"MysqlClient.d.ts","sourceRoot":"","sources":["../src/MysqlClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,EAOL,QAAQ,EAIT,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAA;AAwD/B;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAA;AAE/D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,iCAAiC,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,MAAM,CAAC,SAAS;IACnD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,8CAAoE,CAAA;AAE5F;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;IAE5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;IAEjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAEnD,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;IAEnD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,iBAAiB,KACzB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,GAAG,UAAU,CAAC,UAAU,CAkMjE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KACrC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAUnC,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,iBAAiB,KACxB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAMnC,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,uBAiB1D,CAAA"}
|
package/dist/MysqlClient.js
CHANGED
|
@@ -10,7 +10,7 @@ import * as ServiceMap from "effect/ServiceMap";
|
|
|
10
10
|
import * as Stream from "effect/Stream";
|
|
11
11
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
12
12
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
13
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
13
|
+
import { AuthenticationError, AuthorizationError, ConnectionError, ConstraintError, DeadlockError, LockTimeoutError, SqlError, SqlSyntaxError, StatementTimeoutError, UnknownError } from "effect/unstable/sql/SqlError";
|
|
14
14
|
import { asyncPauseResume } from "effect/unstable/sql/SqlStream";
|
|
15
15
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
16
16
|
import * as Mysql from "mysql2";
|
|
@@ -18,6 +18,52 @@ const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
|
18
18
|
const ATTR_DB_NAMESPACE = "db.namespace";
|
|
19
19
|
const ATTR_SERVER_ADDRESS = "server.address";
|
|
20
20
|
const ATTR_SERVER_PORT = "server.port";
|
|
21
|
+
const mysqlErrnoFromCause = cause => {
|
|
22
|
+
if (typeof cause !== "object" || cause === null || !("errno" in cause)) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const errno = cause.errno;
|
|
26
|
+
return typeof errno === "number" ? errno : undefined;
|
|
27
|
+
};
|
|
28
|
+
const mysqlConnectionErrorCodes = /*#__PURE__*/new Set([1040, 1042, 1043, 1129, 1130, 1203]);
|
|
29
|
+
const mysqlAuthorizationErrorCodes = /*#__PURE__*/new Set([1044, 1142, 1143, 1227]);
|
|
30
|
+
const mysqlSyntaxErrorCodes = /*#__PURE__*/new Set([1054, 1064, 1146]);
|
|
31
|
+
const mysqlConstraintErrorCodes = /*#__PURE__*/new Set([1022, 1048, 1062, 1169, 1216, 1217, 1451, 1452, 1557]);
|
|
32
|
+
const classifyError = (cause, message, operation) => {
|
|
33
|
+
const props = {
|
|
34
|
+
cause,
|
|
35
|
+
message,
|
|
36
|
+
operation
|
|
37
|
+
};
|
|
38
|
+
const errno = mysqlErrnoFromCause(cause);
|
|
39
|
+
if (errno !== undefined) {
|
|
40
|
+
if (mysqlConnectionErrorCodes.has(errno)) {
|
|
41
|
+
return new ConnectionError(props);
|
|
42
|
+
}
|
|
43
|
+
if (errno === 1045) {
|
|
44
|
+
return new AuthenticationError(props);
|
|
45
|
+
}
|
|
46
|
+
if (mysqlAuthorizationErrorCodes.has(errno)) {
|
|
47
|
+
return new AuthorizationError(props);
|
|
48
|
+
}
|
|
49
|
+
if (mysqlSyntaxErrorCodes.has(errno)) {
|
|
50
|
+
return new SqlSyntaxError(props);
|
|
51
|
+
}
|
|
52
|
+
if (mysqlConstraintErrorCodes.has(errno)) {
|
|
53
|
+
return new ConstraintError(props);
|
|
54
|
+
}
|
|
55
|
+
if (errno === 1213) {
|
|
56
|
+
return new DeadlockError(props);
|
|
57
|
+
}
|
|
58
|
+
if (errno === 1205) {
|
|
59
|
+
return new LockTimeoutError(props);
|
|
60
|
+
}
|
|
61
|
+
if (errno === 3024) {
|
|
62
|
+
return new StatementTimeoutError(props);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return new UnknownError(props);
|
|
66
|
+
};
|
|
21
67
|
/**
|
|
22
68
|
* @category type ids
|
|
23
69
|
* @since 1.0.0
|
|
@@ -42,7 +88,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
42
88
|
}
|
|
43
89
|
runRaw(sql, values, rowsAsArray = false, method = "execute") {
|
|
44
90
|
return Effect.callback(resume => {
|
|
45
|
-
;
|
|
91
|
+
const operation = method === "query" ? "executeUnprepared" : "execute";
|
|
46
92
|
this.conn[method]({
|
|
47
93
|
sql,
|
|
48
94
|
values,
|
|
@@ -50,8 +96,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
50
96
|
}, (cause, results, _fields) => {
|
|
51
97
|
if (cause) {
|
|
52
98
|
resume(Effect.fail(new SqlError({
|
|
53
|
-
cause,
|
|
54
|
-
message: "Failed to execute statement"
|
|
99
|
+
reason: classifyError(cause, "Failed to execute statement", operation)
|
|
55
100
|
})));
|
|
56
101
|
} else {
|
|
57
102
|
resume(Effect.succeed(results));
|
|
@@ -84,7 +129,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
84
129
|
multipleStatements: true,
|
|
85
130
|
supportBigNumbers: true,
|
|
86
131
|
connectionLimit: options.maxConnections,
|
|
87
|
-
idleTimeout: options.connectionTTL ? Duration.toMillis(Duration.
|
|
132
|
+
idleTimeout: options.connectionTTL ? Duration.toMillis(Duration.fromInputUnsafe(options.connectionTTL)) : undefined
|
|
88
133
|
}) : Mysql.createPool({
|
|
89
134
|
...options.poolConfig,
|
|
90
135
|
host: options.host,
|
|
@@ -95,15 +140,14 @@ export const make = options => Effect.gen(function* () {
|
|
|
95
140
|
multipleStatements: true,
|
|
96
141
|
supportBigNumbers: true,
|
|
97
142
|
connectionLimit: options.maxConnections,
|
|
98
|
-
idleTimeout: options.connectionTTL ? Duration.toMillis(Duration.
|
|
143
|
+
idleTimeout: options.connectionTTL ? Duration.toMillis(Duration.fromInputUnsafe(options.connectionTTL)) : undefined
|
|
99
144
|
});
|
|
100
145
|
yield* Effect.acquireRelease(Effect.callback(resume => {
|
|
101
146
|
;
|
|
102
147
|
pool.query("SELECT 1", cause => {
|
|
103
148
|
if (cause) {
|
|
104
149
|
resume(Effect.fail(new SqlError({
|
|
105
|
-
cause,
|
|
106
|
-
message: "MysqlClient: Failed to connect"
|
|
150
|
+
reason: classifyError(cause, "MysqlClient: Failed to connect", "connect")
|
|
107
151
|
})));
|
|
108
152
|
} else {
|
|
109
153
|
resume(Effect.void);
|
|
@@ -113,9 +157,12 @@ export const make = options => Effect.gen(function* () {
|
|
|
113
157
|
pool.end(() => resume(Effect.void));
|
|
114
158
|
})).pipe(Effect.timeoutOrElse({
|
|
115
159
|
duration: Duration.seconds(5),
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
160
|
+
orElse: () => Effect.fail(new SqlError({
|
|
161
|
+
reason: new ConnectionError({
|
|
162
|
+
message: "MysqlClient: Connection timeout",
|
|
163
|
+
cause: new Error("connection timeout"),
|
|
164
|
+
operation: "connect"
|
|
165
|
+
})
|
|
119
166
|
}))
|
|
120
167
|
}));
|
|
121
168
|
const poolConnection = new ConnectionImpl(pool);
|
|
@@ -123,8 +170,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
123
170
|
pool.getConnection((cause, conn) => {
|
|
124
171
|
if (cause) {
|
|
125
172
|
resume(Effect.fail(new SqlError({
|
|
126
|
-
cause,
|
|
127
|
-
message: "Failed to acquire connection"
|
|
173
|
+
reason: classifyError(cause, "Failed to acquire connection", "acquireConnection")
|
|
128
174
|
})));
|
|
129
175
|
} else {
|
|
130
176
|
resume(Effect.succeed(conn));
|
|
@@ -184,8 +230,7 @@ function queryStream(conn, sql, params) {
|
|
|
184
230
|
let buffer = [];
|
|
185
231
|
let taskPending = false;
|
|
186
232
|
query.on("error", cause => emit.fail(new SqlError({
|
|
187
|
-
cause,
|
|
188
|
-
message: "Failed to stream statement"
|
|
233
|
+
reason: classifyError(cause, "Failed to stream statement", "stream")
|
|
189
234
|
})));
|
|
190
235
|
query.on("data", row => {
|
|
191
236
|
buffer.push(row);
|
package/dist/MysqlClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MysqlClient.js","names":["Config","Duration","Effect","Layer","Redacted","ServiceMap","Stream","Reactivity","Client","SqlError","asyncPauseResume","Statement","Mysql","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","TypeId","MysqlClient","Service","make","options","gen","compiler","makeCompiler","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","ConnectionImpl","conn","constructor","runRaw","sql","values","rowsAsArray","method","callback","resume","cause","results","_fields","fail","message","succeed","run","pipe","map","Array","isArray","execute","params","executeRaw","executeValues","executeUnprepared","executeStream","stream","queryStream","mapArray","_","pool","url","createPool","uri","value","multipleStatements","supportBigNumbers","connectionLimit","maxConnections","idleTimeout","connectionTTL","toMillis","fromDurationInputUnsafe","poolConfig","host","port","database","user","username","password","acquireRelease","query","void","end","timeoutOrElse","duration","seconds","onTimeout","Error","poolConnection","acquireConn","getConnection","sync","release","transactionAcquirer","spanAttributes","Object","entries","push","assign","acquirer","config","layerConfig","effectServices","unwrap","asEffect","flatMap","client","add","SqlClient","provide","layer","transform","dialect","placeholder","onIdentifier","withoutTransform","escape","onCustom","onRecordUpdate","defaultEscape","fnUntraced","emit","addFinalizer","destroy","buffer","taskPending","on","row","queueMicrotask","items","length","onPause","pause","onResume"],"sources":["../src/MysqlClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MysqlClient.js","names":["Config","Duration","Effect","Layer","Redacted","ServiceMap","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SqlError","SqlSyntaxError","StatementTimeoutError","UnknownError","asyncPauseResume","Statement","Mysql","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","mysqlErrnoFromCause","cause","undefined","errno","mysqlConnectionErrorCodes","Set","mysqlAuthorizationErrorCodes","mysqlSyntaxErrorCodes","mysqlConstraintErrorCodes","classifyError","message","operation","props","has","TypeId","MysqlClient","Service","make","options","gen","compiler","makeCompiler","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","ConnectionImpl","conn","constructor","runRaw","sql","values","rowsAsArray","method","callback","resume","results","_fields","fail","reason","succeed","run","pipe","map","Array","isArray","execute","params","executeRaw","executeValues","executeUnprepared","executeStream","stream","queryStream","mapArray","_","pool","url","createPool","uri","value","multipleStatements","supportBigNumbers","connectionLimit","maxConnections","idleTimeout","connectionTTL","toMillis","fromInputUnsafe","poolConfig","host","port","database","user","username","password","acquireRelease","query","void","end","timeoutOrElse","duration","seconds","orElse","Error","poolConnection","acquireConn","getConnection","sync","release","transactionAcquirer","spanAttributes","Object","entries","push","assign","acquirer","config","layerConfig","effectServices","unwrap","asEffect","flatMap","client","add","SqlClient","provide","layer","transform","dialect","placeholder","onIdentifier","withoutTransform","escape","onCustom","onRecordUpdate","defaultEscape","fnUntraced","emit","addFinalizer","destroy","buffer","taskPending","on","row","queueMicrotask","items","length","onPause","pause","onResume"],"sources":["../src/MysqlClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,uCAAuC;AACnE,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,QAAQ,EACRC,cAAc,EACdC,qBAAqB,EACrBC,YAAY,QACP,8BAA8B;AACrC,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAC1D,OAAO,KAAKC,KAAK,MAAM,QAAQ;AAE/B,MAAMC,mBAAmB,GAAG,gBAAgB;AAC5C,MAAMC,iBAAiB,GAAG,cAAc;AACxC,MAAMC,mBAAmB,GAAG,gBAAgB;AAC5C,MAAMC,gBAAgB,GAAG,aAAa;AAEtC,MAAMC,mBAAmB,GAAIC,KAAc,IAAwB;EACjE,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,EAAE,OAAO,IAAIA,KAAK,CAAC,EAAE;IACtE,OAAOC,SAAS;EAClB;EACA,MAAMC,KAAK,GAAGF,KAAK,CAACE,KAAK;EACzB,OAAO,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGD,SAAS;AACtD,CAAC;AAED,MAAME,yBAAyB,gBAAG,IAAIC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/E,MAAMC,4BAA4B,gBAAG,IAAID,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtE,MAAME,qBAAqB,gBAAG,IAAIF,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,MAAMG,yBAAyB,gBAAG,IAAIH,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjG,MAAMI,aAAa,GAAGA,CACpBR,KAAc,EACdS,OAAe,EACfC,SAAiB,KACf;EACF,MAAMC,KAAK,GAAG;IAAEX,KAAK;IAAES,OAAO;IAAEC;EAAS,CAAE;EAC3C,MAAMR,KAAK,GAAGH,mBAAmB,CAACC,KAAK,CAAC;EACxC,IAAIE,KAAK,KAAKD,SAAS,EAAE;IACvB,IAAIE,yBAAyB,CAACS,GAAG,CAACV,KAAK,CAAC,EAAE;MACxC,OAAO,IAAIlB,eAAe,CAAC2B,KAAK,CAAC;IACnC;IACA,IAAIT,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAIpB,mBAAmB,CAAC6B,KAAK,CAAC;IACvC;IACA,IAAIN,4BAA4B,CAACO,GAAG,CAACV,KAAK,CAAC,EAAE;MAC3C,OAAO,IAAInB,kBAAkB,CAAC4B,KAAK,CAAC;IACtC;IACA,IAAIL,qBAAqB,CAACM,GAAG,CAACV,KAAK,CAAC,EAAE;MACpC,OAAO,IAAIb,cAAc,CAACsB,KAAK,CAAC;IAClC;IACA,IAAIJ,yBAAyB,CAACK,GAAG,CAACV,KAAK,CAAC,EAAE;MACxC,OAAO,IAAIjB,eAAe,CAAC0B,KAAK,CAAC;IACnC;IACA,IAAIT,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAIhB,aAAa,CAACyB,KAAK,CAAC;IACjC;IACA,IAAIT,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAIf,gBAAgB,CAACwB,KAAK,CAAC;IACpC;IACA,IAAIT,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAIZ,qBAAqB,CAACqB,KAAK,CAAC;IACzC;EACF;EACA,OAAO,IAAIpB,YAAY,CAACoB,KAAK,CAAC;AAChC,CAAC;AAED;;;;AAIA,OAAO,MAAME,MAAM,GAAW,iCAAiC;AAiB/D;;;;AAIA,OAAO,MAAMC,WAAW,gBAAGpC,UAAU,CAACqC,OAAO,CAAc,gCAAgC,CAAC;AA6B5F;;;;AAIA,OAAO,MAAMC,IAAI,GACfC,OAA0B,IAE1B1C,MAAM,CAAC2C,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAGC,YAAY,CAACH,OAAO,CAACI,mBAAmB,CAAC;EAC1D,MAAMC,aAAa,GAAGL,OAAO,CAACM,oBAAoB,GAChD9B,SAAS,CAAC+B,iBAAiB,CACzBP,OAAO,CAACM,oBAAoB,CAC7B,CAACE,KAAK,GACPxB,SAAS;EAEX,MAAMyB,cAAc;IACTC,IAAI;IACbC,YAAYD,IAAuC;MACjD,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB;IAEQE,MAAMA,CACZC,GAAW,EACXC,MAA2B,EAC3BC,WAAW,GAAG,KAAK,EACnBC,MAAA,GAA8B,SAAS;MAEvC,OAAO1D,MAAM,CAAC2D,QAAQ,CAAqBC,MAAM,IAAI;QACnD,MAAMzB,SAAS,GAAGuB,MAAM,KAAK,OAAO,GAAG,mBAAmB,GAAG,SAAS;QACpE,IAAI,CAACN,IAAY,CAACM,MAAM,CAAC,CAAC;UAC1BH,GAAG;UACHC,MAAM;UACNC;SACD,EAAE,CAAChC,KAAqB,EAAEoC,OAAgB,EAAEC,OAAY,KAAI;UAC3D,IAAIrC,KAAK,EAAE;YACTmC,MAAM,CACJ5D,MAAM,CAAC+D,IAAI,CAAC,IAAIlD,QAAQ,CAAC;cAAEmD,MAAM,EAAE/B,aAAa,CAACR,KAAK,EAAE,6BAA6B,EAAEU,SAAS;YAAC,CAAE,CAAC,CAAC,CACtG;UACH,CAAC,MAAM;YACLyB,MAAM,CAAC5D,MAAM,CAACiE,OAAO,CAACJ,OAAO,CAAC,CAAC;UACjC;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEQK,GAAGA,CACTX,GAAW,EACXC,MAA2B,EAC3BC,WAAW,GAAG,KAAK,EACnBC,MAAA,GAA8B,SAAS;MAEvC,OAAO,IAAI,CAACJ,MAAM,CAACC,GAAG,EAAEC,MAAM,EAAEC,WAAW,EAAEC,MAAM,CAAC,CAACS,IAAI,CACvDnE,MAAM,CAACoE,GAAG,CAAEP,OAAO,IAAKQ,KAAK,CAACC,OAAO,CAACT,OAAO,CAAC,GAAGA,OAAO,GAAG,EAAE,CAAC,CAC/D;IACH;IAEAU,OAAOA,CACLhB,GAAW,EACXiB,MAA8B,EAC9BzB,aAA0F;MAE1F,OAAOA,aAAa,GAChB/C,MAAM,CAACoE,GAAG,CAAC,IAAI,CAACF,GAAG,CAACX,GAAG,EAAEiB,MAAM,CAAC,EAAEzB,aAAa,CAAC,GAChD,IAAI,CAACmB,GAAG,CAACX,GAAG,EAAEiB,MAAM,CAAC;IAC3B;IACAC,UAAUA,CAAClB,GAAW,EAAEiB,MAA8B;MACpD,OAAO,IAAI,CAAClB,MAAM,CAACC,GAAG,EAAEiB,MAAM,CAAC;IACjC;IACAE,aAAaA,CAACnB,GAAW,EAAEiB,MAA8B;MACvD,OAAO,IAAI,CAACN,GAAG,CAACX,GAAG,EAAEiB,MAAM,EAAE,IAAI,CAAC;IACpC;IACAG,iBAAiBA,CACfpB,GAAW,EACXiB,MAA8B,EAC9BzB,aAA0F;MAE1F,OAAOA,aAAa,GAChB/C,MAAM,CAACoE,GAAG,CAAC,IAAI,CAACF,GAAG,CAACX,GAAG,EAAEiB,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAEzB,aAAa,CAAC,GAChE,IAAI,CAACmB,GAAG,CAACX,GAAG,EAAEiB,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;IAC3C;IACAI,aAAaA,CACXrB,GAAW,EACXiB,MAA8B,EAC9BzB,aAA0F;MAE1F,MAAM8B,MAAM,GAAGC,WAAW,CAAC,IAAI,CAAC1B,IAAW,EAAEG,GAAG,EAAEiB,MAAM,CAAC;MACzD,OAAOzB,aAAa,GAChB3C,MAAM,CAAC2E,QAAQ,CAACF,MAAM,EAAGG,CAAC,IAAKjC,aAAa,CAACiC,CAAC,CAAQ,CAAC,GACvDH,MAAM;IACZ;;EAGF,MAAMI,IAAI,GAAGvC,OAAO,CAACwC,GAAG,GACpB/D,KAAK,CAACgE,UAAU,CAAC;IACjBC,GAAG,EAAElF,QAAQ,CAACmF,KAAK,CAAC3C,OAAO,CAACwC,GAAG,CAAC;IAChCI,kBAAkB,EAAE,IAAI;IACxBC,iBAAiB,EAAE,IAAI;IACvBC,eAAe,EAAE9C,OAAO,CAAC+C,cAAe;IACxCC,WAAW,EAAEhD,OAAO,CAACiD,aAAa,GAC9B5F,QAAQ,CAAC6F,QAAQ,CAAC7F,QAAQ,CAAC8F,eAAe,CAACnD,OAAO,CAACiD,aAAa,CAAC,CAAC,GAClEjE;GACL,CAAC,GACAP,KAAK,CAACgE,UAAU,CAAC;IACjB,GAAGzC,OAAO,CAACoD,UAAU;IACrBC,IAAI,EAAErD,OAAO,CAACqD,IAAI;IAClBC,IAAI,EAAEtD,OAAO,CAACsD,IAAI;IAClBC,QAAQ,EAAEvD,OAAO,CAACuD,QAAQ;IAC1BC,IAAI,EAAExD,OAAO,CAACyD,QAAQ;IACtBC,QAAQ,EAAE1D,OAAO,CAAC0D,QAAQ,GACtBlG,QAAQ,CAACmF,KAAK,CAAC3C,OAAO,CAAC0D,QAAQ,CAAC,GAChC1E,SAAS;IACb4D,kBAAkB,EAAE,IAAI;IACxBC,iBAAiB,EAAE,IAAI;IACvBC,eAAe,EAAE9C,OAAO,CAAC+C,cAAc;IACvCC,WAAW,EAAEhD,OAAO,CAACiD,aAAa,GAC9B5F,QAAQ,CAAC6F,QAAQ,CAAC7F,QAAQ,CAAC8F,eAAe,CAACnD,OAAO,CAACiD,aAAa,CAAC,CAAC,GAClEjE;GACgB,CAAC;EAEzB,OAAO1B,MAAM,CAACqG,cAAc,CAC1BrG,MAAM,CAAC2D,QAAQ,CAAkBC,MAAM,IAAI;IACzC;IAAEqB,IAAY,CAACqB,KAAK,CAAC,UAAU,EAAG7E,KAAY,IAAI;MAChD,IAAIA,KAAK,EAAE;QACTmC,MAAM,CAAC5D,MAAM,CAAC+D,IAAI,CAChB,IAAIlD,QAAQ,CAAC;UACXmD,MAAM,EAAE/B,aAAa,CAACR,KAAK,EAAE,gCAAgC,EAAE,SAAS;SACzE,CAAC,CACH,CAAC;MACJ,CAAC,MAAM;QACLmC,MAAM,CAAC5D,MAAM,CAACuG,IAAI,CAAC;MACrB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,EACF,MACEvG,MAAM,CAAC2D,QAAQ,CAAQC,MAAM,IAAI;IAC/BqB,IAAI,CAACuB,GAAG,CAAC,MAAM5C,MAAM,CAAC5D,MAAM,CAACuG,IAAI,CAAC,CAAC;EACrC,CAAC,CAAC,CACL,CAACpC,IAAI,CACJnE,MAAM,CAACyG,aAAa,CAAC;IACnBC,QAAQ,EAAE3G,QAAQ,CAAC4G,OAAO,CAAC,CAAC,CAAC;IAC7BC,MAAM,EAAEA,CAAA,KACN5G,MAAM,CAAC+D,IAAI,CACT,IAAIlD,QAAQ,CAAC;MACXmD,MAAM,EAAE,IAAIvD,eAAe,CAAC;QAC1ByB,OAAO,EAAE,iCAAiC;QAC1CT,KAAK,EAAE,IAAIoF,KAAK,CAAC,oBAAoB,CAAC;QACtC1E,SAAS,EAAE;OACZ;KACF,CAAC;GAEP,CAAC,CACH;EAED,MAAM2E,cAAc,GAAG,IAAI3D,cAAc,CAAC8B,IAAI,CAAC;EAE/C,MAAM8B,WAAW,GAAG/G,MAAM,CAACqG,cAAc,CACvCrG,MAAM,CAAC2D,QAAQ,CAAkCC,MAAM,IAAI;IACzDqB,IAAI,CAAC+B,aAAa,CAAC,CAACvF,KAAK,EAAE2B,IAAI,KAAI;MACjC,IAAI3B,KAAK,EAAE;QACTmC,MAAM,CACJ5D,MAAM,CAAC+D,IAAI,CACT,IAAIlD,QAAQ,CAAC;UACXmD,MAAM,EAAE/B,aAAa,CAACR,KAAK,EAAE,8BAA8B,EAAE,mBAAmB;SACjF,CAAC,CACH,CACF;MACH,CAAC,MAAM;QACLmC,MAAM,CAAC5D,MAAM,CAACiE,OAAO,CAACb,IAAI,CAAC,CAAC;MAC9B;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,EACDA,IAAI,IAAKpD,MAAM,CAACiH,IAAI,CAAC,MAAM7D,IAAI,CAAC8D,OAAO,EAAE,CAAC,CAC5C;EAED,MAAMC,mBAAmB,GAAGnH,MAAM,CAACoE,GAAG,CACpC2C,WAAW,EACV3D,IAAI,IAAK,IAAID,cAAc,CAACC,IAAI,CAAC,CACnC;EAED,MAAMgE,cAAc,GAA6B,CAC/C,IAAI1E,OAAO,CAAC0E,cAAc,GAAGC,MAAM,CAACC,OAAO,CAAC5E,OAAO,CAAC0E,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAChG,mBAAmB,EAAE,OAAO,CAAC,EAC9B,CAACE,mBAAmB,EAAEoB,OAAO,CAACqD,IAAI,IAAI,WAAW,CAAC,EAClD,CAACxE,gBAAgB,EAAEmB,OAAO,CAACsD,IAAI,IAAI,IAAI,CAAC,CACzC;EAED,IAAItD,OAAO,CAACuD,QAAQ,EAAE;IACpBmB,cAAc,CAACG,IAAI,CAAC,CAAClG,iBAAiB,EAAEqB,OAAO,CAACuD,QAAQ,CAAC,CAAC;EAC5D;EAEA,OAAOoB,MAAM,CAACG,MAAM,CAClB,OAAOlH,MAAM,CAACmC,IAAI,CAAC;IACjBgF,QAAQ,EAAEzH,MAAM,CAACiE,OAAO,CAAC6C,cAAc,CAAC;IACxCK,mBAAmB;IACnBvE,QAAQ;IACRwE,cAAc;IACdrE;GACD,CAAC,EACF;IAAE,CAACT,MAAM,GAAGA,MAAgB;IAAEoF,MAAM,EAAEhF;EAAO,CAAE,CAChD;AACH,CAAC,CAAC;AAEJ;;;;AAIA,OAAO,MAAMiF,WAAW,GACtBD,MAAsC,IAEtCzH,KAAK,CAAC2H,cAAc,CAClB9H,MAAM,CAAC+H,MAAM,CAACH,MAAM,CAAC,CAACI,QAAQ,EAAE,CAAC3D,IAAI,CACnCnE,MAAM,CAAC+H,OAAO,CAACtF,IAAI,CAAC,EACpBzC,MAAM,CAACoE,GAAG,CAAE4D,MAAM,IAChB7H,UAAU,CAACsC,IAAI,CAACF,WAAW,EAAEyF,MAAM,CAAC,CAAC7D,IAAI,CACvChE,UAAU,CAAC8H,GAAG,CAAC3H,MAAM,CAAC4H,SAAS,EAAEF,MAAM,CAAC,CACzC,CACF,CACF,CACF,CAAC7D,IAAI,CAAClE,KAAK,CAACkI,OAAO,CAAC9H,UAAU,CAAC+H,KAAK,CAAC,CAAC;AAEzC;;;;AAIA,OAAO,MAAMA,KAAK,GAChBV,MAAyB,IAEzBzH,KAAK,CAAC2H,cAAc,CAClB5H,MAAM,CAACoE,GAAG,CAAC3B,IAAI,CAACiF,MAAM,CAAC,EAAGM,MAAM,IAC9B7H,UAAU,CAACsC,IAAI,CAACF,WAAW,EAAEyF,MAAM,CAAC,CAAC7D,IAAI,CACvChE,UAAU,CAAC8H,GAAG,CAAC3H,MAAM,CAAC4H,SAAS,EAAEF,MAAM,CAAC,CACzC,CAAC,CACL,CAAC7D,IAAI,CAAClE,KAAK,CAACkI,OAAO,CAAC9H,UAAU,CAAC+H,KAAK,CAAC,CAAC;AAEzC;;;;AAIA,OAAO,MAAMvF,YAAY,GAAIwF,SAAiC,IAC5DnH,SAAS,CAAC2B,YAAY,CAAC;EACrByF,OAAO,EAAE,OAAO;EAChBC,WAAWA,CAACvD,CAAC;IACX,OAAO,GAAG;EACZ,CAAC;EACDwD,YAAY,EAAEH,SAAS,GACrB,UAAShD,KAAK,EAAEoD,gBAAgB;IAC9B,OAAOA,gBAAgB,GAAGC,MAAM,CAACrD,KAAK,CAAC,GAAGqD,MAAM,CAACL,SAAS,CAAChD,KAAK,CAAC,CAAC;EACpE,CAAC,GACDqD,MAAM;EACRC,QAAQA,CAAA;IACN,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;EACjB,CAAC;EACDC,cAAcA,CAAA;IACZ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;EACjB;CACD,CAAC;AAEJ,MAAMF,MAAM,gBAAGxH,SAAS,CAAC2H,aAAa,CAAC,GAAG,CAAC;AAE3C,SAAS/D,WAAWA,CAClB1B,IAA0B,EAC1BG,GAAW,EACXiB,MAA2B;EAE3B,OAAOvD,gBAAgB,CAAgBjB,MAAM,CAAC8I,UAAU,CAAC,WAAUC,IAAI;IACrE,MAAMzC,KAAK,GAAIlD,IAAY,CAACkD,KAAK,CAAC/C,GAAG,EAAEiB,MAAM,CAAC,CAACK,MAAM,EAAE;IACvD,OAAO7E,MAAM,CAACgJ,YAAY,CAAC,MAAMhJ,MAAM,CAACiH,IAAI,CAAC,MAAMX,KAAK,CAAC2C,OAAO,EAAE,CAAC,CAAC;IAEpE,IAAIC,MAAM,GAAe,EAAE;IAC3B,IAAIC,WAAW,GAAG,KAAK;IACvB7C,KAAK,CAAC8C,EAAE,CACN,OAAO,EACN3H,KAAc,IACbsH,IAAI,CAAChF,IAAI,CAAC,IAAIlD,QAAQ,CAAC;MAAEmD,MAAM,EAAE/B,aAAa,CAACR,KAAK,EAAE,4BAA4B,EAAE,QAAQ;IAAC,CAAE,CAAC,CAAC,CACpG;IACD6E,KAAK,CAAC8C,EAAE,CAAC,MAAM,EAAGC,GAAQ,IAAI;MAC5BH,MAAM,CAAC3B,IAAI,CAAC8B,GAAG,CAAC;MAChB,IAAI,CAACF,WAAW,EAAE;QAChBA,WAAW,GAAG,IAAI;QAClBG,cAAc,CAAC,MAAK;UAClB,MAAMC,KAAK,GAAGL,MAAM;UACpBA,MAAM,GAAG,EAAE;UACXH,IAAI,CAAC7F,KAAK,CAACqG,KAAK,CAAC;UACjBJ,WAAW,GAAG,KAAK;QACrB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IACF7C,KAAK,CAAC8C,EAAE,CAAC,KAAK,EAAE,MAAK;MACnB,IAAIF,MAAM,CAACM,MAAM,GAAG,CAAC,EAAE;QACrBT,IAAI,CAAC7F,KAAK,CAACgG,MAAM,CAAC;QAClBA,MAAM,GAAG,EAAE;MACb;MACAH,IAAI,CAACvC,GAAG,EAAE;IACZ,CAAC,CAAC;IAEF,OAAO;MACLiD,OAAOA,CAAA;QACLnD,KAAK,CAACoD,KAAK,EAAE;MACf,CAAC;MACDC,QAAQA,CAAA;QACNrD,KAAK,CAAC1C,MAAM,EAAE;MAChB;KACD;EACH,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-mysql2",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.41",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A MySQL toolkit for Effect",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@testcontainers/mysql": "^11.11.0",
|
|
47
|
-
"effect": "^4.0.0-beta.
|
|
47
|
+
"effect": "^4.0.0-beta.41"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"effect": "^4.0.0-beta.
|
|
50
|
+
"effect": "^4.0.0-beta.41"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"mysql2": "^3.16.2"
|
package/src/MysqlClient.ts
CHANGED
|
@@ -12,7 +12,18 @@ import * as Stream from "effect/Stream"
|
|
|
12
12
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity"
|
|
13
13
|
import * as Client from "effect/unstable/sql/SqlClient"
|
|
14
14
|
import type { Connection } from "effect/unstable/sql/SqlConnection"
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
AuthenticationError,
|
|
17
|
+
AuthorizationError,
|
|
18
|
+
ConnectionError,
|
|
19
|
+
ConstraintError,
|
|
20
|
+
DeadlockError,
|
|
21
|
+
LockTimeoutError,
|
|
22
|
+
SqlError,
|
|
23
|
+
SqlSyntaxError,
|
|
24
|
+
StatementTimeoutError,
|
|
25
|
+
UnknownError
|
|
26
|
+
} from "effect/unstable/sql/SqlError"
|
|
16
27
|
import { asyncPauseResume } from "effect/unstable/sql/SqlStream"
|
|
17
28
|
import * as Statement from "effect/unstable/sql/Statement"
|
|
18
29
|
import * as Mysql from "mysql2"
|
|
@@ -22,6 +33,55 @@ const ATTR_DB_NAMESPACE = "db.namespace"
|
|
|
22
33
|
const ATTR_SERVER_ADDRESS = "server.address"
|
|
23
34
|
const ATTR_SERVER_PORT = "server.port"
|
|
24
35
|
|
|
36
|
+
const mysqlErrnoFromCause = (cause: unknown): number | undefined => {
|
|
37
|
+
if (typeof cause !== "object" || cause === null || !("errno" in cause)) {
|
|
38
|
+
return undefined
|
|
39
|
+
}
|
|
40
|
+
const errno = cause.errno
|
|
41
|
+
return typeof errno === "number" ? errno : undefined
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const mysqlConnectionErrorCodes = new Set([1040, 1042, 1043, 1129, 1130, 1203])
|
|
45
|
+
const mysqlAuthorizationErrorCodes = new Set([1044, 1142, 1143, 1227])
|
|
46
|
+
const mysqlSyntaxErrorCodes = new Set([1054, 1064, 1146])
|
|
47
|
+
const mysqlConstraintErrorCodes = new Set([1022, 1048, 1062, 1169, 1216, 1217, 1451, 1452, 1557])
|
|
48
|
+
|
|
49
|
+
const classifyError = (
|
|
50
|
+
cause: unknown,
|
|
51
|
+
message: string,
|
|
52
|
+
operation: string
|
|
53
|
+
) => {
|
|
54
|
+
const props = { cause, message, operation }
|
|
55
|
+
const errno = mysqlErrnoFromCause(cause)
|
|
56
|
+
if (errno !== undefined) {
|
|
57
|
+
if (mysqlConnectionErrorCodes.has(errno)) {
|
|
58
|
+
return new ConnectionError(props)
|
|
59
|
+
}
|
|
60
|
+
if (errno === 1045) {
|
|
61
|
+
return new AuthenticationError(props)
|
|
62
|
+
}
|
|
63
|
+
if (mysqlAuthorizationErrorCodes.has(errno)) {
|
|
64
|
+
return new AuthorizationError(props)
|
|
65
|
+
}
|
|
66
|
+
if (mysqlSyntaxErrorCodes.has(errno)) {
|
|
67
|
+
return new SqlSyntaxError(props)
|
|
68
|
+
}
|
|
69
|
+
if (mysqlConstraintErrorCodes.has(errno)) {
|
|
70
|
+
return new ConstraintError(props)
|
|
71
|
+
}
|
|
72
|
+
if (errno === 1213) {
|
|
73
|
+
return new DeadlockError(props)
|
|
74
|
+
}
|
|
75
|
+
if (errno === 1205) {
|
|
76
|
+
return new LockTimeoutError(props)
|
|
77
|
+
}
|
|
78
|
+
if (errno === 3024) {
|
|
79
|
+
return new StatementTimeoutError(props)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return new UnknownError(props)
|
|
83
|
+
}
|
|
84
|
+
|
|
25
85
|
/**
|
|
26
86
|
* @category type ids
|
|
27
87
|
* @since 1.0.0
|
|
@@ -66,7 +126,7 @@ export interface MysqlClientConfig {
|
|
|
66
126
|
readonly password?: Redacted.Redacted | undefined
|
|
67
127
|
|
|
68
128
|
readonly maxConnections?: number | undefined
|
|
69
|
-
readonly connectionTTL?: Duration.
|
|
129
|
+
readonly connectionTTL?: Duration.Input | undefined
|
|
70
130
|
|
|
71
131
|
readonly poolConfig?: Mysql.PoolOptions | undefined
|
|
72
132
|
|
|
@@ -104,13 +164,16 @@ export const make = (
|
|
|
104
164
|
method: "execute" | "query" = "execute"
|
|
105
165
|
) {
|
|
106
166
|
return Effect.callback<unknown, SqlError>((resume) => {
|
|
167
|
+
const operation = method === "query" ? "executeUnprepared" : "execute"
|
|
107
168
|
;(this.conn as any)[method]({
|
|
108
169
|
sql,
|
|
109
170
|
values,
|
|
110
171
|
rowsAsArray
|
|
111
172
|
}, (cause: unknown | null, results: unknown, _fields: any) => {
|
|
112
173
|
if (cause) {
|
|
113
|
-
resume(
|
|
174
|
+
resume(
|
|
175
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", operation) }))
|
|
176
|
+
)
|
|
114
177
|
} else {
|
|
115
178
|
resume(Effect.succeed(results))
|
|
116
179
|
}
|
|
@@ -172,7 +235,7 @@ export const make = (
|
|
|
172
235
|
supportBigNumbers: true,
|
|
173
236
|
connectionLimit: options.maxConnections!,
|
|
174
237
|
idleTimeout: options.connectionTTL
|
|
175
|
-
? Duration.toMillis(Duration.
|
|
238
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.connectionTTL))
|
|
176
239
|
: undefined as any
|
|
177
240
|
})
|
|
178
241
|
: Mysql.createPool({
|
|
@@ -188,7 +251,7 @@ export const make = (
|
|
|
188
251
|
supportBigNumbers: true,
|
|
189
252
|
connectionLimit: options.maxConnections,
|
|
190
253
|
idleTimeout: options.connectionTTL
|
|
191
|
-
? Duration.toMillis(Duration.
|
|
254
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.connectionTTL))
|
|
192
255
|
: undefined
|
|
193
256
|
} as Mysql.PoolOptions)
|
|
194
257
|
|
|
@@ -198,8 +261,7 @@ export const make = (
|
|
|
198
261
|
if (cause) {
|
|
199
262
|
resume(Effect.fail(
|
|
200
263
|
new SqlError({
|
|
201
|
-
cause,
|
|
202
|
-
message: "MysqlClient: Failed to connect"
|
|
264
|
+
reason: classifyError(cause, "MysqlClient: Failed to connect", "connect")
|
|
203
265
|
})
|
|
204
266
|
))
|
|
205
267
|
} else {
|
|
@@ -214,11 +276,14 @@ export const make = (
|
|
|
214
276
|
).pipe(
|
|
215
277
|
Effect.timeoutOrElse({
|
|
216
278
|
duration: Duration.seconds(5),
|
|
217
|
-
|
|
279
|
+
orElse: () =>
|
|
218
280
|
Effect.fail(
|
|
219
281
|
new SqlError({
|
|
220
|
-
|
|
221
|
-
|
|
282
|
+
reason: new ConnectionError({
|
|
283
|
+
message: "MysqlClient: Connection timeout",
|
|
284
|
+
cause: new Error("connection timeout"),
|
|
285
|
+
operation: "connect"
|
|
286
|
+
})
|
|
222
287
|
})
|
|
223
288
|
)
|
|
224
289
|
})
|
|
@@ -230,7 +295,13 @@ export const make = (
|
|
|
230
295
|
Effect.callback<Mysql.PoolConnection, SqlError>((resume) => {
|
|
231
296
|
pool.getConnection((cause, conn) => {
|
|
232
297
|
if (cause) {
|
|
233
|
-
resume(
|
|
298
|
+
resume(
|
|
299
|
+
Effect.fail(
|
|
300
|
+
new SqlError({
|
|
301
|
+
reason: classifyError(cause, "Failed to acquire connection", "acquireConnection")
|
|
302
|
+
})
|
|
303
|
+
)
|
|
304
|
+
)
|
|
234
305
|
} else {
|
|
235
306
|
resume(Effect.succeed(conn))
|
|
236
307
|
}
|
|
@@ -335,7 +406,11 @@ function queryStream(
|
|
|
335
406
|
|
|
336
407
|
let buffer: Array<any> = []
|
|
337
408
|
let taskPending = false
|
|
338
|
-
query.on(
|
|
409
|
+
query.on(
|
|
410
|
+
"error",
|
|
411
|
+
(cause: unknown) =>
|
|
412
|
+
emit.fail(new SqlError({ reason: classifyError(cause, "Failed to stream statement", "stream") }))
|
|
413
|
+
)
|
|
339
414
|
query.on("data", (row: any) => {
|
|
340
415
|
buffer.push(row)
|
|
341
416
|
if (!taskPending) {
|