@effect/sql-libsql 4.0.0-beta.5 → 4.0.0-beta.50
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/LibsqlClient.d.ts +2 -2
- package/dist/LibsqlClient.d.ts.map +1 -1
- package/dist/LibsqlClient.js +17 -17
- package/dist/LibsqlClient.js.map +1 -1
- package/package.json +5 -5
- package/src/LibsqlClient.ts +23 -16
package/dist/LibsqlClient.d.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Libsql from "@libsql/client";
|
|
5
5
|
import * as Config from "effect/Config";
|
|
6
|
+
import * as Context from "effect/Context";
|
|
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
|
/**
|
|
@@ -32,7 +32,7 @@ export interface LibsqlClient extends Client.SqlClient {
|
|
|
32
32
|
* @category tags
|
|
33
33
|
* @since 1.0.0
|
|
34
34
|
*/
|
|
35
|
-
export declare const LibsqlClient:
|
|
35
|
+
export declare const LibsqlClient: Context.Service<LibsqlClient, LibsqlClient>;
|
|
36
36
|
/**
|
|
37
37
|
* @category models
|
|
38
38
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibsqlClient.d.ts","sourceRoot":"","sources":["../src/LibsqlClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"LibsqlClient.d.ts","sourceRoot":"","sources":["../src/LibsqlClient.ts"],"names":[],"mappings":"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"}
|
package/dist/LibsqlClient.js
CHANGED
|
@@ -3,18 +3,23 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Libsql from "@libsql/client";
|
|
5
5
|
import * as Config from "effect/Config";
|
|
6
|
+
import * as Context from "effect/Context";
|
|
6
7
|
import * as Effect from "effect/Effect";
|
|
7
8
|
import * as Layer from "effect/Layer";
|
|
8
9
|
import * as Option from "effect/Option";
|
|
9
10
|
import * as Redacted from "effect/Redacted";
|
|
10
11
|
import * as Scope from "effect/Scope";
|
|
11
|
-
import * as
|
|
12
|
+
import * as Semaphore from "effect/Semaphore";
|
|
12
13
|
import * as Stream from "effect/Stream";
|
|
13
14
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
14
15
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
15
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
16
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
|
|
16
17
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
17
18
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
19
|
+
const classifyError = (cause, message, operation) => classifySqliteError(cause, {
|
|
20
|
+
message,
|
|
21
|
+
operation
|
|
22
|
+
});
|
|
18
23
|
/**
|
|
19
24
|
* @category type ids
|
|
20
25
|
* @since 1.0.0
|
|
@@ -24,8 +29,8 @@ export const TypeId = "~@effect/sql-libsql/LibsqlClient";
|
|
|
24
29
|
* @category tags
|
|
25
30
|
* @since 1.0.0
|
|
26
31
|
*/
|
|
27
|
-
export const LibsqlClient = /*#__PURE__*/
|
|
28
|
-
const LibsqlTransaction = /*#__PURE__*/
|
|
32
|
+
export const LibsqlClient = /*#__PURE__*/Context.Service("@effect/sql-libsql/LibsqlClient");
|
|
33
|
+
const LibsqlTransaction = /*#__PURE__*/Context.Service("@effect/sql-libsql/LibsqlClient/LibsqlTransaction");
|
|
29
34
|
/**
|
|
30
35
|
* @category constructor
|
|
31
36
|
* @since 1.0.0
|
|
@@ -46,8 +51,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
46
51
|
args: params
|
|
47
52
|
}),
|
|
48
53
|
catch: cause => new SqlError({
|
|
49
|
-
cause,
|
|
50
|
-
message: "Failed to execute statement"
|
|
54
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
51
55
|
})
|
|
52
56
|
}), results => results.rows);
|
|
53
57
|
}
|
|
@@ -58,8 +62,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
58
62
|
args: params
|
|
59
63
|
}),
|
|
60
64
|
catch: cause => new SqlError({
|
|
61
|
-
cause,
|
|
62
|
-
message: "Failed to execute statement"
|
|
65
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
63
66
|
})
|
|
64
67
|
});
|
|
65
68
|
}
|
|
@@ -82,8 +85,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
82
85
|
return Effect.map(Effect.tryPromise({
|
|
83
86
|
try: () => this.sdk.transaction("write"),
|
|
84
87
|
catch: cause => new SqlError({
|
|
85
|
-
cause,
|
|
86
|
-
message: "Failed to begin transaction"
|
|
88
|
+
reason: classifyError(cause, "Failed to begin transaction", "beginTransaction")
|
|
87
89
|
})
|
|
88
90
|
}), tx => new LibsqlConnectionImpl(tx));
|
|
89
91
|
}
|
|
@@ -91,8 +93,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
91
93
|
return Effect.tryPromise({
|
|
92
94
|
try: () => this.sdk.commit(),
|
|
93
95
|
catch: cause => new SqlError({
|
|
94
|
-
cause,
|
|
95
|
-
message: "Failed to commit transaction"
|
|
96
|
+
reason: classifyError(cause, "Failed to commit transaction", "commitTransaction")
|
|
96
97
|
})
|
|
97
98
|
});
|
|
98
99
|
}
|
|
@@ -100,8 +101,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
100
101
|
return Effect.tryPromise({
|
|
101
102
|
try: () => this.sdk.rollback(),
|
|
102
103
|
catch: cause => new SqlError({
|
|
103
|
-
cause,
|
|
104
|
-
message: "Failed to rollback transaction"
|
|
104
|
+
reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction")
|
|
105
105
|
})
|
|
106
106
|
});
|
|
107
107
|
}
|
|
@@ -113,7 +113,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
113
113
|
url: options.url.toString(),
|
|
114
114
|
syncUrl: options.syncUrl?.toString()
|
|
115
115
|
})), sdk => Effect.sync(() => sdk.close())), sdk => new LibsqlConnectionImpl(sdk));
|
|
116
|
-
const semaphore = yield*
|
|
116
|
+
const semaphore = yield* Semaphore.make(1);
|
|
117
117
|
const withTransaction = Client.makeWithTransaction({
|
|
118
118
|
transactionService: LibsqlTransaction,
|
|
119
119
|
spanAttributes,
|
|
@@ -151,10 +151,10 @@ export const make = options => Effect.gen(function* () {
|
|
|
151
151
|
* @category layers
|
|
152
152
|
* @since 1.0.0
|
|
153
153
|
*/
|
|
154
|
-
export const layerConfig = config => Layer.
|
|
154
|
+
export const layerConfig = config => Layer.effectContext(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => Context.make(LibsqlClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
155
155
|
/**
|
|
156
156
|
* @category layers
|
|
157
157
|
* @since 1.0.0
|
|
158
158
|
*/
|
|
159
|
-
export const layer = config => Layer.
|
|
159
|
+
export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(LibsqlClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
160
160
|
//# sourceMappingURL=LibsqlClient.js.map
|
package/dist/LibsqlClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibsqlClient.js","names":["Libsql","Config","Effect","Layer","Option","Redacted","Scope","
|
|
1
|
+
{"version":3,"file":"LibsqlClient.js","names":["Libsql","Config","Context","Effect","Layer","Option","Redacted","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","LibsqlClient","Service","LibsqlTransaction","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","spanAttributes","Object","entries","LibsqlConnectionImpl","sdk","constructor","run","sql","params","map","tryPromise","try","execute","args","catch","reason","results","rows","runRaw","executeRaw","executeValues","row","Array","from","executeUnprepared","executeStream","die","beginTransaction","transaction","tx","commit","rollback","connection","liveClient","acquireRelease","sync","createClient","authToken","isRedacted","value","encryptionKey","url","toString","syncUrl","close","semaphore","withTransaction","makeWithTransaction","transactionService","acquireConnection","uninterruptibleMask","fnUntraced","restore","scope","makeUnsafe","take","addFinalizer","release","conn","begin","void","savepoint","id","rollbackSavepoint","acquirer","flatMap","serviceOption","match","onNone","withPermits","succeed","onSome","assign","config","layerConfig","effectContext","unwrap","asEffect","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/LibsqlClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-libsql",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.50",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A libSQL toolkit for Effect",
|
|
@@ -45,14 +45,14 @@
|
|
|
45
45
|
"provenance": true
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"testcontainers": "^11.
|
|
49
|
-
"effect": "^4.0.0-beta.
|
|
48
|
+
"testcontainers": "^11.14.0",
|
|
49
|
+
"effect": "^4.0.0-beta.50"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"effect": "^4.0.0-beta.
|
|
52
|
+
"effect": "^4.0.0-beta.50"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@libsql/client": "^0.17.
|
|
55
|
+
"@libsql/client": "^0.17.2"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"codegen": "effect-utils codegen",
|
package/src/LibsqlClient.ts
CHANGED
|
@@ -3,21 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Libsql from "@libsql/client"
|
|
5
5
|
import * as Config from "effect/Config"
|
|
6
|
+
import * as Context from "effect/Context"
|
|
6
7
|
import * as Effect from "effect/Effect"
|
|
7
8
|
import * as Layer from "effect/Layer"
|
|
8
9
|
import * as Option from "effect/Option"
|
|
9
10
|
import * as Redacted from "effect/Redacted"
|
|
10
11
|
import * as Scope from "effect/Scope"
|
|
11
|
-
import * as
|
|
12
|
+
import * as Semaphore from "effect/Semaphore"
|
|
12
13
|
import * as Stream from "effect/Stream"
|
|
13
14
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity"
|
|
14
15
|
import * as Client from "effect/unstable/sql/SqlClient"
|
|
15
16
|
import type { Connection } from "effect/unstable/sql/SqlConnection"
|
|
16
|
-
import { SqlError } from "effect/unstable/sql/SqlError"
|
|
17
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError"
|
|
17
18
|
import * as Statement from "effect/unstable/sql/Statement"
|
|
18
19
|
|
|
19
20
|
const ATTR_DB_SYSTEM_NAME = "db.system.name"
|
|
20
21
|
|
|
22
|
+
const classifyError = (cause: unknown, message: string, operation: string) =>
|
|
23
|
+
classifySqliteError(cause, { message, operation })
|
|
24
|
+
|
|
21
25
|
/**
|
|
22
26
|
* @category type ids
|
|
23
27
|
* @since 1.0.0
|
|
@@ -43,9 +47,9 @@ export interface LibsqlClient extends Client.SqlClient {
|
|
|
43
47
|
* @category tags
|
|
44
48
|
* @since 1.0.0
|
|
45
49
|
*/
|
|
46
|
-
export const LibsqlClient =
|
|
50
|
+
export const LibsqlClient = Context.Service<LibsqlClient>("@effect/sql-libsql/LibsqlClient")
|
|
47
51
|
|
|
48
|
-
const LibsqlTransaction =
|
|
52
|
+
const LibsqlTransaction = Context.Service<readonly [LibsqlConnection, counter: number]>(
|
|
49
53
|
"@effect/sql-libsql/LibsqlClient/LibsqlTransaction"
|
|
50
54
|
)
|
|
51
55
|
|
|
@@ -162,7 +166,7 @@ export const make = (
|
|
|
162
166
|
return Effect.map(
|
|
163
167
|
Effect.tryPromise({
|
|
164
168
|
try: () => this.sdk.execute({ sql, args: params as Array<any> }),
|
|
165
|
-
catch: (cause) => new SqlError({ cause,
|
|
169
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
166
170
|
}),
|
|
167
171
|
(results) => results.rows
|
|
168
172
|
)
|
|
@@ -174,7 +178,7 @@ export const make = (
|
|
|
174
178
|
) {
|
|
175
179
|
return Effect.tryPromise({
|
|
176
180
|
try: () => this.sdk.execute({ sql, args: params as Array<any> }),
|
|
177
|
-
catch: (cause) => new SqlError({ cause,
|
|
181
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
178
182
|
})
|
|
179
183
|
}
|
|
180
184
|
|
|
@@ -207,7 +211,8 @@ export const make = (
|
|
|
207
211
|
return Effect.map(
|
|
208
212
|
Effect.tryPromise({
|
|
209
213
|
try: () => (this.sdk as Libsql.Client).transaction("write"),
|
|
210
|
-
catch: (cause) =>
|
|
214
|
+
catch: (cause) =>
|
|
215
|
+
new SqlError({ reason: classifyError(cause, "Failed to begin transaction", "beginTransaction") })
|
|
211
216
|
}),
|
|
212
217
|
(tx) => new LibsqlConnectionImpl(tx)
|
|
213
218
|
)
|
|
@@ -215,13 +220,15 @@ export const make = (
|
|
|
215
220
|
get commit() {
|
|
216
221
|
return Effect.tryPromise({
|
|
217
222
|
try: () => (this.sdk as Libsql.Transaction).commit(),
|
|
218
|
-
catch: (cause) =>
|
|
223
|
+
catch: (cause) =>
|
|
224
|
+
new SqlError({ reason: classifyError(cause, "Failed to commit transaction", "commitTransaction") })
|
|
219
225
|
})
|
|
220
226
|
}
|
|
221
227
|
get rollback() {
|
|
222
228
|
return Effect.tryPromise({
|
|
223
229
|
try: () => (this.sdk as Libsql.Transaction).rollback(),
|
|
224
|
-
catch: (cause) =>
|
|
230
|
+
catch: (cause) =>
|
|
231
|
+
new SqlError({ reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction") })
|
|
225
232
|
})
|
|
226
233
|
}
|
|
227
234
|
}
|
|
@@ -249,7 +256,7 @@ export const make = (
|
|
|
249
256
|
),
|
|
250
257
|
(sdk) => new LibsqlConnectionImpl(sdk)
|
|
251
258
|
)
|
|
252
|
-
const semaphore = yield*
|
|
259
|
+
const semaphore = yield* Semaphore.make(1)
|
|
253
260
|
|
|
254
261
|
const withTransaction = Client.makeWithTransaction({
|
|
255
262
|
transactionService: LibsqlTransaction,
|
|
@@ -301,12 +308,12 @@ export const layerConfig: (
|
|
|
301
308
|
) => Layer.Layer<LibsqlClient | Client.SqlClient, Config.ConfigError> = (
|
|
302
309
|
config: Config.Wrap<LibsqlClientConfig>
|
|
303
310
|
): Layer.Layer<LibsqlClient | Client.SqlClient, Config.ConfigError> =>
|
|
304
|
-
Layer.
|
|
311
|
+
Layer.effectContext(
|
|
305
312
|
Config.unwrap(config).asEffect().pipe(
|
|
306
313
|
Effect.flatMap(make),
|
|
307
314
|
Effect.map((client) =>
|
|
308
|
-
|
|
309
|
-
|
|
315
|
+
Context.make(LibsqlClient, client).pipe(
|
|
316
|
+
Context.add(Client.SqlClient, client)
|
|
310
317
|
)
|
|
311
318
|
)
|
|
312
319
|
)
|
|
@@ -319,9 +326,9 @@ export const layerConfig: (
|
|
|
319
326
|
export const layer = (
|
|
320
327
|
config: LibsqlClientConfig
|
|
321
328
|
): Layer.Layer<LibsqlClient | Client.SqlClient> =>
|
|
322
|
-
Layer.
|
|
329
|
+
Layer.effectContext(
|
|
323
330
|
Effect.map(make(config), (client) =>
|
|
324
|
-
|
|
325
|
-
|
|
331
|
+
Context.make(LibsqlClient, client).pipe(
|
|
332
|
+
Context.add(Client.SqlClient, client)
|
|
326
333
|
))
|
|
327
334
|
).pipe(Layer.provide(Reactivity.layer))
|