@effect/sql-sqlite-bun 4.0.0-beta.4 → 4.0.0-beta.40
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/SqliteClient.d.ts.map +1 -1
- package/dist/SqliteClient.js +11 -10
- package/dist/SqliteClient.js.map +1 -1
- package/package.json +4 -4
- package/src/SqliteClient.ts +11 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAQ5E;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA+C,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,sCAAsC,CAAA;AAE3D;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEvE,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,gDAAoE,CAAA;AAE7F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAOD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAsHrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
|
package/dist/SqliteClient.js
CHANGED
|
@@ -8,13 +8,18 @@ import * as Fiber from "effect/Fiber";
|
|
|
8
8
|
import { identity } from "effect/Function";
|
|
9
9
|
import * as Layer from "effect/Layer";
|
|
10
10
|
import * as Scope from "effect/Scope";
|
|
11
|
+
import * as Semaphore from "effect/Semaphore";
|
|
11
12
|
import * as ServiceMap from "effect/ServiceMap";
|
|
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
|
|
@@ -51,8 +56,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
51
56
|
return Effect.succeed(statement.all(...params) ?? []);
|
|
52
57
|
} catch (cause) {
|
|
53
58
|
return Effect.fail(new SqlError({
|
|
54
|
-
cause,
|
|
55
|
-
message: "Failed to execute statement"
|
|
59
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
56
60
|
}));
|
|
57
61
|
}
|
|
58
62
|
});
|
|
@@ -65,8 +69,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
65
69
|
return Effect.succeed(statement.values(...params) ?? []);
|
|
66
70
|
} catch (cause) {
|
|
67
71
|
return Effect.fail(new SqlError({
|
|
68
|
-
cause,
|
|
69
|
-
message: "Failed to execute statement"
|
|
72
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
70
73
|
}));
|
|
71
74
|
}
|
|
72
75
|
});
|
|
@@ -89,20 +92,18 @@ export const make = options => Effect.gen(function* () {
|
|
|
89
92
|
export: Effect.try({
|
|
90
93
|
try: () => db.serialize(),
|
|
91
94
|
catch: cause => new SqlError({
|
|
92
|
-
cause,
|
|
93
|
-
message: "Failed to export database"
|
|
95
|
+
reason: classifyError(cause, "Failed to export database", "export")
|
|
94
96
|
})
|
|
95
97
|
}),
|
|
96
98
|
loadExtension: path => Effect.try({
|
|
97
99
|
try: () => db.loadExtension(path),
|
|
98
100
|
catch: cause => new SqlError({
|
|
99
|
-
cause,
|
|
100
|
-
message: "Failed to load extension"
|
|
101
|
+
reason: classifyError(cause, "Failed to load extension", "loadExtension")
|
|
101
102
|
})
|
|
102
103
|
})
|
|
103
104
|
});
|
|
104
105
|
});
|
|
105
|
-
const semaphore = yield*
|
|
106
|
+
const semaphore = yield* Semaphore.make(1);
|
|
106
107
|
const connection = yield* makeConnection;
|
|
107
108
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
108
109
|
const transactionAcquirer = Effect.uninterruptibleMask(restore => {
|
package/dist/SqliteClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["Database","Config","Effect","Fiber","identity","Layer","Scope","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","ATTR_DB_SYSTEM_NAME","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","filename","readonly","readwrite","create","addFinalizer","sync","close","disableWAL","run","sql","params","withFiber","fiber","statement","query","useSafeIntegers","get","services","SafeIntegers","safeIntegers","succeed","all","
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Database","Config","Effect","Fiber","identity","Layer","Scope","Semaphore","ServiceMap","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","filename","readonly","readwrite","create","addFinalizer","sync","close","disableWAL","run","sql","params","withFiber","fiber","statement","query","useSafeIntegers","get","services","SafeIntegers","safeIntegers","succeed","all","fail","reason","runValues","values","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","die","export","try","serialize","catch","loadExtension","path","semaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","flatMap","_","layerConfig","effectServices","unwrap","asEffect","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-sqlite-bun",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.40",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A SQLite toolkit for Effect",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/bun": "^1.3.8",
|
|
47
|
-
"@effect/platform-bun": "^4.0.0-beta.
|
|
48
|
-
"effect": "^4.0.0-beta.
|
|
47
|
+
"@effect/platform-bun": "^4.0.0-beta.40",
|
|
48
|
+
"effect": "^4.0.0-beta.40"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"effect": "^4.0.0-beta.
|
|
51
|
+
"effect": "^4.0.0-beta.40"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"codegen": "effect-utils codegen",
|
package/src/SqliteClient.ts
CHANGED
|
@@ -8,16 +8,20 @@ import * as Fiber from "effect/Fiber"
|
|
|
8
8
|
import { identity } from "effect/Function"
|
|
9
9
|
import * as Layer from "effect/Layer"
|
|
10
10
|
import * as Scope from "effect/Scope"
|
|
11
|
+
import * as Semaphore from "effect/Semaphore"
|
|
11
12
|
import * as ServiceMap from "effect/ServiceMap"
|
|
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
|
|
@@ -111,7 +115,7 @@ export const make = (
|
|
|
111
115
|
try {
|
|
112
116
|
return Effect.succeed((statement.all(...(params as any)) ?? []) as Array<any>)
|
|
113
117
|
} catch (cause) {
|
|
114
|
-
return Effect.fail(new SqlError({ cause,
|
|
118
|
+
return Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
|
|
115
119
|
}
|
|
116
120
|
})
|
|
117
121
|
|
|
@@ -127,7 +131,7 @@ export const make = (
|
|
|
127
131
|
try {
|
|
128
132
|
return Effect.succeed((statement.values(...(params as any)) ?? []) as Array<any>)
|
|
129
133
|
} catch (cause) {
|
|
130
|
-
return Effect.fail(new SqlError({ cause,
|
|
134
|
+
return Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
|
|
131
135
|
}
|
|
132
136
|
})
|
|
133
137
|
|
|
@@ -151,17 +155,18 @@ export const make = (
|
|
|
151
155
|
},
|
|
152
156
|
export: Effect.try({
|
|
153
157
|
try: () => db.serialize(),
|
|
154
|
-
catch: (cause) => new SqlError({ cause,
|
|
158
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to export database", "export") })
|
|
155
159
|
}),
|
|
156
160
|
loadExtension: (path) =>
|
|
157
161
|
Effect.try({
|
|
158
162
|
try: () => db.loadExtension(path),
|
|
159
|
-
catch: (cause) =>
|
|
163
|
+
catch: (cause) =>
|
|
164
|
+
new SqlError({ reason: classifyError(cause, "Failed to load extension", "loadExtension") })
|
|
160
165
|
})
|
|
161
166
|
})
|
|
162
167
|
})
|
|
163
168
|
|
|
164
|
-
const semaphore = yield*
|
|
169
|
+
const semaphore = yield* Semaphore.make(1)
|
|
165
170
|
const connection = yield* makeConnection
|
|
166
171
|
|
|
167
172
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection))
|