@effect/sql-mysql2 4.0.0-beta.36 → 4.0.0-beta.37

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MysqlClient.d.ts","sourceRoot":"","sources":["../src/MysqlClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MysqlClient.d.ts","sourceRoot":"","sources":["../src/MysqlClient.ts"],"names":[],"mappings":"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"}
@@ -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));
@@ -102,8 +147,7 @@ export const make = options => Effect.gen(function* () {
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);
@@ -114,8 +158,11 @@ export const make = options => Effect.gen(function* () {
114
158
  })).pipe(Effect.timeoutOrElse({
115
159
  duration: Duration.seconds(5),
116
160
  onTimeout: () => Effect.fail(new SqlError({
117
- message: "MysqlClient: Connection timeout",
118
- cause: new Error("connection timeout")
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);
@@ -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","fromInputUnsafe","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","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-mysql2",
3
- "version": "4.0.0-beta.36",
3
+ "version": "4.0.0-beta.37",
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.36"
47
+ "effect": "^4.0.0-beta.37"
48
48
  },
49
49
  "peerDependencies": {
50
- "effect": "^4.0.0-beta.36"
50
+ "effect": "^4.0.0-beta.37"
51
51
  },
52
52
  "dependencies": {
53
53
  "mysql2": "^3.16.2"
@@ -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 { SqlError } from "effect/unstable/sql/SqlError"
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
@@ -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(Effect.fail(new SqlError({ cause, message: "Failed to execute statement" })))
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
  }
@@ -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 {
@@ -217,8 +279,11 @@ export const make = (
217
279
  onTimeout: () =>
218
280
  Effect.fail(
219
281
  new SqlError({
220
- message: "MysqlClient: Connection timeout",
221
- cause: new Error("connection timeout")
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(Effect.fail(new SqlError({ cause, message: "Failed to acquire connection" })))
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("error", (cause: unknown) => emit.fail(new SqlError({ cause, message: "Failed to stream statement" })))
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) {