@effect/sql-mssql 4.0.0-beta.36 → 4.0.0-beta.38
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/MssqlClient.d.ts.map +1 -1
- package/dist/MssqlClient.js +62 -22
- package/dist/MssqlClient.js.map +1 -1
- package/package.json +3 -3
- package/src/MssqlClient.ts +106 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MssqlClient.d.ts","sourceRoot":"","sources":["../src/MssqlClient.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;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,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":"MssqlClient.d.ts","sourceRoot":"","sources":["../src/MssqlClient.ts"],"names":[],"mappings":"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"}
|
package/dist/MssqlClient.js
CHANGED
|
@@ -13,13 +13,60 @@ import * as ServiceMap from "effect/ServiceMap";
|
|
|
13
13
|
import * as Stream from "effect/Stream";
|
|
14
14
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
15
15
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
16
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
16
|
+
import { AuthenticationError, AuthorizationError, ConnectionError, ConstraintError, DeadlockError, LockTimeoutError, SerializationError, SqlError, SqlSyntaxError, UnknownError } from "effect/unstable/sql/SqlError";
|
|
17
17
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
18
18
|
import * as Tedious from "tedious";
|
|
19
19
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
20
20
|
const ATTR_DB_NAMESPACE = "db.namespace";
|
|
21
21
|
const ATTR_SERVER_ADDRESS = "server.address";
|
|
22
22
|
const ATTR_SERVER_PORT = "server.port";
|
|
23
|
+
const mssqlNumberFromCause = cause => {
|
|
24
|
+
if (typeof cause !== "object" || cause === null || !("number" in cause)) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const number = cause.number;
|
|
28
|
+
return typeof number === "number" ? number : undefined;
|
|
29
|
+
};
|
|
30
|
+
const mssqlConnectionErrorCodes = /*#__PURE__*/new Set([233, 10054]);
|
|
31
|
+
const mssqlAuthenticationErrorCodes = /*#__PURE__*/new Set([4060, 18452, 18456]);
|
|
32
|
+
const mssqlAuthorizationErrorCodes = /*#__PURE__*/new Set([229, 230, 262, 297, 300]);
|
|
33
|
+
const mssqlSyntaxErrorCodes = /*#__PURE__*/new Set([102, 207, 208, 2714]);
|
|
34
|
+
const mssqlConstraintErrorCodes = /*#__PURE__*/new Set([515, 547, 2601, 2627]);
|
|
35
|
+
const classifyError = (cause, message, operation, fallback = "unknown") => {
|
|
36
|
+
const props = {
|
|
37
|
+
cause,
|
|
38
|
+
message,
|
|
39
|
+
operation
|
|
40
|
+
};
|
|
41
|
+
const number = mssqlNumberFromCause(cause);
|
|
42
|
+
if (number !== undefined) {
|
|
43
|
+
if (mssqlConnectionErrorCodes.has(number)) {
|
|
44
|
+
return new ConnectionError(props);
|
|
45
|
+
}
|
|
46
|
+
if (mssqlAuthenticationErrorCodes.has(number)) {
|
|
47
|
+
return new AuthenticationError(props);
|
|
48
|
+
}
|
|
49
|
+
if (mssqlAuthorizationErrorCodes.has(number)) {
|
|
50
|
+
return new AuthorizationError(props);
|
|
51
|
+
}
|
|
52
|
+
if (mssqlSyntaxErrorCodes.has(number)) {
|
|
53
|
+
return new SqlSyntaxError(props);
|
|
54
|
+
}
|
|
55
|
+
if (mssqlConstraintErrorCodes.has(number)) {
|
|
56
|
+
return new ConstraintError(props);
|
|
57
|
+
}
|
|
58
|
+
if (number === 1205) {
|
|
59
|
+
return new DeadlockError(props);
|
|
60
|
+
}
|
|
61
|
+
if (number === 3960) {
|
|
62
|
+
return new SerializationError(props);
|
|
63
|
+
}
|
|
64
|
+
if (number === 1222) {
|
|
65
|
+
return new LockTimeoutError(props);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return fallback === "connection" ? new ConnectionError(props) : new UnknownError(props);
|
|
69
|
+
};
|
|
23
70
|
/**
|
|
24
71
|
* @category type ids
|
|
25
72
|
* @since 1.0.0
|
|
@@ -68,8 +115,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
68
115
|
conn.connect(cause => {
|
|
69
116
|
if (cause) {
|
|
70
117
|
resume(Effect.fail(new SqlError({
|
|
71
|
-
cause,
|
|
72
|
-
message: "Failed to connect"
|
|
118
|
+
reason: classifyError(cause, "Failed to connect", "connect", "connection")
|
|
73
119
|
})));
|
|
74
120
|
} else {
|
|
75
121
|
resume(Effect.void);
|
|
@@ -80,8 +126,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
80
126
|
const req = new Tedious.Request(sql, (cause, _rowCount, result) => {
|
|
81
127
|
if (cause) {
|
|
82
128
|
resume(Effect.fail(new SqlError({
|
|
83
|
-
cause,
|
|
84
|
-
message: "Failed to execute statement"
|
|
129
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
85
130
|
})));
|
|
86
131
|
return;
|
|
87
132
|
}
|
|
@@ -113,8 +158,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
113
158
|
const req = new Tedious.Request(escape(procedure.name), (cause, _, rows) => {
|
|
114
159
|
if (cause) {
|
|
115
160
|
resume(Effect.fail(new SqlError({
|
|
116
|
-
cause,
|
|
117
|
-
message: "Failed to execute statement"
|
|
161
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
118
162
|
})));
|
|
119
163
|
} else {
|
|
120
164
|
rows = rowsToObjects(rows);
|
|
@@ -165,8 +209,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
165
209
|
conn.beginTransaction(cause => {
|
|
166
210
|
if (cause) {
|
|
167
211
|
resume(Effect.fail(new SqlError({
|
|
168
|
-
cause,
|
|
169
|
-
message: "Failed to begin transaction"
|
|
212
|
+
reason: classifyError(cause, "Failed to begin transaction", "beginTransaction")
|
|
170
213
|
})));
|
|
171
214
|
} else {
|
|
172
215
|
resume(Effect.void);
|
|
@@ -177,8 +220,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
177
220
|
conn.commitTransaction(cause => {
|
|
178
221
|
if (cause) {
|
|
179
222
|
resume(Effect.fail(new SqlError({
|
|
180
|
-
cause,
|
|
181
|
-
message: "Failed to commit transaction"
|
|
223
|
+
reason: classifyError(cause, "Failed to commit transaction", "commitTransaction")
|
|
182
224
|
})));
|
|
183
225
|
} else {
|
|
184
226
|
resume(Effect.void);
|
|
@@ -189,8 +231,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
189
231
|
conn.saveTransaction(cause => {
|
|
190
232
|
if (cause) {
|
|
191
233
|
resume(Effect.fail(new SqlError({
|
|
192
|
-
cause,
|
|
193
|
-
message: "Failed to create savepoint"
|
|
234
|
+
reason: classifyError(cause, "Failed to create savepoint", "createSavepoint")
|
|
194
235
|
})));
|
|
195
236
|
} else {
|
|
196
237
|
resume(Effect.void);
|
|
@@ -201,8 +242,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
201
242
|
conn.rollbackTransaction(cause => {
|
|
202
243
|
if (cause) {
|
|
203
244
|
resume(Effect.fail(new SqlError({
|
|
204
|
-
cause,
|
|
205
|
-
message: "Failed to rollback transaction"
|
|
245
|
+
reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction")
|
|
206
246
|
})));
|
|
207
247
|
} else {
|
|
208
248
|
resume(Effect.void);
|
|
@@ -222,16 +262,16 @@ export const make = options => Effect.gen(function* () {
|
|
|
222
262
|
timeToLive: options.connectionTTL ?? Duration.minutes(45),
|
|
223
263
|
timeToLiveStrategy: "creation"
|
|
224
264
|
});
|
|
225
|
-
yield* Pool.get(pool).pipe(Effect.tap(connection => connection.executeUnprepared("SELECT 1", [], undefined)), Effect.mapError(({
|
|
226
|
-
cause
|
|
227
|
-
}) => new SqlError({
|
|
228
|
-
cause,
|
|
229
|
-
message: "MssqlClient: Failed to connect"
|
|
265
|
+
yield* Pool.get(pool).pipe(Effect.tap(connection => connection.executeUnprepared("SELECT 1", [], undefined)), Effect.mapError(cause => new SqlError({
|
|
266
|
+
reason: classifyError(cause, "MssqlClient: Failed to connect", "connect", "connection")
|
|
230
267
|
})), Effect.scoped, Effect.timeoutOrElse({
|
|
231
268
|
duration: options.connectTimeout ?? Duration.seconds(5),
|
|
232
269
|
onTimeout: () => Effect.fail(new SqlError({
|
|
233
|
-
|
|
234
|
-
|
|
270
|
+
reason: new ConnectionError({
|
|
271
|
+
message: "MssqlClient: Connection timeout",
|
|
272
|
+
cause: new Error("connection timeout"),
|
|
273
|
+
operation: "connect"
|
|
274
|
+
})
|
|
235
275
|
}))
|
|
236
276
|
}));
|
|
237
277
|
const withTransaction = Client.makeWithTransaction({
|
package/dist/MssqlClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MssqlClient.js","names":["Config","Duration","Effect","identity","Layer","Pool","Redacted","Scope","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","Tedious","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","TypeId","Symbol","for","MssqlClient","Service","TransactionConnection","make","options","gen","parameterTypes","defaultParameterTypes","compiler","makeCompiler","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","spanAttributes","Object","entries","database","server","port","pool","makeConnection","conn","Connection","trustServerCertificate","trustServer","connectTimeout","toMillis","fromInputUnsafe","rowCollectionOnRequestCompletion","useColumnNames","instanceName","encrypt","authentication","type","authType","userName","username","password","value","addFinalizer","sync","close","callback","resume","connect","cause","fail","message","void","run","sql","values","rowsAsArray","req","Request","_rowCount","result","map","row","_","rowsToObjects","succeed","i","len","length","name","numberToParamName","isMssqlParam","addParameter","paramA","paramB","paramC","kind","primitiveKind","cancel","execSql","runProcedure","procedure","escape","rows","params","param","outputParams","addOutputParameter","on","callProcedure","connection","execute","executeRaw","executeValues","executeUnprepared","executeStream","die","call","begin","beginTransaction","commit","commitTransaction","savepoint","saveTransaction","rollback","rollbackTransaction","pipe","catch","invalidate","interruptible","forkScoped","makeWithTTL","acquire","min","minConnections","max","maxConnections","timeToLive","connectionTTL","minutes","timeToLiveStrategy","get","tap","mapError","scoped","timeoutOrElse","duration","seconds","onTimeout","Error","withTransaction","makeWithTransaction","transactionService","acquireConnection","scope","makeUnsafe","provide","id","rollbackSavepoint","assign","acquirer","config","fragment","mssqlParam","flatMap","withoutTransforms","statement","withoutTransform","client","safe","layerConfig","effectServices","unwrap","asEffect","add","SqlClient","layer","transform","dialect","placeholder","onIdentifier","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","returningSql","concat","flat","onCustom","onInsert","columns","join","str","replace","n","Math","ceil","string","TYPES","VarChar","number","Int","bigint","BigInt","boolean","Bit","Date","DateTime","Uint8Array","VarBinary","Int8Array","null","custom","isCustom","newRows","Array","newRow","j","columnLen","column","metadata","colName"],"sources":["../src/MssqlClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MssqlClient.js","names":["Config","Duration","Effect","identity","Layer","Pool","Redacted","Scope","ServiceMap","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SerializationError","SqlError","SqlSyntaxError","UnknownError","Statement","Tedious","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","mssqlNumberFromCause","cause","undefined","number","mssqlConnectionErrorCodes","Set","mssqlAuthenticationErrorCodes","mssqlAuthorizationErrorCodes","mssqlSyntaxErrorCodes","mssqlConstraintErrorCodes","classifyError","message","operation","fallback","props","has","TypeId","Symbol","for","MssqlClient","Service","TransactionConnection","make","options","gen","parameterTypes","defaultParameterTypes","compiler","makeCompiler","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","spanAttributes","Object","entries","database","server","port","pool","makeConnection","conn","Connection","trustServerCertificate","trustServer","connectTimeout","toMillis","fromInputUnsafe","rowCollectionOnRequestCompletion","useColumnNames","instanceName","encrypt","authentication","type","authType","userName","username","password","value","addFinalizer","sync","close","callback","resume","connect","fail","reason","void","run","sql","values","rowsAsArray","req","Request","_rowCount","result","map","row","_","rowsToObjects","succeed","i","len","length","name","numberToParamName","isMssqlParam","addParameter","paramA","paramB","paramC","kind","primitiveKind","cancel","execSql","runProcedure","procedure","escape","rows","params","param","outputParams","addOutputParameter","on","callProcedure","connection","execute","executeRaw","executeValues","executeUnprepared","executeStream","die","call","begin","beginTransaction","commit","commitTransaction","savepoint","saveTransaction","rollback","rollbackTransaction","pipe","catch","invalidate","interruptible","forkScoped","makeWithTTL","acquire","min","minConnections","max","maxConnections","timeToLive","connectionTTL","minutes","timeToLiveStrategy","get","tap","mapError","scoped","timeoutOrElse","duration","seconds","onTimeout","Error","withTransaction","makeWithTransaction","transactionService","acquireConnection","scope","makeUnsafe","provide","id","rollbackSavepoint","assign","acquirer","config","fragment","mssqlParam","flatMap","withoutTransforms","statement","withoutTransform","client","safe","layerConfig","effectServices","unwrap","asEffect","add","SqlClient","layer","transform","dialect","placeholder","onIdentifier","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","returningSql","concat","flat","onCustom","onInsert","columns","join","str","replace","n","Math","ceil","string","TYPES","VarChar","Int","bigint","BigInt","boolean","Bit","Date","DateTime","Uint8Array","VarBinary","Int8Array","null","custom","isCustom","newRows","Array","newRow","j","columnLen","column","metadata","colName"],"sources":["../src/MssqlClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-mssql",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.38",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A Microsoft SQL Server toolkit for Effect",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"effect": "^4.0.0-beta.38"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"effect": "^4.0.0-beta.
|
|
49
|
+
"effect": "^4.0.0-beta.38"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"tedious": "^19.2.0"
|
package/src/MssqlClient.ts
CHANGED
|
@@ -14,7 +14,18 @@ import * as Stream from "effect/Stream"
|
|
|
14
14
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity"
|
|
15
15
|
import * as Client from "effect/unstable/sql/SqlClient"
|
|
16
16
|
import type { Connection } from "effect/unstable/sql/SqlConnection"
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
AuthenticationError,
|
|
19
|
+
AuthorizationError,
|
|
20
|
+
ConnectionError,
|
|
21
|
+
ConstraintError,
|
|
22
|
+
DeadlockError,
|
|
23
|
+
LockTimeoutError,
|
|
24
|
+
SerializationError,
|
|
25
|
+
SqlError,
|
|
26
|
+
SqlSyntaxError,
|
|
27
|
+
UnknownError
|
|
28
|
+
} from "effect/unstable/sql/SqlError"
|
|
18
29
|
import * as Statement from "effect/unstable/sql/Statement"
|
|
19
30
|
import * as Tedious from "tedious"
|
|
20
31
|
import type { ConnectionOptions } from "tedious/lib/connection.ts"
|
|
@@ -28,6 +39,57 @@ const ATTR_DB_NAMESPACE = "db.namespace"
|
|
|
28
39
|
const ATTR_SERVER_ADDRESS = "server.address"
|
|
29
40
|
const ATTR_SERVER_PORT = "server.port"
|
|
30
41
|
|
|
42
|
+
const mssqlNumberFromCause = (cause: unknown): number | undefined => {
|
|
43
|
+
if (typeof cause !== "object" || cause === null || !("number" in cause)) {
|
|
44
|
+
return undefined
|
|
45
|
+
}
|
|
46
|
+
const number = cause.number
|
|
47
|
+
return typeof number === "number" ? number : undefined
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const mssqlConnectionErrorCodes = new Set([233, 10054])
|
|
51
|
+
const mssqlAuthenticationErrorCodes = new Set([4060, 18452, 18456])
|
|
52
|
+
const mssqlAuthorizationErrorCodes = new Set([229, 230, 262, 297, 300])
|
|
53
|
+
const mssqlSyntaxErrorCodes = new Set([102, 207, 208, 2714])
|
|
54
|
+
const mssqlConstraintErrorCodes = new Set([515, 547, 2601, 2627])
|
|
55
|
+
|
|
56
|
+
const classifyError = (
|
|
57
|
+
cause: unknown,
|
|
58
|
+
message: string,
|
|
59
|
+
operation: string,
|
|
60
|
+
fallback: "connection" | "unknown" = "unknown"
|
|
61
|
+
) => {
|
|
62
|
+
const props = { cause, message, operation }
|
|
63
|
+
const number = mssqlNumberFromCause(cause)
|
|
64
|
+
if (number !== undefined) {
|
|
65
|
+
if (mssqlConnectionErrorCodes.has(number)) {
|
|
66
|
+
return new ConnectionError(props)
|
|
67
|
+
}
|
|
68
|
+
if (mssqlAuthenticationErrorCodes.has(number)) {
|
|
69
|
+
return new AuthenticationError(props)
|
|
70
|
+
}
|
|
71
|
+
if (mssqlAuthorizationErrorCodes.has(number)) {
|
|
72
|
+
return new AuthorizationError(props)
|
|
73
|
+
}
|
|
74
|
+
if (mssqlSyntaxErrorCodes.has(number)) {
|
|
75
|
+
return new SqlSyntaxError(props)
|
|
76
|
+
}
|
|
77
|
+
if (mssqlConstraintErrorCodes.has(number)) {
|
|
78
|
+
return new ConstraintError(props)
|
|
79
|
+
}
|
|
80
|
+
if (number === 1205) {
|
|
81
|
+
return new DeadlockError(props)
|
|
82
|
+
}
|
|
83
|
+
if (number === 3960) {
|
|
84
|
+
return new SerializationError(props)
|
|
85
|
+
}
|
|
86
|
+
if (number === 1222) {
|
|
87
|
+
return new LockTimeoutError(props)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return fallback === "connection" ? new ConnectionError(props) : new UnknownError(props)
|
|
91
|
+
}
|
|
92
|
+
|
|
31
93
|
/**
|
|
32
94
|
* @category type ids
|
|
33
95
|
* @since 1.0.0
|
|
@@ -174,7 +236,9 @@ export const make = (
|
|
|
174
236
|
yield* Effect.callback<void, SqlError>((resume) => {
|
|
175
237
|
conn.connect((cause) => {
|
|
176
238
|
if (cause) {
|
|
177
|
-
resume(
|
|
239
|
+
resume(
|
|
240
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to connect", "connect", "connection") }))
|
|
241
|
+
)
|
|
178
242
|
} else {
|
|
179
243
|
resume(Effect.void)
|
|
180
244
|
}
|
|
@@ -189,7 +253,9 @@ export const make = (
|
|
|
189
253
|
Effect.callback<any, SqlError>((resume) => {
|
|
190
254
|
const req = new Tedious.Request(sql, (cause, _rowCount, result) => {
|
|
191
255
|
if (cause) {
|
|
192
|
-
resume(
|
|
256
|
+
resume(
|
|
257
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
|
|
258
|
+
)
|
|
193
259
|
return
|
|
194
260
|
}
|
|
195
261
|
|
|
@@ -232,7 +298,9 @@ export const make = (
|
|
|
232
298
|
escape(procedure.name),
|
|
233
299
|
(cause, _, rows) => {
|
|
234
300
|
if (cause) {
|
|
235
|
-
resume(
|
|
301
|
+
resume(
|
|
302
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
|
|
303
|
+
)
|
|
236
304
|
} else {
|
|
237
305
|
rows = rowsToObjects(rows)
|
|
238
306
|
if (transformRows) {
|
|
@@ -291,7 +359,13 @@ export const make = (
|
|
|
291
359
|
begin: Effect.callback<void, SqlError>((resume) => {
|
|
292
360
|
conn.beginTransaction((cause) => {
|
|
293
361
|
if (cause) {
|
|
294
|
-
resume(
|
|
362
|
+
resume(
|
|
363
|
+
Effect.fail(
|
|
364
|
+
new SqlError({
|
|
365
|
+
reason: classifyError(cause, "Failed to begin transaction", "beginTransaction")
|
|
366
|
+
})
|
|
367
|
+
)
|
|
368
|
+
)
|
|
295
369
|
} else {
|
|
296
370
|
resume(Effect.void)
|
|
297
371
|
}
|
|
@@ -300,7 +374,13 @@ export const make = (
|
|
|
300
374
|
commit: Effect.callback<void, SqlError>((resume) => {
|
|
301
375
|
conn.commitTransaction((cause) => {
|
|
302
376
|
if (cause) {
|
|
303
|
-
resume(
|
|
377
|
+
resume(
|
|
378
|
+
Effect.fail(
|
|
379
|
+
new SqlError({
|
|
380
|
+
reason: classifyError(cause, "Failed to commit transaction", "commitTransaction")
|
|
381
|
+
})
|
|
382
|
+
)
|
|
383
|
+
)
|
|
304
384
|
} else {
|
|
305
385
|
resume(Effect.void)
|
|
306
386
|
}
|
|
@@ -310,7 +390,11 @@ export const make = (
|
|
|
310
390
|
Effect.callback<void, SqlError>((resume) => {
|
|
311
391
|
conn.saveTransaction((cause) => {
|
|
312
392
|
if (cause) {
|
|
313
|
-
resume(
|
|
393
|
+
resume(
|
|
394
|
+
Effect.fail(
|
|
395
|
+
new SqlError({ reason: classifyError(cause, "Failed to create savepoint", "createSavepoint") })
|
|
396
|
+
)
|
|
397
|
+
)
|
|
314
398
|
} else {
|
|
315
399
|
resume(Effect.void)
|
|
316
400
|
}
|
|
@@ -320,7 +404,13 @@ export const make = (
|
|
|
320
404
|
Effect.callback<void, SqlError>((resume) => {
|
|
321
405
|
conn.rollbackTransaction((cause) => {
|
|
322
406
|
if (cause) {
|
|
323
|
-
resume(
|
|
407
|
+
resume(
|
|
408
|
+
Effect.fail(
|
|
409
|
+
new SqlError({
|
|
410
|
+
reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction")
|
|
411
|
+
})
|
|
412
|
+
)
|
|
413
|
+
)
|
|
324
414
|
} else {
|
|
325
415
|
resume(Effect.void)
|
|
326
416
|
}
|
|
@@ -349,15 +439,20 @@ export const make = (
|
|
|
349
439
|
|
|
350
440
|
yield* Pool.get(pool).pipe(
|
|
351
441
|
Effect.tap((connection) => connection.executeUnprepared("SELECT 1", [], undefined)),
|
|
352
|
-
Effect.mapError((
|
|
442
|
+
Effect.mapError((cause) =>
|
|
443
|
+
new SqlError({ reason: classifyError(cause, "MssqlClient: Failed to connect", "connect", "connection") })
|
|
444
|
+
),
|
|
353
445
|
Effect.scoped,
|
|
354
446
|
Effect.timeoutOrElse({
|
|
355
447
|
duration: options.connectTimeout ?? Duration.seconds(5),
|
|
356
448
|
onTimeout: () =>
|
|
357
449
|
Effect.fail(
|
|
358
450
|
new SqlError({
|
|
359
|
-
|
|
360
|
-
|
|
451
|
+
reason: new ConnectionError({
|
|
452
|
+
message: "MssqlClient: Connection timeout",
|
|
453
|
+
cause: new Error("connection timeout"),
|
|
454
|
+
operation: "connect"
|
|
455
|
+
})
|
|
361
456
|
})
|
|
362
457
|
)
|
|
363
458
|
})
|