@effect/sql-libsql 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/LibsqlClient.d.ts +2 -2
- package/dist/LibsqlClient.d.ts.map +1 -1
- package/dist/LibsqlClient.js +15 -16
- package/dist/LibsqlClient.js.map +1 -1
- package/package.json +5 -5
- package/src/LibsqlClient.ts +21 -15
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,19 +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
12
|
import * as Semaphore from "effect/Semaphore";
|
|
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 { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
|
|
17
17
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
18
18
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
19
|
+
const classifyError = (cause, message, operation) => classifySqliteError(cause, {
|
|
20
|
+
message,
|
|
21
|
+
operation
|
|
22
|
+
});
|
|
19
23
|
/**
|
|
20
24
|
* @category type ids
|
|
21
25
|
* @since 1.0.0
|
|
@@ -25,8 +29,8 @@ export const TypeId = "~@effect/sql-libsql/LibsqlClient";
|
|
|
25
29
|
* @category tags
|
|
26
30
|
* @since 1.0.0
|
|
27
31
|
*/
|
|
28
|
-
export const LibsqlClient = /*#__PURE__*/
|
|
29
|
-
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");
|
|
30
34
|
/**
|
|
31
35
|
* @category constructor
|
|
32
36
|
* @since 1.0.0
|
|
@@ -47,8 +51,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
47
51
|
args: params
|
|
48
52
|
}),
|
|
49
53
|
catch: cause => new SqlError({
|
|
50
|
-
cause,
|
|
51
|
-
message: "Failed to execute statement"
|
|
54
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
52
55
|
})
|
|
53
56
|
}), results => results.rows);
|
|
54
57
|
}
|
|
@@ -59,8 +62,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
59
62
|
args: params
|
|
60
63
|
}),
|
|
61
64
|
catch: cause => new SqlError({
|
|
62
|
-
cause,
|
|
63
|
-
message: "Failed to execute statement"
|
|
65
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
64
66
|
})
|
|
65
67
|
});
|
|
66
68
|
}
|
|
@@ -83,8 +85,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
83
85
|
return Effect.map(Effect.tryPromise({
|
|
84
86
|
try: () => this.sdk.transaction("write"),
|
|
85
87
|
catch: cause => new SqlError({
|
|
86
|
-
cause,
|
|
87
|
-
message: "Failed to begin transaction"
|
|
88
|
+
reason: classifyError(cause, "Failed to begin transaction", "beginTransaction")
|
|
88
89
|
})
|
|
89
90
|
}), tx => new LibsqlConnectionImpl(tx));
|
|
90
91
|
}
|
|
@@ -92,8 +93,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
92
93
|
return Effect.tryPromise({
|
|
93
94
|
try: () => this.sdk.commit(),
|
|
94
95
|
catch: cause => new SqlError({
|
|
95
|
-
cause,
|
|
96
|
-
message: "Failed to commit transaction"
|
|
96
|
+
reason: classifyError(cause, "Failed to commit transaction", "commitTransaction")
|
|
97
97
|
})
|
|
98
98
|
});
|
|
99
99
|
}
|
|
@@ -101,8 +101,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
101
101
|
return Effect.tryPromise({
|
|
102
102
|
try: () => this.sdk.rollback(),
|
|
103
103
|
catch: cause => new SqlError({
|
|
104
|
-
cause,
|
|
105
|
-
message: "Failed to rollback transaction"
|
|
104
|
+
reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction")
|
|
106
105
|
})
|
|
107
106
|
});
|
|
108
107
|
}
|
|
@@ -152,10 +151,10 @@ export const make = options => Effect.gen(function* () {
|
|
|
152
151
|
* @category layers
|
|
153
152
|
* @since 1.0.0
|
|
154
153
|
*/
|
|
155
|
-
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));
|
|
156
155
|
/**
|
|
157
156
|
* @category layers
|
|
158
157
|
* @since 1.0.0
|
|
159
158
|
*/
|
|
160
|
-
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));
|
|
161
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","Semaphore","
|
|
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.60",
|
|
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.60"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"effect": "^4.0.0-beta.
|
|
52
|
+
"effect": "^4.0.0-beta.60"
|
|
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,22 +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
12
|
import * as Semaphore from "effect/Semaphore"
|
|
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 { SqlError } from "effect/unstable/sql/SqlError"
|
|
17
|
+
import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError"
|
|
18
18
|
import * as Statement from "effect/unstable/sql/Statement"
|
|
19
19
|
|
|
20
20
|
const ATTR_DB_SYSTEM_NAME = "db.system.name"
|
|
21
21
|
|
|
22
|
+
const classifyError = (cause: unknown, message: string, operation: string) =>
|
|
23
|
+
classifySqliteError(cause, { message, operation })
|
|
24
|
+
|
|
22
25
|
/**
|
|
23
26
|
* @category type ids
|
|
24
27
|
* @since 1.0.0
|
|
@@ -44,9 +47,9 @@ export interface LibsqlClient extends Client.SqlClient {
|
|
|
44
47
|
* @category tags
|
|
45
48
|
* @since 1.0.0
|
|
46
49
|
*/
|
|
47
|
-
export const LibsqlClient =
|
|
50
|
+
export const LibsqlClient = Context.Service<LibsqlClient>("@effect/sql-libsql/LibsqlClient")
|
|
48
51
|
|
|
49
|
-
const LibsqlTransaction =
|
|
52
|
+
const LibsqlTransaction = Context.Service<readonly [LibsqlConnection, counter: number]>(
|
|
50
53
|
"@effect/sql-libsql/LibsqlClient/LibsqlTransaction"
|
|
51
54
|
)
|
|
52
55
|
|
|
@@ -163,7 +166,7 @@ export const make = (
|
|
|
163
166
|
return Effect.map(
|
|
164
167
|
Effect.tryPromise({
|
|
165
168
|
try: () => this.sdk.execute({ sql, args: params as Array<any> }),
|
|
166
|
-
catch: (cause) => new SqlError({ cause,
|
|
169
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
167
170
|
}),
|
|
168
171
|
(results) => results.rows
|
|
169
172
|
)
|
|
@@ -175,7 +178,7 @@ export const make = (
|
|
|
175
178
|
) {
|
|
176
179
|
return Effect.tryPromise({
|
|
177
180
|
try: () => this.sdk.execute({ sql, args: params as Array<any> }),
|
|
178
|
-
catch: (cause) => new SqlError({ cause,
|
|
181
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
179
182
|
})
|
|
180
183
|
}
|
|
181
184
|
|
|
@@ -208,7 +211,8 @@ export const make = (
|
|
|
208
211
|
return Effect.map(
|
|
209
212
|
Effect.tryPromise({
|
|
210
213
|
try: () => (this.sdk as Libsql.Client).transaction("write"),
|
|
211
|
-
catch: (cause) =>
|
|
214
|
+
catch: (cause) =>
|
|
215
|
+
new SqlError({ reason: classifyError(cause, "Failed to begin transaction", "beginTransaction") })
|
|
212
216
|
}),
|
|
213
217
|
(tx) => new LibsqlConnectionImpl(tx)
|
|
214
218
|
)
|
|
@@ -216,13 +220,15 @@ export const make = (
|
|
|
216
220
|
get commit() {
|
|
217
221
|
return Effect.tryPromise({
|
|
218
222
|
try: () => (this.sdk as Libsql.Transaction).commit(),
|
|
219
|
-
catch: (cause) =>
|
|
223
|
+
catch: (cause) =>
|
|
224
|
+
new SqlError({ reason: classifyError(cause, "Failed to commit transaction", "commitTransaction") })
|
|
220
225
|
})
|
|
221
226
|
}
|
|
222
227
|
get rollback() {
|
|
223
228
|
return Effect.tryPromise({
|
|
224
229
|
try: () => (this.sdk as Libsql.Transaction).rollback(),
|
|
225
|
-
catch: (cause) =>
|
|
230
|
+
catch: (cause) =>
|
|
231
|
+
new SqlError({ reason: classifyError(cause, "Failed to rollback transaction", "rollbackTransaction") })
|
|
226
232
|
})
|
|
227
233
|
}
|
|
228
234
|
}
|
|
@@ -302,12 +308,12 @@ export const layerConfig: (
|
|
|
302
308
|
) => Layer.Layer<LibsqlClient | Client.SqlClient, Config.ConfigError> = (
|
|
303
309
|
config: Config.Wrap<LibsqlClientConfig>
|
|
304
310
|
): Layer.Layer<LibsqlClient | Client.SqlClient, Config.ConfigError> =>
|
|
305
|
-
Layer.
|
|
311
|
+
Layer.effectContext(
|
|
306
312
|
Config.unwrap(config).asEffect().pipe(
|
|
307
313
|
Effect.flatMap(make),
|
|
308
314
|
Effect.map((client) =>
|
|
309
|
-
|
|
310
|
-
|
|
315
|
+
Context.make(LibsqlClient, client).pipe(
|
|
316
|
+
Context.add(Client.SqlClient, client)
|
|
311
317
|
)
|
|
312
318
|
)
|
|
313
319
|
)
|
|
@@ -320,9 +326,9 @@ export const layerConfig: (
|
|
|
320
326
|
export const layer = (
|
|
321
327
|
config: LibsqlClientConfig
|
|
322
328
|
): Layer.Layer<LibsqlClient | Client.SqlClient> =>
|
|
323
|
-
Layer.
|
|
329
|
+
Layer.effectContext(
|
|
324
330
|
Effect.map(make(config), (client) =>
|
|
325
|
-
|
|
326
|
-
|
|
331
|
+
Context.make(LibsqlClient, client).pipe(
|
|
332
|
+
Context.add(Client.SqlClient, client)
|
|
327
333
|
))
|
|
328
334
|
).pipe(Layer.provide(Reactivity.layer))
|