effect 4.0.0-beta.55 → 4.0.0-beta.57
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/Effect.d.ts +7 -0
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +7 -0
- package/dist/Effect.js.map +1 -1
- package/dist/internal/effect.js +2 -0
- package/dist/internal/effect.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +20 -2
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +34 -29
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +4 -6
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/package.json +1 -1
- package/src/Effect.ts +8 -0
- package/src/internal/effect.ts +9 -0
- package/src/unstable/sql/SqlClient.ts +36 -9
- package/src/unstable/sql/SqlResolver.ts +9 -11
|
@@ -29,6 +29,10 @@ export interface SqlClient extends Constructor {
|
|
|
29
29
|
* With the given effect, ensure all sql queries are run in a transaction.
|
|
30
30
|
*/
|
|
31
31
|
readonly withTransaction: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | SqlError, R>;
|
|
32
|
+
/**
|
|
33
|
+
* The transaction service for this client.
|
|
34
|
+
*/
|
|
35
|
+
readonly transactionService: Context.Service<TransactionConnection, TransactionConnection.Service>;
|
|
32
36
|
/**
|
|
33
37
|
* Use the Reactivity service from @effect/experimental to create a reactive
|
|
34
38
|
* query.
|
|
@@ -59,6 +63,7 @@ export declare namespace SqlClient {
|
|
|
59
63
|
readonly compiler: Compiler;
|
|
60
64
|
readonly transactionAcquirer?: Connection.Acquirer;
|
|
61
65
|
readonly spanAttributes: ReadonlyArray<readonly [string, unknown]>;
|
|
66
|
+
readonly transactionService?: Context.Service<TransactionConnection, TransactionConnection.Service>;
|
|
62
67
|
readonly beginTransaction?: string | undefined;
|
|
63
68
|
readonly rollback?: string | undefined;
|
|
64
69
|
readonly commit?: string | undefined;
|
|
@@ -87,12 +92,25 @@ export declare const makeWithTransaction: <I, S>(options: {
|
|
|
87
92
|
readonly rollback: (conn: NoInfer<S>) => Effect.Effect<void, SqlError>;
|
|
88
93
|
readonly rollbackSavepoint: (conn: NoInfer<S>, id: number) => Effect.Effect<void, SqlError>;
|
|
89
94
|
}) => <R, E, A>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E | SqlError, R>;
|
|
90
|
-
declare const TransactionConnection_base: Context.ServiceClass<TransactionConnection, "effect/sql/SqlClient/TransactionConnection", readonly [conn: Connection.Connection, depth: number]>;
|
|
91
95
|
/**
|
|
92
96
|
* @since 4.0.0
|
|
93
97
|
*/
|
|
94
|
-
export
|
|
98
|
+
export interface TransactionConnection {
|
|
99
|
+
readonly _: unique symbol;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @since 4.0.0
|
|
103
|
+
*/
|
|
104
|
+
export declare namespace TransactionConnection {
|
|
105
|
+
/**
|
|
106
|
+
* @since 4.0.0
|
|
107
|
+
*/
|
|
108
|
+
type Service = readonly [conn: Connection.Connection, depth: number];
|
|
95
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* @since 4.0.0
|
|
112
|
+
*/
|
|
113
|
+
export declare const TransactionConnection: (clientId: number) => Context.Service<TransactionConnection, TransactionConnection.Service>;
|
|
96
114
|
/**
|
|
97
115
|
* @since 4.0.0
|
|
98
116
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlClient.d.ts","sourceRoot":"","sources":["../../../src/unstable/sql/SqlClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SqlClient.d.ts","sourceRoot":"","sources":["../../../src/unstable/sql/SqlClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,12 +17,14 @@ const TypeId = "~effect/sql/SqlClient";
|
|
|
17
17
|
* @since 4.0.0
|
|
18
18
|
*/
|
|
19
19
|
export const SqlClient = /*#__PURE__*/Context.Service("effect/sql/SqlClient");
|
|
20
|
+
let clientIdCounter = 0;
|
|
20
21
|
/**
|
|
21
22
|
* @category constructors
|
|
22
23
|
* @since 4.0.0
|
|
23
24
|
*/
|
|
24
25
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
25
|
-
const
|
|
26
|
+
const transactionService = options.transactionService ?? TransactionConnection(clientIdCounter++);
|
|
27
|
+
const getConnection = Effect.flatMap(Effect.serviceOption(transactionService), Option.match({
|
|
26
28
|
onNone: () => options.acquirer,
|
|
27
29
|
onSome: ([conn]) => Effect.succeed(conn)
|
|
28
30
|
}));
|
|
@@ -33,7 +35,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
33
35
|
const rollbackSavepoint = options.rollbackSavepoint ?? (name => `ROLLBACK TO SAVEPOINT ${name}`);
|
|
34
36
|
const transactionAcquirer = options.transactionAcquirer ?? options.acquirer;
|
|
35
37
|
const withTransaction = makeWithTransaction({
|
|
36
|
-
transactionService
|
|
38
|
+
transactionService,
|
|
37
39
|
spanAttributes: options.spanAttributes,
|
|
38
40
|
acquireConnection: Effect.flatMap(Scope.make(), scope => Effect.map(Scope.provide(transactionAcquirer, scope), conn => [scope, conn])),
|
|
39
41
|
begin: conn => conn.executeUnprepared(beginTransaction, [], undefined),
|
|
@@ -47,6 +49,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
47
49
|
[TypeId]: TypeId,
|
|
48
50
|
safe: undefined,
|
|
49
51
|
withTransaction,
|
|
52
|
+
transactionService,
|
|
50
53
|
reserve: transactionAcquirer,
|
|
51
54
|
withoutTransforms() {
|
|
52
55
|
if (options.transformRows === undefined) {
|
|
@@ -71,39 +74,41 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
71
74
|
* @since 4.0.0
|
|
72
75
|
* @category transactions
|
|
73
76
|
*/
|
|
74
|
-
export const makeWithTransaction = options => effect =>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
export const makeWithTransaction = options => effect => {
|
|
78
|
+
return Effect.uninterruptibleMask(restore => Effect.useSpan("sql.transaction", {
|
|
79
|
+
kind: "client"
|
|
80
|
+
}, span => Effect.withFiber(fiber => {
|
|
81
|
+
for (const [key, value] of options.spanAttributes) {
|
|
82
|
+
span.attribute(key, value);
|
|
83
|
+
}
|
|
84
|
+
const services = fiber.context;
|
|
85
|
+
const clock = fiber.getRef(Clock);
|
|
86
|
+
const connOption = Context.getOption(services, options.transactionService);
|
|
87
|
+
const conn = connOption._tag === "Some" ? Effect.succeed([undefined, connOption.value[0]]) : options.acquireConnection;
|
|
88
|
+
const id = connOption._tag === "Some" ? connOption.value[1] + 1 : 0;
|
|
89
|
+
return Effect.flatMap(conn, ([scope, conn]) => (id === 0 ? options.begin(conn) : options.savepoint(conn, id)).pipe(Effect.flatMap(() => Effect.provideContext(restore(effect), Context.mutate(services, services => services.pipe(Context.add(options.transactionService, [conn, id]), Context.add(Tracer.ParentSpan, span))))), Effect.exit, Effect.flatMap(exit => {
|
|
90
|
+
let effect;
|
|
91
|
+
if (Exit.isSuccess(exit)) {
|
|
92
|
+
if (id === 0) {
|
|
93
|
+
span.event("db.transaction.commit", clock.currentTimeNanosUnsafe());
|
|
94
|
+
effect = Effect.orDie(options.commit(conn));
|
|
95
|
+
} else {
|
|
96
|
+
span.event("db.transaction.savepoint", clock.currentTimeNanosUnsafe());
|
|
97
|
+
effect = Effect.void;
|
|
98
|
+
}
|
|
91
99
|
} else {
|
|
92
|
-
span.event("db.transaction.
|
|
93
|
-
effect = Effect.
|
|
100
|
+
span.event("db.transaction.rollback", clock.currentTimeNanosUnsafe());
|
|
101
|
+
effect = Effect.orDie(id > 0 ? options.rollbackSavepoint(conn, id) : options.rollback(conn));
|
|
94
102
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
const withScope = scope !== undefined ? Effect.ensuring(effect, Scope.close(scope, exit)) : effect;
|
|
100
|
-
return Effect.flatMap(withScope, () => exit);
|
|
103
|
+
const withScope = scope !== undefined ? Effect.ensuring(effect, Scope.close(scope, exit)) : effect;
|
|
104
|
+
return Effect.flatMap(withScope, () => exit);
|
|
105
|
+
})));
|
|
101
106
|
})));
|
|
102
|
-
}
|
|
107
|
+
};
|
|
103
108
|
/**
|
|
104
109
|
* @since 4.0.0
|
|
105
110
|
*/
|
|
106
|
-
export
|
|
111
|
+
export const TransactionConnection = clientId => Context.Service(`effect/sql/SqlClient/TransactionConnection/${clientId}`);
|
|
107
112
|
/**
|
|
108
113
|
* @since 4.0.0
|
|
109
114
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlClient.js","names":["Clock","Context","Effect","Exit","Option","Scope","Stream","Tracer","Reactivity","Statement","TypeId","SqlClient","Service","make","fnUntraced","options","getConnection","flatMap","serviceOption","
|
|
1
|
+
{"version":3,"file":"SqlClient.js","names":["Clock","Context","Effect","Exit","Option","Scope","Stream","Tracer","Reactivity","Statement","TypeId","SqlClient","Service","clientIdCounter","make","fnUntraced","options","transactionService","TransactionConnection","getConnection","flatMap","serviceOption","match","onNone","acquirer","onSome","conn","succeed","beginTransaction","commit","savepoint","name","rollback","rollbackSavepoint","transactionAcquirer","withTransaction","makeWithTransaction","spanAttributes","acquireConnection","scope","map","provide","begin","executeUnprepared","undefined","id","reactivity","client","Object","assign","compiler","transformRows","safe","reserve","withoutTransforms","statement","withoutTransform","reactive","reactiveQueue","keys","effect","pipe","fromQueue","unwrap","stream","reactiveMailbox","query","uninterruptibleMask","restore","useSpan","kind","span","withFiber","fiber","key","value","attribute","services","context","clock","getRef","connOption","getOption","_tag","provideContext","mutate","add","ParentSpan","exit","isSuccess","event","currentTimeNanosUnsafe","orDie","void","withScope","ensuring","close","clientId","SafeIntegers","Reference","defaultValue"],"sources":["../../../src/unstable/sql/SqlClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlResolver.d.ts","sourceRoot":"","sources":["../../../src/unstable/sql/SqlResolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SqlResolver.d.ts","sourceRoot":"","sources":["../../../src/unstable/sql/SqlResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,11 +118,7 @@ export const grouped = options => {
|
|
|
118
118
|
export const findById = options => {
|
|
119
119
|
const decodeResults = Schema.decodeUnknownEffect(Schema.Array(options.Result));
|
|
120
120
|
return RequestResolver.makeGrouped({
|
|
121
|
-
key
|
|
122
|
-
const conn = entry.context.mapUnsafe.get(SqlClient.TransactionConnection.key);
|
|
123
|
-
if (!conn) return undefined;
|
|
124
|
-
return Equal.byReferenceUnsafe(conn);
|
|
125
|
-
},
|
|
121
|
+
key: transactionKey,
|
|
126
122
|
resolver: Effect.fnUntraced(function* (entries) {
|
|
127
123
|
const [inputs, idMap] = yield* partitionRequestsById(entries, options.Id);
|
|
128
124
|
const results = yield* options.execute(inputs).pipe(Effect.provideContext(entries[0].context));
|
|
@@ -206,7 +202,9 @@ const partitionRequestsById = function* (requests, schema) {
|
|
|
206
202
|
return [inputs, byIdMap];
|
|
207
203
|
};
|
|
208
204
|
function transactionKey(entry) {
|
|
209
|
-
const
|
|
205
|
+
const client = entry.context.mapUnsafe.get(SqlClient.SqlClient.key);
|
|
206
|
+
if (!client) return undefined;
|
|
207
|
+
const conn = entry.context.mapUnsafe.get(client.transactionService.key);
|
|
210
208
|
if (!conn) return undefined;
|
|
211
209
|
return Equal.byReferenceUnsafe(conn);
|
|
212
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlResolver.js","names":["Arr","Cause","Effect","Equal","Exit","Hash","MutableHashMap","Request","RequestResolver","Schema","SqlClient","ResultLengthMismatch","SqlRequestProto","Class","prototype","symbol","that","equals","payload","hash","request","arguments","length","resolver","SqlRequest","self","Object","create","ordered","options","decodeArray","decodeUnknownEffect","Array","Result","makeGrouped","key","transactionKey","fnUntraced","entries","inputs","partitionRequests","results","execute","pipe","provideContext","context","expected","actual","decodedResults","i","completeUnsafe","succeed","grouped","decodeResults","resultMap","empty","len","result","ResultGroupKey","group","get","_tag","set","value","push","entry","RequestGroupKey","constNoSuchElement","findById","
|
|
1
|
+
{"version":3,"file":"SqlResolver.js","names":["Arr","Cause","Effect","Equal","Exit","Hash","MutableHashMap","Request","RequestResolver","Schema","SqlClient","ResultLengthMismatch","SqlRequestProto","Class","prototype","symbol","that","equals","payload","hash","request","arguments","length","resolver","SqlRequest","self","Object","create","ordered","options","decodeArray","decodeUnknownEffect","Array","Result","makeGrouped","key","transactionKey","fnUntraced","entries","inputs","partitionRequests","results","execute","pipe","provideContext","context","expected","actual","decodedResults","i","completeUnsafe","succeed","grouped","decodeResults","resultMap","empty","len","result","ResultGroupKey","group","get","_tag","set","value","push","entry","RequestGroupKey","constNoSuchElement","findById","idMap","partitionRequestsById","Id","id","ResultId","remove","isEmpty","forEach","void_","void","fail","NoSuchElementError","requests","schema","encode","encodeEffect","handle","matchCauseEager","onFailure","cause","failCause","onSuccess","byIdMap","client","mapUnsafe","undefined","conn","transactionService","byReferenceUnsafe"],"sources":["../../../src/unstable/sql/SqlResolver.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/Effect.ts
CHANGED
|
@@ -13342,6 +13342,14 @@ export const interruptibleMask: <A, E, R>(
|
|
|
13342
13342
|
) => Effect<A, E, R>
|
|
13343
13343
|
) => Effect<A, E, R> = internal.interruptibleMask
|
|
13344
13344
|
|
|
13345
|
+
/**
|
|
13346
|
+
* Creates an AbortSignal that is managed by the provided scope.
|
|
13347
|
+
*
|
|
13348
|
+
* @since 4.0.0
|
|
13349
|
+
* @category Interruption
|
|
13350
|
+
*/
|
|
13351
|
+
export const abortSignal: Effect<AbortSignal, never, Scope> = internal.abortSignal
|
|
13352
|
+
|
|
13345
13353
|
// -----------------------------------------------------------------------------
|
|
13346
13354
|
// Repetition & Recursion
|
|
13347
13355
|
// -----------------------------------------------------------------------------
|
package/src/internal/effect.ts
CHANGED
|
@@ -4177,6 +4177,15 @@ export const interruptibleMask = <A, E, R>(
|
|
|
4177
4177
|
return f(uninterruptible)
|
|
4178
4178
|
})
|
|
4179
4179
|
|
|
4180
|
+
/** @internal */
|
|
4181
|
+
export const abortSignal: Effect.Effect<AbortSignal, never, Scope.Scope> = map(
|
|
4182
|
+
acquireRelease(
|
|
4183
|
+
sync(() => new AbortController()),
|
|
4184
|
+
(controller) => sync(() => controller.abort())
|
|
4185
|
+
),
|
|
4186
|
+
(_) => _.signal
|
|
4187
|
+
)
|
|
4188
|
+
|
|
4180
4189
|
// ========================================================================
|
|
4181
4190
|
// collecting & elements
|
|
4182
4191
|
// ========================================================================
|
|
@@ -46,6 +46,11 @@ export interface SqlClient extends Constructor {
|
|
|
46
46
|
self: Effect.Effect<A, E, R>
|
|
47
47
|
) => Effect.Effect<A, E | SqlError, R>
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* The transaction service for this client.
|
|
51
|
+
*/
|
|
52
|
+
readonly transactionService: Context.Service<TransactionConnection, TransactionConnection.Service>
|
|
53
|
+
|
|
49
54
|
/**
|
|
50
55
|
* Use the Reactivity service from @effect/experimental to create a reactive
|
|
51
56
|
* query.
|
|
@@ -85,6 +90,7 @@ export namespace SqlClient {
|
|
|
85
90
|
readonly compiler: Compiler
|
|
86
91
|
readonly transactionAcquirer?: Connection.Acquirer
|
|
87
92
|
readonly spanAttributes: ReadonlyArray<readonly [string, unknown]>
|
|
93
|
+
readonly transactionService?: Context.Service<TransactionConnection, TransactionConnection.Service>
|
|
88
94
|
readonly beginTransaction?: string | undefined
|
|
89
95
|
readonly rollback?: string | undefined
|
|
90
96
|
readonly commit?: string | undefined
|
|
@@ -98,13 +104,16 @@ export namespace SqlClient {
|
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
|
|
107
|
+
let clientIdCounter = 0
|
|
108
|
+
|
|
101
109
|
/**
|
|
102
110
|
* @category constructors
|
|
103
111
|
* @since 4.0.0
|
|
104
112
|
*/
|
|
105
113
|
export const make = Effect.fnUntraced(function*(options: SqlClient.MakeOptions) {
|
|
114
|
+
const transactionService = options.transactionService ?? TransactionConnection(clientIdCounter++)
|
|
106
115
|
const getConnection = Effect.flatMap(
|
|
107
|
-
Effect.serviceOption(
|
|
116
|
+
Effect.serviceOption(transactionService),
|
|
108
117
|
Option.match({
|
|
109
118
|
onNone: () => options.acquirer,
|
|
110
119
|
onSome: ([conn]) => Effect.succeed(conn)
|
|
@@ -118,7 +127,7 @@ export const make = Effect.fnUntraced(function*(options: SqlClient.MakeOptions)
|
|
|
118
127
|
const rollbackSavepoint = options.rollbackSavepoint ?? ((name: string) => `ROLLBACK TO SAVEPOINT ${name}`)
|
|
119
128
|
const transactionAcquirer = options.transactionAcquirer ?? options.acquirer
|
|
120
129
|
const withTransaction = makeWithTransaction({
|
|
121
|
-
transactionService
|
|
130
|
+
transactionService,
|
|
122
131
|
spanAttributes: options.spanAttributes,
|
|
123
132
|
acquireConnection: Effect.flatMap(
|
|
124
133
|
Scope.make(),
|
|
@@ -138,6 +147,7 @@ export const make = Effect.fnUntraced(function*(options: SqlClient.MakeOptions)
|
|
|
138
147
|
[TypeId]: TypeId as typeof TypeId,
|
|
139
148
|
safe: undefined as any,
|
|
140
149
|
withTransaction,
|
|
150
|
+
transactionService,
|
|
141
151
|
reserve: transactionAcquirer,
|
|
142
152
|
withoutTransforms(): any {
|
|
143
153
|
if (options.transformRows === undefined) {
|
|
@@ -189,8 +199,8 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
189
199
|
readonly rollback: (conn: NoInfer<S>) => Effect.Effect<void, SqlError>
|
|
190
200
|
readonly rollbackSavepoint: (conn: NoInfer<S>, id: number) => Effect.Effect<void, SqlError>
|
|
191
201
|
}) =>
|
|
192
|
-
<R, E, A>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E | SqlError, R> =>
|
|
193
|
-
Effect.uninterruptibleMask((restore) =>
|
|
202
|
+
<R, E, A>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E | SqlError, R> => {
|
|
203
|
+
return Effect.uninterruptibleMask((restore) =>
|
|
194
204
|
Effect.useSpan(
|
|
195
205
|
"sql.transaction",
|
|
196
206
|
{ kind: "client" },
|
|
@@ -249,15 +259,32 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
249
259
|
})
|
|
250
260
|
)
|
|
251
261
|
)
|
|
262
|
+
}
|
|
252
263
|
|
|
253
264
|
/**
|
|
254
265
|
* @since 4.0.0
|
|
255
266
|
*/
|
|
256
|
-
export
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
267
|
+
export interface TransactionConnection {
|
|
268
|
+
readonly _: unique symbol
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* @since 4.0.0
|
|
273
|
+
*/
|
|
274
|
+
export declare namespace TransactionConnection {
|
|
275
|
+
/**
|
|
276
|
+
* @since 4.0.0
|
|
277
|
+
*/
|
|
278
|
+
export type Service = readonly [conn: Connection.Connection, depth: number]
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* @since 4.0.0
|
|
283
|
+
*/
|
|
284
|
+
export const TransactionConnection = (
|
|
285
|
+
clientId: number
|
|
286
|
+
): Context.Service<TransactionConnection, TransactionConnection.Service> =>
|
|
287
|
+
Context.Service(`effect/sql/SqlClient/TransactionConnection/${clientId}`)
|
|
261
288
|
|
|
262
289
|
/**
|
|
263
290
|
* @since 4.0.0
|
|
@@ -102,7 +102,7 @@ export const ordered = <Req extends Schema.Top, Res extends Schema.Top, _, E, R>
|
|
|
102
102
|
E | ResultLengthMismatch,
|
|
103
103
|
Req["EncodingServices"] | Res["DecodingServices"] | R
|
|
104
104
|
>,
|
|
105
|
-
SqlClient.TransactionConnection
|
|
105
|
+
SqlClient.TransactionConnection.Service | undefined
|
|
106
106
|
>({
|
|
107
107
|
key: transactionKey,
|
|
108
108
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -158,7 +158,7 @@ export const grouped = <Req extends Schema.Top, Res extends Schema.Top, K, Row,
|
|
|
158
158
|
E | Schema.SchemaError | Cause.NoSuchElementError,
|
|
159
159
|
Req["EncodingServices"] | Res["DecodingServices"] | R
|
|
160
160
|
>,
|
|
161
|
-
SqlClient.TransactionConnection
|
|
161
|
+
SqlClient.TransactionConnection.Service | undefined
|
|
162
162
|
>({
|
|
163
163
|
key: transactionKey,
|
|
164
164
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -224,13 +224,9 @@ export const findById = <Id extends Schema.Top, Res extends Schema.Top, Row, E,
|
|
|
224
224
|
E | Schema.SchemaError | Cause.NoSuchElementError,
|
|
225
225
|
Id["EncodingServices"] | Res["DecodingServices"] | R
|
|
226
226
|
>,
|
|
227
|
-
SqlClient.TransactionConnection
|
|
227
|
+
SqlClient.TransactionConnection.Service | undefined
|
|
228
228
|
>({
|
|
229
|
-
key
|
|
230
|
-
const conn = entry.context.mapUnsafe.get(SqlClient.TransactionConnection.key)
|
|
231
|
-
if (!conn) return undefined
|
|
232
|
-
return Equal.byReferenceUnsafe(conn)
|
|
233
|
-
},
|
|
229
|
+
key: transactionKey,
|
|
234
230
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
235
231
|
const [inputs, idMap] = yield* partitionRequestsById(entries, options.Id)
|
|
236
232
|
const results = yield* options.execute(inputs as any).pipe(
|
|
@@ -281,7 +277,7 @@ const void_ = <Req extends Schema.Top, _, E, R>(
|
|
|
281
277
|
E | Schema.SchemaError,
|
|
282
278
|
Req["EncodingServices"] | R
|
|
283
279
|
>,
|
|
284
|
-
SqlClient.TransactionConnection
|
|
280
|
+
SqlClient.TransactionConnection.Service | undefined
|
|
285
281
|
>({
|
|
286
282
|
key: transactionKey,
|
|
287
283
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
@@ -359,8 +355,10 @@ const partitionRequestsById = function*<In, A, E, R, InE>(
|
|
|
359
355
|
return [inputs, byIdMap] as const
|
|
360
356
|
}
|
|
361
357
|
|
|
362
|
-
function transactionKey<A>(entry: Request.Entry<A>): SqlClient.TransactionConnection
|
|
363
|
-
const
|
|
358
|
+
function transactionKey<A>(entry: Request.Entry<A>): SqlClient.TransactionConnection.Service | undefined {
|
|
359
|
+
const client = entry.context.mapUnsafe.get(SqlClient.SqlClient.key)
|
|
360
|
+
if (!client) return undefined
|
|
361
|
+
const conn = entry.context.mapUnsafe.get(client.transactionService.key)
|
|
364
362
|
if (!conn) return undefined
|
|
365
363
|
return Equal.byReferenceUnsafe(conn)
|
|
366
364
|
}
|