@effect/sql-sqlite-react-native 0.23.12 → 0.24.1
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 -36
- package/dist/cjs/SqliteClient.js.map +1 -1
- package/dist/dts/SqliteClient.d.ts +2 -8
- package/dist/dts/SqliteClient.d.ts.map +1 -1
- package/dist/esm/SqliteClient.js +12 -36
- package/dist/esm/SqliteClient.js.map +1 -1
- package/package.json +2 -2
- package/src/SqliteClient.ts +19 -86
package/dist/cjs/SqliteClient.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.withAsyncQuery = exports.make = exports.layerConfig = exports.layer = exports.asyncQuery = 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"));
|
|
@@ -16,9 +17,7 @@ var FiberRef = _interopRequireWildcard(require("effect/FiberRef"));
|
|
|
16
17
|
var _Function = require("effect/Function");
|
|
17
18
|
var _GlobalValue = require("effect/GlobalValue");
|
|
18
19
|
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
19
|
-
var Queue = _interopRequireWildcard(require("effect/Queue"));
|
|
20
20
|
var Scope = _interopRequireWildcard(require("effect/Scope"));
|
|
21
|
-
var Stream = _interopRequireWildcard(require("effect/Stream"));
|
|
22
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
23
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
23
|
/**
|
|
@@ -61,7 +60,7 @@ const make = options => Effect.gen(function* (_) {
|
|
|
61
60
|
clientOptions.encryptionKey = options.encryptionKey;
|
|
62
61
|
}
|
|
63
62
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
64
|
-
const transformRows = Statement.defaultTransforms(options.transformResultNames).array;
|
|
63
|
+
const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames).array : undefined;
|
|
65
64
|
const makeConnection = Effect.gen(function* (_) {
|
|
66
65
|
const db = Sqlite.open(clientOptions);
|
|
67
66
|
yield* _(Effect.addFinalizer(() => Effect.sync(() => db.close())));
|
|
@@ -83,10 +82,9 @@ const make = options => Effect.gen(function* (_) {
|
|
|
83
82
|
})
|
|
84
83
|
});
|
|
85
84
|
});
|
|
86
|
-
const runTransform = options.transformResultNames ? (sql, params) => Effect.map(run(sql, params), transformRows) : run;
|
|
87
85
|
return (0, _Function.identity)({
|
|
88
|
-
execute(sql, params) {
|
|
89
|
-
return
|
|
86
|
+
execute(sql, params, transformRows) {
|
|
87
|
+
return transformRows ? Effect.map(run(sql, params), transformRows) : run(sql, params);
|
|
90
88
|
},
|
|
91
89
|
executeRaw(sql, params) {
|
|
92
90
|
return run(sql, params);
|
|
@@ -100,31 +98,11 @@ const make = options => Effect.gen(function* (_) {
|
|
|
100
98
|
return results.map(row => columns.map(column => row[column]));
|
|
101
99
|
});
|
|
102
100
|
},
|
|
103
|
-
|
|
104
|
-
return
|
|
105
|
-
},
|
|
106
|
-
executeUnprepared(sql, params) {
|
|
107
|
-
return runTransform(sql, params);
|
|
101
|
+
executeUnprepared(sql, params, transformRows) {
|
|
102
|
+
return this.execute(sql, params, transformRows);
|
|
108
103
|
},
|
|
109
104
|
executeStream() {
|
|
110
105
|
return Effect.dieMessage("executeStream not implemented");
|
|
111
|
-
},
|
|
112
|
-
reactive(statement, fireOn) {
|
|
113
|
-
const [query, params] = statement.compile();
|
|
114
|
-
return Queue.sliding(1).pipe(Effect.tap(queue => this.execute(query, params).pipe(Effect.flatMap(rows => queue.offer(rows)))), Effect.tap(queue => Effect.acquireRelease(Effect.try({
|
|
115
|
-
try: () => db.reactiveExecute({
|
|
116
|
-
query,
|
|
117
|
-
arguments: params,
|
|
118
|
-
fireOn: fireOn,
|
|
119
|
-
callback(data) {
|
|
120
|
-
queue.unsafeOffer(data.rows);
|
|
121
|
-
}
|
|
122
|
-
}),
|
|
123
|
-
catch: cause => new _SqlError.SqlError({
|
|
124
|
-
cause,
|
|
125
|
-
message: "Failed to execute statement (reactive)"
|
|
126
|
-
})
|
|
127
|
-
}), cancel => Effect.sync(cancel))), Effect.map(Stream.fromQueue), Stream.unwrapScoped);
|
|
128
106
|
}
|
|
129
107
|
});
|
|
130
108
|
});
|
|
@@ -132,17 +110,15 @@ const make = options => Effect.gen(function* (_) {
|
|
|
132
110
|
const connection = yield* _(makeConnection);
|
|
133
111
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
134
112
|
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));
|
|
135
|
-
return Object.assign(Client.make({
|
|
113
|
+
return Object.assign(yield* Client.make({
|
|
136
114
|
acquirer,
|
|
137
115
|
compiler,
|
|
138
116
|
transactionAcquirer,
|
|
139
|
-
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]]
|
|
117
|
+
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]],
|
|
118
|
+
transformRows
|
|
140
119
|
}), {
|
|
141
120
|
[TypeId]: TypeId,
|
|
142
|
-
config: options
|
|
143
|
-
reactive(statement, fireOn) {
|
|
144
|
-
return Stream.unwrap(Effect.map(acquirer, connection => connection.reactive(statement, fireOn)));
|
|
145
|
-
}
|
|
121
|
+
config: options
|
|
146
122
|
});
|
|
147
123
|
});
|
|
148
124
|
/**
|
|
@@ -150,12 +126,12 @@ const make = options => Effect.gen(function* (_) {
|
|
|
150
126
|
* @since 1.0.0
|
|
151
127
|
*/
|
|
152
128
|
exports.make = make;
|
|
153
|
-
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)))));
|
|
129
|
+
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));
|
|
154
130
|
/**
|
|
155
131
|
* @category layers
|
|
156
132
|
* @since 1.0.0
|
|
157
133
|
*/
|
|
158
134
|
exports.layerConfig = layerConfig;
|
|
159
|
-
const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))));
|
|
135
|
+
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));
|
|
160
136
|
exports.layer = layer;
|
|
161
137
|
//# 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","Sqlite","Otel","Config","Context","Effect","FiberRef","_Function","_GlobalValue","Layer","Scope","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","SqliteClient","GenericTag","asyncQuery","globalValue","unsafeMake","withAsyncQuery","effect","locally","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","withFiberRuntime","fiber","getFiberRef","map","tryPromise","try","executeAsync","catch","cause","SqlError","message","result","rows","_array","execute","identity","executeRaw","executeValues","results","length","columns","keys","row","column","executeUnprepared","executeStream","dieMessage","semaphore","makeSemaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","as","zipRight","take","tap","scope","release","assign","spanAttributes","entries","SEMATTRS_DB_SYSTEM","DBSYSTEMVALUES_SQLITE","config","layerConfig","scopedContext","unwrap","pipe","flatMap","client","add","SqlClient","provide","layer"],"sources":["../../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,8 @@
|
|
|
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
|
-
import { SqlError } from "@effect/sql/SqlError";
|
|
6
|
-
import * as Statement from "@effect/sql/Statement";
|
|
7
6
|
import * as Config from "effect/Config";
|
|
8
7
|
import type { ConfigError } from "effect/ConfigError";
|
|
9
8
|
import * as Context from "effect/Context";
|
|
@@ -11,7 +10,6 @@ import * as Effect from "effect/Effect";
|
|
|
11
10
|
import * as FiberRef from "effect/FiberRef";
|
|
12
11
|
import * as Layer from "effect/Layer";
|
|
13
12
|
import * as Scope from "effect/Scope";
|
|
14
|
-
import * as Stream from "effect/Stream";
|
|
15
13
|
/**
|
|
16
14
|
* @category type ids
|
|
17
15
|
* @since 1.0.0
|
|
@@ -29,10 +27,6 @@ export type TypeId = typeof TypeId;
|
|
|
29
27
|
export interface SqliteClient extends Client.SqlClient {
|
|
30
28
|
readonly [TypeId]: TypeId;
|
|
31
29
|
readonly config: SqliteClientConfig;
|
|
32
|
-
readonly reactive: <A>(statement: Statement.Statement<A>, fireOn: ReadonlyArray<{
|
|
33
|
-
readonly table: string;
|
|
34
|
-
readonly ids?: ReadonlyArray<number>;
|
|
35
|
-
}>) => Stream.Stream<ReadonlyArray<A>, SqlError>;
|
|
36
30
|
/** Not supported in sqlite */
|
|
37
31
|
readonly updateValues: never;
|
|
38
32
|
}
|
|
@@ -67,7 +61,7 @@ export declare const withAsyncQuery: <R, E, A>(effect: Effect.Effect<A, E, R>) =
|
|
|
67
61
|
* @category constructor
|
|
68
62
|
* @since 1.0.0
|
|
69
63
|
*/
|
|
70
|
-
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope>;
|
|
64
|
+
export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>;
|
|
71
65
|
/**
|
|
72
66
|
* @category layers
|
|
73
67
|
* @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,
|
|
1
|
+
{"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../../src/SqliteClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAM/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,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAG3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAmE,CAAA;AAE/F;;;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;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,yCAAmF,CAAA;AAE5G;;;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,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAGjD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAA6C,CAAA;AAInH;;;GAGG;AACH,eAAO,MAAM,IAAI,YACN,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAqGrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,WACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAC7C,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAUlB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,WACR,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAMlB,CAAA"}
|
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";
|
|
@@ -13,9 +14,7 @@ import * as FiberRef from "effect/FiberRef";
|
|
|
13
14
|
import { identity } from "effect/Function";
|
|
14
15
|
import { globalValue } from "effect/GlobalValue";
|
|
15
16
|
import * as Layer from "effect/Layer";
|
|
16
|
-
import * as Queue from "effect/Queue";
|
|
17
17
|
import * as Scope from "effect/Scope";
|
|
18
|
-
import * as Stream from "effect/Stream";
|
|
19
18
|
/**
|
|
20
19
|
* @category type ids
|
|
21
20
|
* @since 1.0.0
|
|
@@ -51,7 +50,7 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
51
50
|
clientOptions.encryptionKey = options.encryptionKey;
|
|
52
51
|
}
|
|
53
52
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
54
|
-
const transformRows = Statement.defaultTransforms(options.transformResultNames).array;
|
|
53
|
+
const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames).array : undefined;
|
|
55
54
|
const makeConnection = Effect.gen(function* (_) {
|
|
56
55
|
const db = Sqlite.open(clientOptions);
|
|
57
56
|
yield* _(Effect.addFinalizer(() => Effect.sync(() => db.close())));
|
|
@@ -73,10 +72,9 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
73
72
|
})
|
|
74
73
|
});
|
|
75
74
|
});
|
|
76
|
-
const runTransform = options.transformResultNames ? (sql, params) => Effect.map(run(sql, params), transformRows) : run;
|
|
77
75
|
return identity({
|
|
78
|
-
execute(sql, params) {
|
|
79
|
-
return
|
|
76
|
+
execute(sql, params, transformRows) {
|
|
77
|
+
return transformRows ? Effect.map(run(sql, params), transformRows) : run(sql, params);
|
|
80
78
|
},
|
|
81
79
|
executeRaw(sql, params) {
|
|
82
80
|
return run(sql, params);
|
|
@@ -90,31 +88,11 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
90
88
|
return results.map(row => columns.map(column => row[column]));
|
|
91
89
|
});
|
|
92
90
|
},
|
|
93
|
-
|
|
94
|
-
return
|
|
95
|
-
},
|
|
96
|
-
executeUnprepared(sql, params) {
|
|
97
|
-
return runTransform(sql, params);
|
|
91
|
+
executeUnprepared(sql, params, transformRows) {
|
|
92
|
+
return this.execute(sql, params, transformRows);
|
|
98
93
|
},
|
|
99
94
|
executeStream() {
|
|
100
95
|
return Effect.dieMessage("executeStream not implemented");
|
|
101
|
-
},
|
|
102
|
-
reactive(statement, fireOn) {
|
|
103
|
-
const [query, params] = statement.compile();
|
|
104
|
-
return Queue.sliding(1).pipe(Effect.tap(queue => this.execute(query, params).pipe(Effect.flatMap(rows => queue.offer(rows)))), Effect.tap(queue => Effect.acquireRelease(Effect.try({
|
|
105
|
-
try: () => db.reactiveExecute({
|
|
106
|
-
query,
|
|
107
|
-
arguments: params,
|
|
108
|
-
fireOn: fireOn,
|
|
109
|
-
callback(data) {
|
|
110
|
-
queue.unsafeOffer(data.rows);
|
|
111
|
-
}
|
|
112
|
-
}),
|
|
113
|
-
catch: cause => new SqlError({
|
|
114
|
-
cause,
|
|
115
|
-
message: "Failed to execute statement (reactive)"
|
|
116
|
-
})
|
|
117
|
-
}), cancel => Effect.sync(cancel))), Effect.map(Stream.fromQueue), Stream.unwrapScoped);
|
|
118
96
|
}
|
|
119
97
|
});
|
|
120
98
|
});
|
|
@@ -122,27 +100,25 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
122
100
|
const connection = yield* _(makeConnection);
|
|
123
101
|
const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
|
|
124
102
|
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));
|
|
125
|
-
return Object.assign(Client.make({
|
|
103
|
+
return Object.assign(yield* Client.make({
|
|
126
104
|
acquirer,
|
|
127
105
|
compiler,
|
|
128
106
|
transactionAcquirer,
|
|
129
|
-
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]]
|
|
107
|
+
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]],
|
|
108
|
+
transformRows
|
|
130
109
|
}), {
|
|
131
110
|
[TypeId]: TypeId,
|
|
132
|
-
config: options
|
|
133
|
-
reactive(statement, fireOn) {
|
|
134
|
-
return Stream.unwrap(Effect.map(acquirer, connection => connection.reactive(statement, fireOn)));
|
|
135
|
-
}
|
|
111
|
+
config: options
|
|
136
112
|
});
|
|
137
113
|
});
|
|
138
114
|
/**
|
|
139
115
|
* @category layers
|
|
140
116
|
* @since 1.0.0
|
|
141
117
|
*/
|
|
142
|
-
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)))));
|
|
118
|
+
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));
|
|
143
119
|
/**
|
|
144
120
|
* @category layers
|
|
145
121
|
* @since 1.0.0
|
|
146
122
|
*/
|
|
147
|
-
export const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))));
|
|
123
|
+
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));
|
|
148
124
|
//# sourceMappingURL=SqliteClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteClient.js","names":["Client","SqlError","Statement","Sqlite","Otel","Config","Context","Effect","FiberRef","identity","globalValue","Layer","
|
|
1
|
+
{"version":3,"file":"SqliteClient.js","names":["Reactivity","Client","SqlError","Statement","Sqlite","Otel","Config","Context","Effect","FiberRef","identity","globalValue","Layer","Scope","TypeId","Symbol","for","SqliteClient","GenericTag","asyncQuery","unsafeMake","withAsyncQuery","effect","locally","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","withFiberRuntime","fiber","getFiberRef","map","tryPromise","try","executeAsync","catch","cause","message","result","rows","_array","execute","executeRaw","executeValues","results","length","columns","Object","keys","row","column","executeUnprepared","executeStream","dieMessage","semaphore","makeSemaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","as","zipRight","take","tap","scope","release","assign","spanAttributes","entries","SEMATTRS_DB_SYSTEM","DBSYSTEMVALUES_SQLITE","config","layerConfig","scopedContext","unwrap","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": "0.
|
|
3
|
+
"version": "0.24.1",
|
|
4
4
|
"description": "A SQLite toolkit for Effect",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
16
|
"@op-engineering/op-sqlite": "7.1.0",
|
|
17
|
-
"@effect/sql": "^0.
|
|
17
|
+
"@effect/sql": "^0.21.1",
|
|
18
18
|
"effect": "^3.10.19"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
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"
|
|
@@ -15,9 +16,7 @@ import * as FiberRef from "effect/FiberRef"
|
|
|
15
16
|
import { identity } from "effect/Function"
|
|
16
17
|
import { globalValue } from "effect/GlobalValue"
|
|
17
18
|
import * as Layer from "effect/Layer"
|
|
18
|
-
import * as Queue from "effect/Queue"
|
|
19
19
|
import * as Scope from "effect/Scope"
|
|
20
|
-
import * as Stream from "effect/Stream"
|
|
21
20
|
|
|
22
21
|
/**
|
|
23
22
|
* @category type ids
|
|
@@ -38,13 +37,6 @@ export type TypeId = typeof TypeId
|
|
|
38
37
|
export interface SqliteClient extends Client.SqlClient {
|
|
39
38
|
readonly [TypeId]: TypeId
|
|
40
39
|
readonly config: SqliteClientConfig
|
|
41
|
-
readonly reactive: <A>(
|
|
42
|
-
statement: Statement.Statement<A>,
|
|
43
|
-
fireOn: ReadonlyArray<{
|
|
44
|
-
readonly table: string
|
|
45
|
-
readonly ids?: ReadonlyArray<number>
|
|
46
|
-
}>
|
|
47
|
-
) => Stream.Stream<ReadonlyArray<A>, SqlError>
|
|
48
40
|
|
|
49
41
|
/** Not supported in sqlite */
|
|
50
42
|
readonly updateValues: never
|
|
@@ -84,15 +76,7 @@ export const asyncQuery: FiberRef.FiberRef<boolean> = globalValue(
|
|
|
84
76
|
*/
|
|
85
77
|
export const withAsyncQuery = <R, E, A>(effect: Effect.Effect<A, E, R>) => Effect.locally(effect, asyncQuery, true)
|
|
86
78
|
|
|
87
|
-
interface SqliteConnection extends Connection {
|
|
88
|
-
readonly reactive: <A>(
|
|
89
|
-
statement: Statement.Statement<A>,
|
|
90
|
-
fireOn: ReadonlyArray<{
|
|
91
|
-
readonly table: string
|
|
92
|
-
readonly ids?: ReadonlyArray<number>
|
|
93
|
-
}>
|
|
94
|
-
) => Stream.Stream<ReadonlyArray<A>, SqlError>
|
|
95
|
-
}
|
|
79
|
+
interface SqliteConnection extends Connection {}
|
|
96
80
|
|
|
97
81
|
/**
|
|
98
82
|
* @category constructor
|
|
@@ -100,7 +84,7 @@ interface SqliteConnection extends Connection {
|
|
|
100
84
|
*/
|
|
101
85
|
export const make = (
|
|
102
86
|
options: SqliteClientConfig
|
|
103
|
-
): Effect.Effect<SqliteClient, never, Scope.Scope> =>
|
|
87
|
+
): Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity> =>
|
|
104
88
|
Effect.gen(function*(_) {
|
|
105
89
|
const clientOptions: Parameters<typeof Sqlite.open>[0] = {
|
|
106
90
|
name: options.filename
|
|
@@ -113,9 +97,9 @@ export const make = (
|
|
|
113
97
|
}
|
|
114
98
|
|
|
115
99
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames)
|
|
116
|
-
const transformRows =
|
|
117
|
-
options.transformResultNames
|
|
118
|
-
|
|
100
|
+
const transformRows = options.transformResultNames ?
|
|
101
|
+
Statement.defaultTransforms(options.transformResultNames).array :
|
|
102
|
+
undefined
|
|
119
103
|
|
|
120
104
|
const makeConnection = Effect.gen(function*(_) {
|
|
121
105
|
const db = Sqlite.open(clientOptions)
|
|
@@ -141,13 +125,11 @@ export const make = (
|
|
|
141
125
|
})
|
|
142
126
|
})
|
|
143
127
|
|
|
144
|
-
const runTransform = options.transformResultNames
|
|
145
|
-
? (sql: string, params?: ReadonlyArray<Statement.Primitive>) => Effect.map(run(sql, params), transformRows)
|
|
146
|
-
: run
|
|
147
|
-
|
|
148
128
|
return identity<SqliteConnection>({
|
|
149
|
-
execute(sql, params) {
|
|
150
|
-
return
|
|
129
|
+
execute(sql, params, transformRows) {
|
|
130
|
+
return transformRows
|
|
131
|
+
? Effect.map(run(sql, params), transformRows)
|
|
132
|
+
: run(sql, params)
|
|
151
133
|
},
|
|
152
134
|
executeRaw(sql, params) {
|
|
153
135
|
return run(sql, params)
|
|
@@ -161,49 +143,11 @@ export const make = (
|
|
|
161
143
|
return results.map((row) => columns.map((column) => row[column]))
|
|
162
144
|
})
|
|
163
145
|
},
|
|
164
|
-
|
|
165
|
-
return
|
|
166
|
-
},
|
|
167
|
-
executeUnprepared(sql, params) {
|
|
168
|
-
return runTransform(sql, params)
|
|
146
|
+
executeUnprepared(sql, params, transformRows) {
|
|
147
|
+
return this.execute(sql, params, transformRows)
|
|
169
148
|
},
|
|
170
149
|
executeStream() {
|
|
171
150
|
return Effect.dieMessage("executeStream not implemented")
|
|
172
|
-
},
|
|
173
|
-
reactive<A>(
|
|
174
|
-
statement: Statement.Statement<A>,
|
|
175
|
-
fireOn: ReadonlyArray<{
|
|
176
|
-
readonly table: string
|
|
177
|
-
readonly ids?: ReadonlyArray<number>
|
|
178
|
-
}>
|
|
179
|
-
) {
|
|
180
|
-
const [query, params] = statement.compile()
|
|
181
|
-
return Queue.sliding<ReadonlyArray<A>>(1).pipe(
|
|
182
|
-
Effect.tap((queue) =>
|
|
183
|
-
this.execute(query, params).pipe(
|
|
184
|
-
Effect.flatMap((rows) => queue.offer(rows))
|
|
185
|
-
)
|
|
186
|
-
),
|
|
187
|
-
Effect.tap((queue) =>
|
|
188
|
-
Effect.acquireRelease(
|
|
189
|
-
Effect.try({
|
|
190
|
-
try: () =>
|
|
191
|
-
db.reactiveExecute({
|
|
192
|
-
query,
|
|
193
|
-
arguments: params as any,
|
|
194
|
-
fireOn: fireOn as any,
|
|
195
|
-
callback(data) {
|
|
196
|
-
queue.unsafeOffer(data.rows)
|
|
197
|
-
}
|
|
198
|
-
}),
|
|
199
|
-
catch: (cause) => new SqlError({ cause, message: "Failed to execute statement (reactive)" })
|
|
200
|
-
}),
|
|
201
|
-
(cancel) => Effect.sync(cancel)
|
|
202
|
-
)
|
|
203
|
-
),
|
|
204
|
-
Effect.map(Stream.fromQueue),
|
|
205
|
-
Stream.unwrapScoped
|
|
206
|
-
)
|
|
207
151
|
}
|
|
208
152
|
})
|
|
209
153
|
})
|
|
@@ -226,30 +170,19 @@ export const make = (
|
|
|
226
170
|
)
|
|
227
171
|
|
|
228
172
|
return Object.assign(
|
|
229
|
-
Client.make({
|
|
173
|
+
(yield* Client.make({
|
|
230
174
|
acquirer,
|
|
231
175
|
compiler,
|
|
232
176
|
transactionAcquirer,
|
|
233
177
|
spanAttributes: [
|
|
234
178
|
...(options.spanAttributes ? Object.entries(options.spanAttributes) : []),
|
|
235
179
|
[Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]
|
|
236
|
-
]
|
|
237
|
-
|
|
180
|
+
],
|
|
181
|
+
transformRows
|
|
182
|
+
})) as SqliteClient,
|
|
238
183
|
{
|
|
239
184
|
[TypeId]: TypeId,
|
|
240
|
-
config: options
|
|
241
|
-
reactive<A>(
|
|
242
|
-
statement: Statement.Statement<A>,
|
|
243
|
-
fireOn: ReadonlyArray<{
|
|
244
|
-
readonly table: string
|
|
245
|
-
readonly ids?: ReadonlyArray<number>
|
|
246
|
-
}>
|
|
247
|
-
) {
|
|
248
|
-
return Stream.unwrap(Effect.map(
|
|
249
|
-
acquirer,
|
|
250
|
-
(connection) => connection.reactive(statement, fireOn)
|
|
251
|
-
))
|
|
252
|
-
}
|
|
185
|
+
config: options
|
|
253
186
|
}
|
|
254
187
|
)
|
|
255
188
|
})
|
|
@@ -270,7 +203,7 @@ export const layerConfig = (
|
|
|
270
203
|
)
|
|
271
204
|
)
|
|
272
205
|
)
|
|
273
|
-
)
|
|
206
|
+
).pipe(Layer.provide(Reactivity.layer))
|
|
274
207
|
|
|
275
208
|
/**
|
|
276
209
|
* @category layers
|
|
@@ -284,4 +217,4 @@ export const layer = (
|
|
|
284
217
|
Context.make(SqliteClient, client).pipe(
|
|
285
218
|
Context.add(Client.SqlClient, client)
|
|
286
219
|
))
|
|
287
|
-
)
|
|
220
|
+
).pipe(Layer.provide(Reactivity.layer))
|