@effect/sql-mssql 4.0.0-beta.6 → 4.0.0-beta.60
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 +4 -4
- package/dist/MssqlClient.d.ts.map +1 -1
- package/dist/MssqlClient.js +72 -29
- package/dist/MssqlClient.js.map +1 -1
- package/package.json +4 -4
- package/src/MssqlClient.ts +125 -25
package/dist/MssqlClient.d.ts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Config from "effect/Config";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
5
6
|
import * as Duration from "effect/Duration";
|
|
6
7
|
import * as Effect from "effect/Effect";
|
|
7
8
|
import * as Layer from "effect/Layer";
|
|
8
9
|
import * as Redacted from "effect/Redacted";
|
|
9
10
|
import * as Scope from "effect/Scope";
|
|
10
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
11
11
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
12
12
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
13
13
|
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
@@ -40,7 +40,7 @@ export interface MssqlClient extends Client.SqlClient {
|
|
|
40
40
|
* @category tags
|
|
41
41
|
* @since 1.0.0
|
|
42
42
|
*/
|
|
43
|
-
export declare const MssqlClient:
|
|
43
|
+
export declare const MssqlClient: Context.Service<MssqlClient, MssqlClient>;
|
|
44
44
|
/**
|
|
45
45
|
* @category models
|
|
46
46
|
* @since 1.0.0
|
|
@@ -56,10 +56,10 @@ export interface MssqlClientConfig {
|
|
|
56
56
|
readonly database?: string | undefined;
|
|
57
57
|
readonly username?: string | undefined;
|
|
58
58
|
readonly password?: Redacted.Redacted | undefined;
|
|
59
|
-
readonly connectTimeout?: Duration.
|
|
59
|
+
readonly connectTimeout?: Duration.Input | undefined;
|
|
60
60
|
readonly minConnections?: number | undefined;
|
|
61
61
|
readonly maxConnections?: number | undefined;
|
|
62
|
-
readonly connectionTTL?: Duration.
|
|
62
|
+
readonly connectionTTL?: Duration.Input | undefined;
|
|
63
63
|
readonly parameterTypes?: Record<Statement.PrimitiveKind, DataType> | undefined;
|
|
64
64
|
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
65
65
|
readonly transformResultNames?: ((str: string) => string) | undefined;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"MssqlClient.d.ts","sourceRoot":"","sources":["../src/MssqlClient.ts"],"names":[],"mappings":"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"}
|
package/dist/MssqlClient.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Config from "effect/Config";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
5
6
|
import * as Duration from "effect/Duration";
|
|
6
7
|
import * as Effect from "effect/Effect";
|
|
7
8
|
import { identity } from "effect/Function";
|
|
@@ -9,17 +10,63 @@ import * as Layer from "effect/Layer";
|
|
|
9
10
|
import * as Pool from "effect/Pool";
|
|
10
11
|
import * as Redacted from "effect/Redacted";
|
|
11
12
|
import * as Scope from "effect/Scope";
|
|
12
|
-
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
|
|
@@ -29,8 +76,9 @@ export const TypeId = /*#__PURE__*/Symbol.for("@effect/sql-mssql/MssqlClient");
|
|
|
29
76
|
* @category tags
|
|
30
77
|
* @since 1.0.0
|
|
31
78
|
*/
|
|
32
|
-
export const MssqlClient = /*#__PURE__*/
|
|
79
|
+
export const MssqlClient = /*#__PURE__*/Context.Service("@effect/sql-mssql/MssqlClient");
|
|
33
80
|
const TransactionConnection = Client.TransactionConnection;
|
|
81
|
+
let clientIdCounter = 0;
|
|
34
82
|
/**
|
|
35
83
|
* @category constructors
|
|
36
84
|
* @since 1.0.0
|
|
@@ -48,7 +96,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
48
96
|
port: options.port,
|
|
49
97
|
database: options.database,
|
|
50
98
|
trustServerCertificate: options.trustServer ?? true,
|
|
51
|
-
connectTimeout: options.connectTimeout ? Duration.toMillis(Duration.
|
|
99
|
+
connectTimeout: options.connectTimeout ? Duration.toMillis(Duration.fromInputUnsafe(options.connectTimeout)) : undefined,
|
|
52
100
|
rowCollectionOnRequestCompletion: true,
|
|
53
101
|
useColumnNames: false,
|
|
54
102
|
instanceName: options.instanceName,
|
|
@@ -68,8 +116,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
68
116
|
conn.connect(cause => {
|
|
69
117
|
if (cause) {
|
|
70
118
|
resume(Effect.fail(new SqlError({
|
|
71
|
-
cause,
|
|
72
|
-
message: "Failed to connect"
|
|
119
|
+
reason: classifyError(cause, "Failed to connect", "connect", "connection")
|
|
73
120
|
})));
|
|
74
121
|
} else {
|
|
75
122
|
resume(Effect.void);
|
|
@@ -80,8 +127,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
80
127
|
const req = new Tedious.Request(sql, (cause, _rowCount, result) => {
|
|
81
128
|
if (cause) {
|
|
82
129
|
resume(Effect.fail(new SqlError({
|
|
83
|
-
cause,
|
|
84
|
-
message: "Failed to execute statement"
|
|
130
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
85
131
|
})));
|
|
86
132
|
return;
|
|
87
133
|
}
|
|
@@ -113,8 +159,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
113
159
|
const req = new Tedious.Request(escape(procedure.name), (cause, _, rows) => {
|
|
114
160
|
if (cause) {
|
|
115
161
|
resume(Effect.fail(new SqlError({
|
|
116
|
-
cause,
|
|
117
|
-
message: "Failed to execute statement"
|
|
162
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
118
163
|
})));
|
|
119
164
|
} else {
|
|
120
165
|
rows = rowsToObjects(rows);
|
|
@@ -165,8 +210,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
165
210
|
conn.beginTransaction(cause => {
|
|
166
211
|
if (cause) {
|
|
167
212
|
resume(Effect.fail(new SqlError({
|
|
168
|
-
cause,
|
|
169
|
-
message: "Failed to begin transaction"
|
|
213
|
+
reason: classifyError(cause, "Failed to begin transaction", "beginTransaction")
|
|
170
214
|
})));
|
|
171
215
|
} else {
|
|
172
216
|
resume(Effect.void);
|
|
@@ -177,8 +221,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
177
221
|
conn.commitTransaction(cause => {
|
|
178
222
|
if (cause) {
|
|
179
223
|
resume(Effect.fail(new SqlError({
|
|
180
|
-
cause,
|
|
181
|
-
message: "Failed to commit transaction"
|
|
224
|
+
reason: classifyError(cause, "Failed to commit transaction", "commitTransaction")
|
|
182
225
|
})));
|
|
183
226
|
} else {
|
|
184
227
|
resume(Effect.void);
|
|
@@ -189,8 +232,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
189
232
|
conn.saveTransaction(cause => {
|
|
190
233
|
if (cause) {
|
|
191
234
|
resume(Effect.fail(new SqlError({
|
|
192
|
-
cause,
|
|
193
|
-
message: "Failed to create savepoint"
|
|
235
|
+
reason: classifyError(cause, "Failed to create savepoint", "createSavepoint")
|
|
194
236
|
})));
|
|
195
237
|
} else {
|
|
196
238
|
resume(Effect.void);
|
|
@@ -201,8 +243,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
201
243
|
conn.rollbackTransaction(cause => {
|
|
202
244
|
if (cause) {
|
|
203
245
|
resume(Effect.fail(new SqlError({
|
|
204
|
-
cause,
|
|
205
|
-
message: "Failed to rollback transaction"
|
|
246
|
+
reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction")
|
|
206
247
|
})));
|
|
207
248
|
} else {
|
|
208
249
|
resume(Effect.void);
|
|
@@ -222,20 +263,21 @@ export const make = options => Effect.gen(function* () {
|
|
|
222
263
|
timeToLive: options.connectionTTL ?? Duration.minutes(45),
|
|
223
264
|
timeToLiveStrategy: "creation"
|
|
224
265
|
});
|
|
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"
|
|
266
|
+
yield* Pool.get(pool).pipe(Effect.tap(connection => connection.executeUnprepared("SELECT 1", [], undefined)), Effect.mapError(cause => new SqlError({
|
|
267
|
+
reason: classifyError(cause, "MssqlClient: Failed to connect", "connect", "connection")
|
|
230
268
|
})), Effect.scoped, Effect.timeoutOrElse({
|
|
231
269
|
duration: options.connectTimeout ?? Duration.seconds(5),
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
270
|
+
orElse: () => Effect.fail(new SqlError({
|
|
271
|
+
reason: new ConnectionError({
|
|
272
|
+
message: "MssqlClient: Connection timeout",
|
|
273
|
+
cause: new Error("connection timeout"),
|
|
274
|
+
operation: "connect"
|
|
275
|
+
})
|
|
235
276
|
}))
|
|
236
277
|
}));
|
|
278
|
+
const transactionService = TransactionConnection(clientIdCounter++);
|
|
237
279
|
const withTransaction = Client.makeWithTransaction({
|
|
238
|
-
transactionService
|
|
280
|
+
transactionService,
|
|
239
281
|
spanAttributes,
|
|
240
282
|
acquireConnection: Effect.gen(function* () {
|
|
241
283
|
const scope = Scope.makeUnsafe();
|
|
@@ -251,6 +293,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
251
293
|
return identity(Object.assign(yield* Client.make({
|
|
252
294
|
acquirer: Pool.get(pool),
|
|
253
295
|
compiler,
|
|
296
|
+
transactionService: transactionService,
|
|
254
297
|
spanAttributes,
|
|
255
298
|
transformRows
|
|
256
299
|
}), {
|
|
@@ -274,12 +317,12 @@ export const make = options => Effect.gen(function* () {
|
|
|
274
317
|
* @category layers
|
|
275
318
|
* @since 1.0.0
|
|
276
319
|
*/
|
|
277
|
-
export const layerConfig = config => Layer.
|
|
320
|
+
export const layerConfig = config => Layer.effectContext(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => Context.make(MssqlClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
278
321
|
/**
|
|
279
322
|
* @category layers
|
|
280
323
|
* @since 1.0.0
|
|
281
324
|
*/
|
|
282
|
-
export const layer = config => Layer.
|
|
325
|
+
export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(MssqlClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
283
326
|
/**
|
|
284
327
|
* @category compiler
|
|
285
328
|
* @since 1.0.0
|
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","fromDurationInputUnsafe","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","Context","Duration","Effect","identity","Layer","Pool","Redacted","Scope","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","clientIdCounter","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","orElse","Error","transactionService","withTransaction","makeWithTransaction","acquireConnection","scope","makeUnsafe","provide","id","rollbackSavepoint","assign","acquirer","config","fragment","mssqlParam","flatMap","withoutTransforms","statement","withoutTransform","client","safe","layerConfig","effectContext","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.60",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A Microsoft SQL Server toolkit for Effect",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"effect": "^4.0.0-beta.60"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"effect": "^4.0.0-beta.
|
|
49
|
+
"effect": "^4.0.0-beta.60"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"tedious": "^19.2.
|
|
52
|
+
"tedious": "^19.2.1"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"codegen": "effect-utils codegen",
|
package/src/MssqlClient.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Config from "effect/Config"
|
|
5
|
+
import * as Context from "effect/Context"
|
|
5
6
|
import * as Duration from "effect/Duration"
|
|
6
7
|
import * as Effect from "effect/Effect"
|
|
7
8
|
import { identity } from "effect/Function"
|
|
@@ -9,12 +10,22 @@ import * as Layer from "effect/Layer"
|
|
|
9
10
|
import * as Pool from "effect/Pool"
|
|
10
11
|
import * as Redacted from "effect/Redacted"
|
|
11
12
|
import * as Scope from "effect/Scope"
|
|
12
|
-
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
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
|
|
@@ -68,7 +130,7 @@ export interface MssqlClient extends Client.SqlClient {
|
|
|
68
130
|
* @category tags
|
|
69
131
|
* @since 1.0.0
|
|
70
132
|
*/
|
|
71
|
-
export const MssqlClient =
|
|
133
|
+
export const MssqlClient = Context.Service<MssqlClient>("@effect/sql-mssql/MssqlClient")
|
|
72
134
|
|
|
73
135
|
/**
|
|
74
136
|
* @category models
|
|
@@ -85,11 +147,11 @@ export interface MssqlClientConfig {
|
|
|
85
147
|
readonly database?: string | undefined
|
|
86
148
|
readonly username?: string | undefined
|
|
87
149
|
readonly password?: Redacted.Redacted | undefined
|
|
88
|
-
readonly connectTimeout?: Duration.
|
|
150
|
+
readonly connectTimeout?: Duration.Input | undefined
|
|
89
151
|
|
|
90
152
|
readonly minConnections?: number | undefined
|
|
91
153
|
readonly maxConnections?: number | undefined
|
|
92
|
-
readonly connectionTTL?: Duration.
|
|
154
|
+
readonly connectionTTL?: Duration.Input | undefined
|
|
93
155
|
|
|
94
156
|
readonly parameterTypes?: Record<Statement.PrimitiveKind, DataType> | undefined
|
|
95
157
|
|
|
@@ -111,11 +173,13 @@ interface MssqlConnection extends Connection {
|
|
|
111
173
|
readonly rollback: (name?: string) => Effect.Effect<void, SqlError>
|
|
112
174
|
}
|
|
113
175
|
|
|
114
|
-
const TransactionConnection = Client.TransactionConnection as unknown as
|
|
176
|
+
const TransactionConnection = Client.TransactionConnection as unknown as (clientId: number) => Context.Service<
|
|
115
177
|
readonly [conn: MssqlConnection, counter: number],
|
|
116
178
|
readonly [conn: MssqlConnection, counter: number]
|
|
117
179
|
>
|
|
118
180
|
|
|
181
|
+
let clientIdCounter = 0
|
|
182
|
+
|
|
119
183
|
/**
|
|
120
184
|
* @category constructors
|
|
121
185
|
* @since 1.0.0
|
|
@@ -150,7 +214,7 @@ export const make = (
|
|
|
150
214
|
database: options.database,
|
|
151
215
|
trustServerCertificate: options.trustServer ?? true,
|
|
152
216
|
connectTimeout: options.connectTimeout
|
|
153
|
-
? Duration.toMillis(Duration.
|
|
217
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.connectTimeout))
|
|
154
218
|
: undefined,
|
|
155
219
|
rowCollectionOnRequestCompletion: true,
|
|
156
220
|
useColumnNames: false,
|
|
@@ -174,7 +238,9 @@ export const make = (
|
|
|
174
238
|
yield* Effect.callback<void, SqlError>((resume) => {
|
|
175
239
|
conn.connect((cause) => {
|
|
176
240
|
if (cause) {
|
|
177
|
-
resume(
|
|
241
|
+
resume(
|
|
242
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to connect", "connect", "connection") }))
|
|
243
|
+
)
|
|
178
244
|
} else {
|
|
179
245
|
resume(Effect.void)
|
|
180
246
|
}
|
|
@@ -189,7 +255,9 @@ export const make = (
|
|
|
189
255
|
Effect.callback<any, SqlError>((resume) => {
|
|
190
256
|
const req = new Tedious.Request(sql, (cause, _rowCount, result) => {
|
|
191
257
|
if (cause) {
|
|
192
|
-
resume(
|
|
258
|
+
resume(
|
|
259
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
|
|
260
|
+
)
|
|
193
261
|
return
|
|
194
262
|
}
|
|
195
263
|
|
|
@@ -232,7 +300,9 @@ export const make = (
|
|
|
232
300
|
escape(procedure.name),
|
|
233
301
|
(cause, _, rows) => {
|
|
234
302
|
if (cause) {
|
|
235
|
-
resume(
|
|
303
|
+
resume(
|
|
304
|
+
Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
|
|
305
|
+
)
|
|
236
306
|
} else {
|
|
237
307
|
rows = rowsToObjects(rows)
|
|
238
308
|
if (transformRows) {
|
|
@@ -291,7 +361,13 @@ export const make = (
|
|
|
291
361
|
begin: Effect.callback<void, SqlError>((resume) => {
|
|
292
362
|
conn.beginTransaction((cause) => {
|
|
293
363
|
if (cause) {
|
|
294
|
-
resume(
|
|
364
|
+
resume(
|
|
365
|
+
Effect.fail(
|
|
366
|
+
new SqlError({
|
|
367
|
+
reason: classifyError(cause, "Failed to begin transaction", "beginTransaction")
|
|
368
|
+
})
|
|
369
|
+
)
|
|
370
|
+
)
|
|
295
371
|
} else {
|
|
296
372
|
resume(Effect.void)
|
|
297
373
|
}
|
|
@@ -300,7 +376,13 @@ export const make = (
|
|
|
300
376
|
commit: Effect.callback<void, SqlError>((resume) => {
|
|
301
377
|
conn.commitTransaction((cause) => {
|
|
302
378
|
if (cause) {
|
|
303
|
-
resume(
|
|
379
|
+
resume(
|
|
380
|
+
Effect.fail(
|
|
381
|
+
new SqlError({
|
|
382
|
+
reason: classifyError(cause, "Failed to commit transaction", "commitTransaction")
|
|
383
|
+
})
|
|
384
|
+
)
|
|
385
|
+
)
|
|
304
386
|
} else {
|
|
305
387
|
resume(Effect.void)
|
|
306
388
|
}
|
|
@@ -310,7 +392,11 @@ export const make = (
|
|
|
310
392
|
Effect.callback<void, SqlError>((resume) => {
|
|
311
393
|
conn.saveTransaction((cause) => {
|
|
312
394
|
if (cause) {
|
|
313
|
-
resume(
|
|
395
|
+
resume(
|
|
396
|
+
Effect.fail(
|
|
397
|
+
new SqlError({ reason: classifyError(cause, "Failed to create savepoint", "createSavepoint") })
|
|
398
|
+
)
|
|
399
|
+
)
|
|
314
400
|
} else {
|
|
315
401
|
resume(Effect.void)
|
|
316
402
|
}
|
|
@@ -320,7 +406,13 @@ export const make = (
|
|
|
320
406
|
Effect.callback<void, SqlError>((resume) => {
|
|
321
407
|
conn.rollbackTransaction((cause) => {
|
|
322
408
|
if (cause) {
|
|
323
|
-
resume(
|
|
409
|
+
resume(
|
|
410
|
+
Effect.fail(
|
|
411
|
+
new SqlError({
|
|
412
|
+
reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction")
|
|
413
|
+
})
|
|
414
|
+
)
|
|
415
|
+
)
|
|
324
416
|
} else {
|
|
325
417
|
resume(Effect.void)
|
|
326
418
|
}
|
|
@@ -349,22 +441,29 @@ export const make = (
|
|
|
349
441
|
|
|
350
442
|
yield* Pool.get(pool).pipe(
|
|
351
443
|
Effect.tap((connection) => connection.executeUnprepared("SELECT 1", [], undefined)),
|
|
352
|
-
Effect.mapError((
|
|
444
|
+
Effect.mapError((cause) =>
|
|
445
|
+
new SqlError({ reason: classifyError(cause, "MssqlClient: Failed to connect", "connect", "connection") })
|
|
446
|
+
),
|
|
353
447
|
Effect.scoped,
|
|
354
448
|
Effect.timeoutOrElse({
|
|
355
449
|
duration: options.connectTimeout ?? Duration.seconds(5),
|
|
356
|
-
|
|
450
|
+
orElse: () =>
|
|
357
451
|
Effect.fail(
|
|
358
452
|
new SqlError({
|
|
359
|
-
|
|
360
|
-
|
|
453
|
+
reason: new ConnectionError({
|
|
454
|
+
message: "MssqlClient: Connection timeout",
|
|
455
|
+
cause: new Error("connection timeout"),
|
|
456
|
+
operation: "connect"
|
|
457
|
+
})
|
|
361
458
|
})
|
|
362
459
|
)
|
|
363
460
|
})
|
|
364
461
|
)
|
|
365
462
|
|
|
463
|
+
const transactionService = TransactionConnection(clientIdCounter++)
|
|
464
|
+
|
|
366
465
|
const withTransaction = Client.makeWithTransaction({
|
|
367
|
-
transactionService
|
|
466
|
+
transactionService,
|
|
368
467
|
spanAttributes,
|
|
369
468
|
acquireConnection: Effect.gen(function*() {
|
|
370
469
|
const scope = Scope.makeUnsafe()
|
|
@@ -382,6 +481,7 @@ export const make = (
|
|
|
382
481
|
yield* Client.make({
|
|
383
482
|
acquirer: Pool.get(pool),
|
|
384
483
|
compiler,
|
|
484
|
+
transactionService: transactionService as any,
|
|
385
485
|
spanAttributes,
|
|
386
486
|
transformRows
|
|
387
487
|
}),
|
|
@@ -434,12 +534,12 @@ export const layerConfig: (
|
|
|
434
534
|
) => Layer.Layer<Client.SqlClient | MssqlClient, Config.ConfigError | SqlError> = (
|
|
435
535
|
config: Config.Wrap<MssqlClientConfig>
|
|
436
536
|
): Layer.Layer<Client.SqlClient | MssqlClient, Config.ConfigError | SqlError> =>
|
|
437
|
-
Layer.
|
|
537
|
+
Layer.effectContext(
|
|
438
538
|
Config.unwrap(config).asEffect().pipe(
|
|
439
539
|
Effect.flatMap(make),
|
|
440
540
|
Effect.map((client) =>
|
|
441
|
-
|
|
442
|
-
|
|
541
|
+
Context.make(MssqlClient, client).pipe(
|
|
542
|
+
Context.add(Client.SqlClient, client)
|
|
443
543
|
)
|
|
444
544
|
)
|
|
445
545
|
)
|
|
@@ -452,10 +552,10 @@ export const layerConfig: (
|
|
|
452
552
|
export const layer = (
|
|
453
553
|
config: MssqlClientConfig
|
|
454
554
|
): Layer.Layer<Client.SqlClient | MssqlClient, never | SqlError> =>
|
|
455
|
-
Layer.
|
|
555
|
+
Layer.effectContext(
|
|
456
556
|
Effect.map(make(config), (client) =>
|
|
457
|
-
|
|
458
|
-
|
|
557
|
+
Context.make(MssqlClient, client).pipe(
|
|
558
|
+
Context.add(Client.SqlClient, client)
|
|
459
559
|
))
|
|
460
560
|
).pipe(Layer.provide(Reactivity.layer))
|
|
461
561
|
|