@effect/sql-sqlite-node 0.21.11 → 0.22.0
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/cjs/SqliteClient.js +12 -13
- package/dist/cjs/SqliteClient.js.map +1 -1
- package/dist/dts/SqliteClient.d.ts +2 -1
- package/dist/dts/SqliteClient.d.ts.map +1 -1
- package/dist/esm/SqliteClient.js +12 -13
- package/dist/esm/SqliteClient.js.map +1 -1
- package/package.json +4 -4
- package/src/SqliteClient.ts +20 -27
package/dist/cjs/SqliteClient.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.make = exports.layerConfig = exports.layer = exports.TypeId = exports.SqliteClient = void 0;
|
|
7
|
+
var Reactivity = _interopRequireWildcard(require("@effect/experimental/Reactivity"));
|
|
7
8
|
var Client = _interopRequireWildcard(require("@effect/sql/SqlClient"));
|
|
8
9
|
var _SqlError = require("@effect/sql/SqlError");
|
|
9
10
|
var Statement = _interopRequireWildcard(require("@effect/sql/Statement"));
|
|
@@ -40,7 +41,7 @@ const SqliteClient = exports.SqliteClient = /*#__PURE__*/Context.GenericTag("@ef
|
|
|
40
41
|
*/
|
|
41
42
|
const make = options => Effect.gen(function* () {
|
|
42
43
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
43
|
-
const transformRows = Statement.defaultTransforms(options.transformResultNames).array;
|
|
44
|
+
const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames).array : undefined;
|
|
44
45
|
const makeConnection = Effect.gen(function* () {
|
|
45
46
|
const scope = yield* Effect.scope;
|
|
46
47
|
const db = new _betterSqlite.default(options.filename, {
|
|
@@ -75,7 +76,6 @@ const make = options => Effect.gen(function* () {
|
|
|
75
76
|
})
|
|
76
77
|
});
|
|
77
78
|
const run = (sql, params, raw = false) => Effect.flatMap(prepareCache.get(sql), s => runStatement(s, params, raw));
|
|
78
|
-
const runTransform = options.transformResultNames ? (sql, params) => Effect.map(run(sql, params), transformRows) : run;
|
|
79
79
|
const runValues = (sql, params) => Effect.acquireUseRelease(prepareCache.get(sql), statement => Effect.try({
|
|
80
80
|
try: () => {
|
|
81
81
|
if (statement.reader) {
|
|
@@ -91,8 +91,8 @@ const make = options => Effect.gen(function* () {
|
|
|
91
91
|
})
|
|
92
92
|
}), statement => Effect.sync(() => statement.reader && statement.raw(false)));
|
|
93
93
|
return (0, _Function.identity)({
|
|
94
|
-
execute(sql, params) {
|
|
95
|
-
return
|
|
94
|
+
execute(sql, params, transformRows) {
|
|
95
|
+
return transformRows ? Effect.map(run(sql, params), transformRows) : run(sql, params);
|
|
96
96
|
},
|
|
97
97
|
executeRaw(sql, params) {
|
|
98
98
|
return run(sql, params, true);
|
|
@@ -100,11 +100,9 @@ const make = options => Effect.gen(function* () {
|
|
|
100
100
|
executeValues(sql, params) {
|
|
101
101
|
return runValues(sql, params);
|
|
102
102
|
},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
executeUnprepared(sql, params) {
|
|
107
|
-
return Effect.map(runStatement(db.prepare(sql), params ?? [], false), transformRows);
|
|
103
|
+
executeUnprepared(sql, params, transformRows) {
|
|
104
|
+
const effect = runStatement(db.prepare(sql), params ?? [], false);
|
|
105
|
+
return transformRows ? Effect.map(effect, transformRows) : effect;
|
|
108
106
|
},
|
|
109
107
|
executeStream(_sql, _params) {
|
|
110
108
|
return Effect.dieMessage("executeStream not implemented");
|
|
@@ -140,11 +138,12 @@ const make = options => Effect.gen(function* () {
|
|
|
140
138
|
const connection = yield* makeConnection;
|
|
141
139
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
142
140
|
const transactionAcquirer = Effect.uninterruptibleMask(restore => Effect.as(Effect.zipRight(restore(semaphore.take(1)), Effect.tap(Effect.scope, scope => Scope.addFinalizer(scope, semaphore.release(1)))), connection));
|
|
143
|
-
return Object.assign(Client.make({
|
|
141
|
+
return Object.assign(yield* Client.make({
|
|
144
142
|
acquirer,
|
|
145
143
|
compiler,
|
|
146
144
|
transactionAcquirer,
|
|
147
|
-
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]]
|
|
145
|
+
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]],
|
|
146
|
+
transformRows
|
|
148
147
|
}), {
|
|
149
148
|
[TypeId]: TypeId,
|
|
150
149
|
config: options,
|
|
@@ -158,12 +157,12 @@ const make = options => Effect.gen(function* () {
|
|
|
158
157
|
* @since 1.0.0
|
|
159
158
|
*/
|
|
160
159
|
exports.make = make;
|
|
161
|
-
const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))));
|
|
160
|
+
const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
162
161
|
/**
|
|
163
162
|
* @category layers
|
|
164
163
|
* @since 1.0.0
|
|
165
164
|
*/
|
|
166
165
|
exports.layerConfig = layerConfig;
|
|
167
|
-
const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))));
|
|
166
|
+
const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
168
167
|
exports.layer = layer;
|
|
169
168
|
//# sourceMappingURL=SqliteClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Reactivity","_interopRequireWildcard","require","Client","_SqlError","Statement","Otel","_betterSqlite","_interopRequireDefault","Cache","Config","Context","Duration","Effect","_Function","Layer","Scope","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","SqliteClient","GenericTag","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","scope","db","Sqlite","filename","readonly","addFinalizer","sync","close","disableWAL","pragma","prepareCache","capacity","prepareCacheSize","timeToLive","prepareCacheTTL","minutes","lookup","sql","try","prepare","catch","cause","SqlError","message","runStatement","statement","params","raw","reader","all","result","run","flatMap","s","runValues","acquireUseRelease","identity","execute","map","executeRaw","executeValues","executeUnprepared","effect","executeStream","_sql","_params","dieMessage","export","serialize","backup","destination","tryPromise","loadExtension","path","semaphore","makeSemaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","as","zipRight","take","tap","release","assign","spanAttributes","entries","SEMATTRS_DB_SYSTEM","DBSYSTEMVALUES_SQLITE","config","_","layerConfig","scopedContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Reactivity from "@effect/experimental/Reactivity";
|
|
4
5
|
import * as Client from "@effect/sql/SqlClient";
|
|
5
6
|
import { SqlError } from "@effect/sql/SqlError";
|
|
6
7
|
import * as Config from "effect/Config";
|
|
@@ -64,7 +65,7 @@ export interface SqliteClientConfig {
|
|
|
64
65
|
* @category constructor
|
|
65
66
|
* @since 1.0.0
|
|
66
67
|
*/
|
|
67
|
-
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope>;
|
|
68
|
+
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>;
|
|
68
69
|
/**
|
|
69
70
|
* @category layers
|
|
70
71
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../../src/SqliteClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAK/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2D,CAAA;AAEvF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;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,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IACjF,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,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,yCAA2E,CAAA;AAEpG;;;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,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACzC,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;AAQD;;;GAGG;AACH,eAAO,MAAM,IAAI,YACN,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../../src/SqliteClient.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/SqliteClient.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Reactivity from "@effect/experimental/Reactivity";
|
|
4
5
|
import * as Client from "@effect/sql/SqlClient";
|
|
5
6
|
import { SqlError } from "@effect/sql/SqlError";
|
|
6
7
|
import * as Statement from "@effect/sql/Statement";
|
|
@@ -30,7 +31,7 @@ export const SqliteClient = /*#__PURE__*/Context.GenericTag("@effect/sql-sqlite-
|
|
|
30
31
|
*/
|
|
31
32
|
export const make = options => Effect.gen(function* () {
|
|
32
33
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
33
|
-
const transformRows = Statement.defaultTransforms(options.transformResultNames).array;
|
|
34
|
+
const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames).array : undefined;
|
|
34
35
|
const makeConnection = Effect.gen(function* () {
|
|
35
36
|
const scope = yield* Effect.scope;
|
|
36
37
|
const db = new Sqlite(options.filename, {
|
|
@@ -65,7 +66,6 @@ export const make = options => Effect.gen(function* () {
|
|
|
65
66
|
})
|
|
66
67
|
});
|
|
67
68
|
const run = (sql, params, raw = false) => Effect.flatMap(prepareCache.get(sql), s => runStatement(s, params, raw));
|
|
68
|
-
const runTransform = options.transformResultNames ? (sql, params) => Effect.map(run(sql, params), transformRows) : run;
|
|
69
69
|
const runValues = (sql, params) => Effect.acquireUseRelease(prepareCache.get(sql), statement => Effect.try({
|
|
70
70
|
try: () => {
|
|
71
71
|
if (statement.reader) {
|
|
@@ -81,8 +81,8 @@ export const make = options => Effect.gen(function* () {
|
|
|
81
81
|
})
|
|
82
82
|
}), statement => Effect.sync(() => statement.reader && statement.raw(false)));
|
|
83
83
|
return identity({
|
|
84
|
-
execute(sql, params) {
|
|
85
|
-
return
|
|
84
|
+
execute(sql, params, transformRows) {
|
|
85
|
+
return transformRows ? Effect.map(run(sql, params), transformRows) : run(sql, params);
|
|
86
86
|
},
|
|
87
87
|
executeRaw(sql, params) {
|
|
88
88
|
return run(sql, params, true);
|
|
@@ -90,11 +90,9 @@ export const make = options => Effect.gen(function* () {
|
|
|
90
90
|
executeValues(sql, params) {
|
|
91
91
|
return runValues(sql, params);
|
|
92
92
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
executeUnprepared(sql, params) {
|
|
97
|
-
return Effect.map(runStatement(db.prepare(sql), params ?? [], false), transformRows);
|
|
93
|
+
executeUnprepared(sql, params, transformRows) {
|
|
94
|
+
const effect = runStatement(db.prepare(sql), params ?? [], false);
|
|
95
|
+
return transformRows ? Effect.map(effect, transformRows) : effect;
|
|
98
96
|
},
|
|
99
97
|
executeStream(_sql, _params) {
|
|
100
98
|
return Effect.dieMessage("executeStream not implemented");
|
|
@@ -130,11 +128,12 @@ export const make = options => Effect.gen(function* () {
|
|
|
130
128
|
const connection = yield* makeConnection;
|
|
131
129
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
132
130
|
const transactionAcquirer = Effect.uninterruptibleMask(restore => Effect.as(Effect.zipRight(restore(semaphore.take(1)), Effect.tap(Effect.scope, scope => Scope.addFinalizer(scope, semaphore.release(1)))), connection));
|
|
133
|
-
return Object.assign(Client.make({
|
|
131
|
+
return Object.assign(yield* Client.make({
|
|
134
132
|
acquirer,
|
|
135
133
|
compiler,
|
|
136
134
|
transactionAcquirer,
|
|
137
|
-
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]]
|
|
135
|
+
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]],
|
|
136
|
+
transformRows
|
|
138
137
|
}), {
|
|
139
138
|
[TypeId]: TypeId,
|
|
140
139
|
config: options,
|
|
@@ -147,10 +146,10 @@ export const make = options => Effect.gen(function* () {
|
|
|
147
146
|
* @category layers
|
|
148
147
|
* @since 1.0.0
|
|
149
148
|
*/
|
|
150
|
-
export const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))));
|
|
149
|
+
export const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
151
150
|
/**
|
|
152
151
|
* @category layers
|
|
153
152
|
* @since 1.0.0
|
|
154
153
|
*/
|
|
155
|
-
export const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))));
|
|
154
|
+
export const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
156
155
|
//# sourceMappingURL=SqliteClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["Client","SqlError","Statement","Otel","Sqlite","Cache","Config","Context","Duration","Effect","identity","Layer","Scope","TypeId","Symbol","for","SqliteClient","GenericTag","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Reactivity","Client","SqlError","Statement","Otel","Sqlite","Cache","Config","Context","Duration","Effect","identity","Layer","Scope","TypeId","Symbol","for","SqliteClient","GenericTag","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","scope","db","filename","readonly","addFinalizer","sync","close","disableWAL","pragma","prepareCache","capacity","prepareCacheSize","timeToLive","prepareCacheTTL","minutes","lookup","sql","try","prepare","catch","cause","message","runStatement","statement","params","raw","reader","all","result","run","flatMap","get","s","runValues","acquireUseRelease","execute","map","executeRaw","executeValues","executeUnprepared","effect","executeStream","_sql","_params","dieMessage","export","serialize","backup","destination","tryPromise","loadExtension","path","semaphore","makeSemaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","as","zipRight","take","tap","release","Object","assign","spanAttributes","entries","SEMATTRS_DB_SYSTEM","DBSYSTEMVALUES_SQLITE","config","_","layerConfig","scopedContext","unwrap","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-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "A SQLite toolkit for Effect",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"better-sqlite3": "^11.1.2"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@effect/
|
|
18
|
-
"effect": "^
|
|
19
|
-
"
|
|
17
|
+
"@effect/platform": "^0.69.29",
|
|
18
|
+
"@effect/sql": "^0.21.0",
|
|
19
|
+
"effect": "^3.10.19"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"provenance": true
|
package/src/SqliteClient.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Reactivity from "@effect/experimental/Reactivity"
|
|
4
5
|
import * as Client from "@effect/sql/SqlClient"
|
|
5
6
|
import type { Connection } from "@effect/sql/SqlConnection"
|
|
6
7
|
import { SqlError } from "@effect/sql/SqlError"
|
|
@@ -87,12 +88,14 @@ interface SqliteConnection extends Connection {
|
|
|
87
88
|
*/
|
|
88
89
|
export const make = (
|
|
89
90
|
options: SqliteClientConfig
|
|
90
|
-
): Effect.Effect<SqliteClient, never, Scope.Scope> =>
|
|
91
|
+
): Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity> =>
|
|
91
92
|
Effect.gen(function*() {
|
|
92
93
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames)
|
|
93
|
-
const transformRows =
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
const transformRows = options.transformResultNames ?
|
|
95
|
+
Statement.defaultTransforms(
|
|
96
|
+
options.transformResultNames
|
|
97
|
+
).array :
|
|
98
|
+
undefined
|
|
96
99
|
|
|
97
100
|
const makeConnection = Effect.gen(function*() {
|
|
98
101
|
const scope = yield* Effect.scope
|
|
@@ -141,14 +144,6 @@ export const make = (
|
|
|
141
144
|
(s) => runStatement(s, params, raw)
|
|
142
145
|
)
|
|
143
146
|
|
|
144
|
-
const runTransform = options.transformResultNames
|
|
145
|
-
? (sql: string, params: ReadonlyArray<Statement.Primitive>) =>
|
|
146
|
-
Effect.map(
|
|
147
|
-
run(sql, params),
|
|
148
|
-
transformRows
|
|
149
|
-
)
|
|
150
|
-
: run
|
|
151
|
-
|
|
152
147
|
const runValues = (
|
|
153
148
|
sql: string,
|
|
154
149
|
params: ReadonlyArray<Statement.Primitive>
|
|
@@ -173,8 +168,10 @@ export const make = (
|
|
|
173
168
|
)
|
|
174
169
|
|
|
175
170
|
return identity<SqliteConnection>({
|
|
176
|
-
execute(sql, params) {
|
|
177
|
-
return
|
|
171
|
+
execute(sql, params, transformRows) {
|
|
172
|
+
return transformRows
|
|
173
|
+
? Effect.map(run(sql, params), transformRows)
|
|
174
|
+
: run(sql, params)
|
|
178
175
|
},
|
|
179
176
|
executeRaw(sql, params) {
|
|
180
177
|
return run(sql, params, true)
|
|
@@ -182,14 +179,9 @@ export const make = (
|
|
|
182
179
|
executeValues(sql, params) {
|
|
183
180
|
return runValues(sql, params)
|
|
184
181
|
},
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
executeUnprepared(sql, params) {
|
|
189
|
-
return Effect.map(
|
|
190
|
-
runStatement(db.prepare(sql), params ?? [], false),
|
|
191
|
-
transformRows
|
|
192
|
-
)
|
|
182
|
+
executeUnprepared(sql, params, transformRows) {
|
|
183
|
+
const effect = runStatement(db.prepare(sql), params ?? [], false)
|
|
184
|
+
return transformRows ? Effect.map(effect, transformRows) : effect
|
|
193
185
|
},
|
|
194
186
|
executeStream(_sql, _params) {
|
|
195
187
|
return Effect.dieMessage("executeStream not implemented")
|
|
@@ -231,15 +223,16 @@ export const make = (
|
|
|
231
223
|
)
|
|
232
224
|
|
|
233
225
|
return Object.assign(
|
|
234
|
-
Client.make({
|
|
226
|
+
(yield* Client.make({
|
|
235
227
|
acquirer,
|
|
236
228
|
compiler,
|
|
237
229
|
transactionAcquirer,
|
|
238
230
|
spanAttributes: [
|
|
239
231
|
...(options.spanAttributes ? Object.entries(options.spanAttributes) : []),
|
|
240
232
|
[Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]
|
|
241
|
-
]
|
|
242
|
-
|
|
233
|
+
],
|
|
234
|
+
transformRows
|
|
235
|
+
})) as SqliteClient,
|
|
243
236
|
{
|
|
244
237
|
[TypeId]: TypeId as TypeId,
|
|
245
238
|
config: options,
|
|
@@ -266,7 +259,7 @@ export const layerConfig = (
|
|
|
266
259
|
)
|
|
267
260
|
)
|
|
268
261
|
)
|
|
269
|
-
)
|
|
262
|
+
).pipe(Layer.provide(Reactivity.layer))
|
|
270
263
|
|
|
271
264
|
/**
|
|
272
265
|
* @category layers
|
|
@@ -280,4 +273,4 @@ export const layer = (
|
|
|
280
273
|
Context.make(SqliteClient, client).pipe(
|
|
281
274
|
Context.add(Client.SqlClient, client)
|
|
282
275
|
))
|
|
283
|
-
)
|
|
276
|
+
).pipe(Layer.provide(Reactivity.layer))
|