@effect/sql-sqlite-react-native 4.0.0-beta.6 → 4.0.0-beta.62
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 +3 -3
- package/dist/SqliteClient.d.ts.map +1 -1
- package/dist/SqliteClient.js +13 -11
- package/dist/SqliteClient.js.map +1 -1
- package/package.json +4 -4
- package/src/SqliteClient.ts +17 -13
package/dist/SqliteClient.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Config from "effect/Config";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
2
3
|
import * as Effect from "effect/Effect";
|
|
3
4
|
import * as Layer from "effect/Layer";
|
|
4
5
|
import * as Scope from "effect/Scope";
|
|
5
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
6
6
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
7
7
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
8
8
|
/**
|
|
@@ -29,7 +29,7 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
29
29
|
* @category tags
|
|
30
30
|
* @since 1.0.0
|
|
31
31
|
*/
|
|
32
|
-
export declare const SqliteClient:
|
|
32
|
+
export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
|
|
33
33
|
/**
|
|
34
34
|
* @category models
|
|
35
35
|
* @since 1.0.0
|
|
@@ -46,7 +46,7 @@ export interface SqliteClientConfig {
|
|
|
46
46
|
* @category fiber refs
|
|
47
47
|
* @since 1.0.0
|
|
48
48
|
*/
|
|
49
|
-
export declare const AsyncQuery:
|
|
49
|
+
export declare const AsyncQuery: Context.Reference<boolean>;
|
|
50
50
|
/**
|
|
51
51
|
* @category fiber refs
|
|
52
52
|
* @since 1.0.0
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAUvD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAwD,CAAA;AAE7E;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,+CAA+C,CAAA;AAEpE;;;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;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,6CAAgF,CAAA;AAEzG;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,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;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,4BAGtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CACrB,CAAA;AAIjD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAmGrE,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
|
@@ -3,19 +3,23 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Sqlite from "@op-engineering/op-sqlite";
|
|
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 Fiber from "effect/Fiber";
|
|
8
9
|
import { constFalse, identity } from "effect/Function";
|
|
9
10
|
import * as Layer from "effect/Layer";
|
|
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,12 +29,12 @@ export const TypeId = "~@effect/sql-sqlite-react-native/SqliteClient";
|
|
|
25
29
|
* @category tags
|
|
26
30
|
* @since 1.0.0
|
|
27
31
|
*/
|
|
28
|
-
export const SqliteClient = /*#__PURE__*/
|
|
32
|
+
export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-react-native/SqliteClient");
|
|
29
33
|
/**
|
|
30
34
|
* @category fiber refs
|
|
31
35
|
* @since 1.0.0
|
|
32
36
|
*/
|
|
33
|
-
export const AsyncQuery = /*#__PURE__*/
|
|
37
|
+
export const AsyncQuery = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-react-native/Client/asyncQuery", {
|
|
34
38
|
defaultValue: constFalse
|
|
35
39
|
});
|
|
36
40
|
/**
|
|
@@ -62,8 +66,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
62
66
|
return Effect.map(Effect.tryPromise({
|
|
63
67
|
try: () => db.execute(sql, params),
|
|
64
68
|
catch: cause => new SqlError({
|
|
65
|
-
cause,
|
|
66
|
-
message: "Failed to execute statement (async)"
|
|
69
|
+
reason: classifyError(cause, "Failed to execute statement (async)", "execute")
|
|
67
70
|
})
|
|
68
71
|
}), result => values ? result.rawRows ?? [] : result.rows);
|
|
69
72
|
}
|
|
@@ -73,8 +76,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
73
76
|
return values ? result.rawRows ?? [] : result.rows;
|
|
74
77
|
},
|
|
75
78
|
catch: cause => new SqlError({
|
|
76
|
-
cause,
|
|
77
|
-
message: "Failed to execute statement"
|
|
79
|
+
reason: classifyError(cause, "Failed to execute statement", "execute")
|
|
78
80
|
})
|
|
79
81
|
});
|
|
80
82
|
});
|
|
@@ -101,7 +103,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
101
103
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
102
104
|
const transactionAcquirer = Effect.uninterruptibleMask(restore => {
|
|
103
105
|
const fiber = Fiber.getCurrent();
|
|
104
|
-
const scope =
|
|
106
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope);
|
|
105
107
|
return Effect.as(Effect.tap(restore(semaphore.take(1)), () => Scope.addFinalizer(scope, semaphore.release(1))), connection);
|
|
106
108
|
});
|
|
107
109
|
return Object.assign(yield* Client.make({
|
|
@@ -119,10 +121,10 @@ export const make = options => Effect.gen(function* () {
|
|
|
119
121
|
* @category layers
|
|
120
122
|
* @since 1.0.0
|
|
121
123
|
*/
|
|
122
|
-
export const layerConfig = config => Layer.
|
|
124
|
+
export const layerConfig = config => Layer.effectContext(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
123
125
|
/**
|
|
124
126
|
* @category layers
|
|
125
127
|
* @since 1.0.0
|
|
126
128
|
*/
|
|
127
|
-
export const layer = config => Layer.
|
|
129
|
+
export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
128
130
|
//# sourceMappingURL=SqliteClient.js.map
|
package/dist/SqliteClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["Sqlite","Config","Effect","Fiber","constFalse","identity","Layer","Scope","Semaphore","
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Sqlite","Config","Context","Effect","Fiber","constFalse","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","AsyncQuery","Reference","defaultValue","withAsyncQuery","effect","provideService","make","options","gen","clientOptions","name","filename","location","encryptionKey","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","open","addFinalizer","sync","close","run","sql","params","values","withFiber","fiber","getRef","map","tryPromise","try","execute","catch","reason","result","rawRows","rows","executeSync","executeRaw","executeValues","executeUnprepared","executeStream","die","semaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","context","as","tap","take","release","Object","assign","spanAttributes","entries","config","layerConfig","effectContext","unwrap","asEffect","pipe","flatMap","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-react-native",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.62",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A SQLite toolkit for Effect",
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@op-engineering/op-sqlite": "15.2.
|
|
47
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"@op-engineering/op-sqlite": "15.2.11",
|
|
47
|
+
"effect": "^4.0.0-beta.62"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@op-engineering/op-sqlite": "15.0.4",
|
|
51
|
-
"effect": "^4.0.0-beta.
|
|
51
|
+
"effect": "^4.0.0-beta.62"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"codegen": "effect-utils codegen",
|
package/src/SqliteClient.ts
CHANGED
|
@@ -3,22 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Sqlite from "@op-engineering/op-sqlite"
|
|
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 Fiber from "effect/Fiber"
|
|
8
9
|
import { constFalse, identity } from "effect/Function"
|
|
9
10
|
import * as Layer from "effect/Layer"
|
|
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
|
|
@@ -47,7 +50,7 @@ export interface SqliteClient extends Client.SqlClient {
|
|
|
47
50
|
* @category tags
|
|
48
51
|
* @since 1.0.0
|
|
49
52
|
*/
|
|
50
|
-
export const SqliteClient =
|
|
53
|
+
export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-react-native/SqliteClient")
|
|
51
54
|
|
|
52
55
|
/**
|
|
53
56
|
* @category models
|
|
@@ -66,7 +69,7 @@ export interface SqliteClientConfig {
|
|
|
66
69
|
* @category fiber refs
|
|
67
70
|
* @since 1.0.0
|
|
68
71
|
*/
|
|
69
|
-
export const AsyncQuery =
|
|
72
|
+
export const AsyncQuery = Context.Reference<boolean>(
|
|
70
73
|
"@effect/sql-sqlite-react-native/Client/asyncQuery",
|
|
71
74
|
{ defaultValue: constFalse }
|
|
72
75
|
)
|
|
@@ -117,7 +120,8 @@ export const make = (
|
|
|
117
120
|
return Effect.map(
|
|
118
121
|
Effect.tryPromise({
|
|
119
122
|
try: () => db.execute(sql, params as Array<any>),
|
|
120
|
-
catch: (cause) =>
|
|
123
|
+
catch: (cause) =>
|
|
124
|
+
new SqlError({ reason: classifyError(cause, "Failed to execute statement (async)", "execute") })
|
|
121
125
|
}),
|
|
122
126
|
(result) => values ? result.rawRows ?? [] : result.rows
|
|
123
127
|
)
|
|
@@ -127,7 +131,7 @@ export const make = (
|
|
|
127
131
|
const result = db.executeSync(sql, params as Array<any>)
|
|
128
132
|
return values ? result.rawRows ?? [] : result.rows
|
|
129
133
|
},
|
|
130
|
-
catch: (cause) => new SqlError({ cause,
|
|
134
|
+
catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
|
|
131
135
|
})
|
|
132
136
|
})
|
|
133
137
|
|
|
@@ -158,7 +162,7 @@ export const make = (
|
|
|
158
162
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection))
|
|
159
163
|
const transactionAcquirer = Effect.uninterruptibleMask((restore) => {
|
|
160
164
|
const fiber = Fiber.getCurrent()!
|
|
161
|
-
const scope =
|
|
165
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope)
|
|
162
166
|
return Effect.as(
|
|
163
167
|
Effect.tap(
|
|
164
168
|
restore(semaphore.take(1)),
|
|
@@ -193,12 +197,12 @@ export const make = (
|
|
|
193
197
|
export const layerConfig = (
|
|
194
198
|
config: Config.Wrap<SqliteClientConfig>
|
|
195
199
|
): Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError> =>
|
|
196
|
-
Layer.
|
|
200
|
+
Layer.effectContext(
|
|
197
201
|
Config.unwrap(config).asEffect().pipe(
|
|
198
202
|
Effect.flatMap(make),
|
|
199
203
|
Effect.map((client) =>
|
|
200
|
-
|
|
201
|
-
|
|
204
|
+
Context.make(SqliteClient, client).pipe(
|
|
205
|
+
Context.add(Client.SqlClient, client)
|
|
202
206
|
)
|
|
203
207
|
)
|
|
204
208
|
)
|
|
@@ -211,10 +215,10 @@ export const layerConfig = (
|
|
|
211
215
|
export const layer = (
|
|
212
216
|
config: SqliteClientConfig
|
|
213
217
|
): Layer.Layer<SqliteClient | Client.SqlClient> =>
|
|
214
|
-
Layer.
|
|
218
|
+
Layer.effectContext(
|
|
215
219
|
Effect.map(make(config), (client) =>
|
|
216
|
-
|
|
217
|
-
|
|
220
|
+
Context.make(SqliteClient, client).pipe(
|
|
221
|
+
Context.add(Client.SqlClient, client)
|
|
218
222
|
))
|
|
219
223
|
).pipe(Layer.provide(Reactivity.layer))
|
|
220
224
|
|