@effect/sql-d1 0.18.12 → 0.19.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/D1Client.js +12 -14
- package/dist/cjs/D1Client.js.map +1 -1
- package/dist/dts/D1Client.d.ts +2 -1
- package/dist/dts/D1Client.d.ts.map +1 -1
- package/dist/esm/D1Client.js +12 -14
- package/dist/esm/D1Client.js.map +1 -1
- package/package.json +3 -3
- package/src/D1Client.ts +21 -23
package/dist/cjs/D1Client.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.D1Client = void 0;
|
|
7
|
+
var Reactivity = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/experimental/Reactivity"));
|
|
7
8
|
var Client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/SqlClient"));
|
|
8
9
|
var _SqlError = /*#__PURE__*/require("@effect/sql/SqlError");
|
|
9
10
|
var Statement = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Statement"));
|
|
@@ -56,7 +57,7 @@ const D1Client = exports.D1Client = /*#__PURE__*/Context.GenericTag("@effect/sql
|
|
|
56
57
|
*/
|
|
57
58
|
const make = options => Effect.gen(function* () {
|
|
58
59
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
59
|
-
const transformRows = Statement.defaultTransforms(options.transformResultNames).array;
|
|
60
|
+
const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames).array : undefined;
|
|
60
61
|
const makeConnection = Effect.gen(function* () {
|
|
61
62
|
const db = options.db;
|
|
62
63
|
const prepareCache = yield* Cache.make({
|
|
@@ -85,8 +86,7 @@ const make = options => Effect.gen(function* () {
|
|
|
85
86
|
});
|
|
86
87
|
const runRaw = (sql, params = []) => runStatement(db.prepare(sql), params);
|
|
87
88
|
const runCached = (sql, params = []) => Effect.flatMap(prepareCache.get(sql), s => runStatement(s, params));
|
|
88
|
-
const runUncached = (sql, params = []) =>
|
|
89
|
-
const runTransform = options.transformResultNames ? (sql, params) => Effect.map(runCached(sql, params), transformRows) : runCached;
|
|
89
|
+
const runUncached = (sql, params = []) => runRaw(sql, params);
|
|
90
90
|
const runValues = (sql, params) => Effect.flatMap(prepareCache.get(sql), statement => Effect.tryPromise({
|
|
91
91
|
try: () => {
|
|
92
92
|
return statement.bind(...params).raw();
|
|
@@ -97,8 +97,8 @@ const make = options => Effect.gen(function* () {
|
|
|
97
97
|
})
|
|
98
98
|
}));
|
|
99
99
|
return (0, _Function.identity)({
|
|
100
|
-
execute(sql, params) {
|
|
101
|
-
return
|
|
100
|
+
execute(sql, params, transformRows) {
|
|
101
|
+
return transformRows ? Effect.map(runCached(sql, params), transformRows) : runCached(sql, params);
|
|
102
102
|
},
|
|
103
103
|
executeRaw(sql, params) {
|
|
104
104
|
return runRaw(sql, params);
|
|
@@ -106,11 +106,8 @@ const make = options => Effect.gen(function* () {
|
|
|
106
106
|
executeValues(sql, params) {
|
|
107
107
|
return runValues(sql, params);
|
|
108
108
|
},
|
|
109
|
-
|
|
110
|
-
return
|
|
111
|
-
},
|
|
112
|
-
executeUnprepared(sql, params) {
|
|
113
|
-
return runUncached(sql, params);
|
|
109
|
+
executeUnprepared(sql, params, transformRows) {
|
|
110
|
+
return transformRows ? Effect.map(runUncached(sql, params), transformRows) : runUncached(sql, params);
|
|
114
111
|
},
|
|
115
112
|
executeStream(_sql, _params) {
|
|
116
113
|
return Effect.dieMessage("executeStream not implemented");
|
|
@@ -120,11 +117,12 @@ const make = options => Effect.gen(function* () {
|
|
|
120
117
|
const connection = yield* makeConnection;
|
|
121
118
|
const acquirer = Effect.succeed(connection);
|
|
122
119
|
const transactionAcquirer = Effect.dieMessage("transactions are not supported in D1");
|
|
123
|
-
return Object.assign(Client.make({
|
|
120
|
+
return Object.assign(yield* Client.make({
|
|
124
121
|
acquirer,
|
|
125
122
|
compiler,
|
|
126
123
|
transactionAcquirer,
|
|
127
|
-
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]]
|
|
124
|
+
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]],
|
|
125
|
+
transformRows
|
|
128
126
|
}), {
|
|
129
127
|
[TypeId]: TypeId,
|
|
130
128
|
config: options
|
|
@@ -135,12 +133,12 @@ const make = options => Effect.gen(function* () {
|
|
|
135
133
|
* @since 1.0.0
|
|
136
134
|
*/
|
|
137
135
|
exports.make = make;
|
|
138
|
-
const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client)))));
|
|
136
|
+
const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
139
137
|
/**
|
|
140
138
|
* @category layers
|
|
141
139
|
* @since 1.0.0
|
|
142
140
|
*/
|
|
143
141
|
exports.layerConfig = layerConfig;
|
|
144
|
-
const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client))));
|
|
142
|
+
const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
145
143
|
exports.layer = layer;
|
|
146
144
|
//# sourceMappingURL=D1Client.js.map
|
package/dist/cjs/D1Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1Client.js","names":["
|
|
1
|
+
{"version":3,"file":"D1Client.js","names":["Reactivity","_interopRequireWildcard","require","Client","_SqlError","Statement","Otel","Cache","Config","Context","Duration","Effect","_Function","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","D1Client","GenericTag","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","prepareCache","capacity","prepareCacheSize","timeToLive","prepareCacheTTL","minutes","lookup","sql","try","prepare","catch","cause","SqlError","message","runStatement","statement","params","tryPromise","response","bind","all","error","results","runRaw","runCached","flatMap","s","runUncached","runValues","raw","identity","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","dieMessage","connection","acquirer","succeed","transactionAcquirer","assign","spanAttributes","entries","SEMATTRS_DB_SYSTEM","DBSYSTEMVALUES_SQLITE","config","layerConfig","scopedContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../../src/D1Client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/D1Client.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import type { D1Database } from "@cloudflare/workers-types";
|
|
5
|
+
import * as Reactivity from "@effect/experimental/Reactivity";
|
|
5
6
|
import * as Client from "@effect/sql/SqlClient";
|
|
6
7
|
import * as Config from "effect/Config";
|
|
7
8
|
import type { ConfigError } from "effect/ConfigError";
|
|
@@ -51,7 +52,7 @@ export interface D1ClientConfig {
|
|
|
51
52
|
* @category constructor
|
|
52
53
|
* @since 1.0.0
|
|
53
54
|
*/
|
|
54
|
-
export declare const make: (options: D1ClientConfig) => Effect.Effect<D1Client, never, Scope.Scope>;
|
|
55
|
+
export declare const make: (options: D1ClientConfig) => Effect.Effect<D1Client, never, Scope.Scope | Reactivity.Reactivity>;
|
|
55
56
|
/**
|
|
56
57
|
* @category layers
|
|
57
58
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1Client.d.ts","sourceRoot":"","sources":["../../src/D1Client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,2BAA2B,CAAA;AAChF,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,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAA8C,CAAA;AAE1E;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,SAAS;IAChD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,0BAA0B;IAC1B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,iCAA0D,CAAA;AAE/E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;IAC7D,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;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,YACN,cAAc,KACtB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"D1Client.d.ts","sourceRoot":"","sources":["../../src/D1Client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,2BAA2B,CAAA;AAChF,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,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAA8C,CAAA;AAE1E;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,SAAS;IAChD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,0BAA0B;IAC1B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,iCAA0D,CAAA;AAE/E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;IAC7D,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;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,YACN,cAAc,KACtB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAgHjE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,WACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KACzC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAUd,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,WACR,cAAc,KACrB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAMd,CAAA"}
|
package/dist/esm/D1Client.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Reactivity from "@effect/experimental/Reactivity";
|
|
1
2
|
import * as Client from "@effect/sql/SqlClient";
|
|
2
3
|
import { SqlError } from "@effect/sql/SqlError";
|
|
3
4
|
import * as Statement from "@effect/sql/Statement";
|
|
@@ -25,7 +26,7 @@ export const D1Client = /*#__PURE__*/Context.GenericTag("@effect/sql-d1/D1Client
|
|
|
25
26
|
*/
|
|
26
27
|
export const make = options => Effect.gen(function* () {
|
|
27
28
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
|
|
28
|
-
const transformRows = Statement.defaultTransforms(options.transformResultNames).array;
|
|
29
|
+
const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames).array : undefined;
|
|
29
30
|
const makeConnection = Effect.gen(function* () {
|
|
30
31
|
const db = options.db;
|
|
31
32
|
const prepareCache = yield* Cache.make({
|
|
@@ -54,8 +55,7 @@ export const make = options => Effect.gen(function* () {
|
|
|
54
55
|
});
|
|
55
56
|
const runRaw = (sql, params = []) => runStatement(db.prepare(sql), params);
|
|
56
57
|
const runCached = (sql, params = []) => Effect.flatMap(prepareCache.get(sql), s => runStatement(s, params));
|
|
57
|
-
const runUncached = (sql, params = []) =>
|
|
58
|
-
const runTransform = options.transformResultNames ? (sql, params) => Effect.map(runCached(sql, params), transformRows) : runCached;
|
|
58
|
+
const runUncached = (sql, params = []) => runRaw(sql, params);
|
|
59
59
|
const runValues = (sql, params) => Effect.flatMap(prepareCache.get(sql), statement => Effect.tryPromise({
|
|
60
60
|
try: () => {
|
|
61
61
|
return statement.bind(...params).raw();
|
|
@@ -66,8 +66,8 @@ export const make = options => Effect.gen(function* () {
|
|
|
66
66
|
})
|
|
67
67
|
}));
|
|
68
68
|
return identity({
|
|
69
|
-
execute(sql, params) {
|
|
70
|
-
return
|
|
69
|
+
execute(sql, params, transformRows) {
|
|
70
|
+
return transformRows ? Effect.map(runCached(sql, params), transformRows) : runCached(sql, params);
|
|
71
71
|
},
|
|
72
72
|
executeRaw(sql, params) {
|
|
73
73
|
return runRaw(sql, params);
|
|
@@ -75,11 +75,8 @@ export const make = options => Effect.gen(function* () {
|
|
|
75
75
|
executeValues(sql, params) {
|
|
76
76
|
return runValues(sql, params);
|
|
77
77
|
},
|
|
78
|
-
|
|
79
|
-
return
|
|
80
|
-
},
|
|
81
|
-
executeUnprepared(sql, params) {
|
|
82
|
-
return runUncached(sql, params);
|
|
78
|
+
executeUnprepared(sql, params, transformRows) {
|
|
79
|
+
return transformRows ? Effect.map(runUncached(sql, params), transformRows) : runUncached(sql, params);
|
|
83
80
|
},
|
|
84
81
|
executeStream(_sql, _params) {
|
|
85
82
|
return Effect.dieMessage("executeStream not implemented");
|
|
@@ -89,11 +86,12 @@ export const make = options => Effect.gen(function* () {
|
|
|
89
86
|
const connection = yield* makeConnection;
|
|
90
87
|
const acquirer = Effect.succeed(connection);
|
|
91
88
|
const transactionAcquirer = Effect.dieMessage("transactions are not supported in D1");
|
|
92
|
-
return Object.assign(Client.make({
|
|
89
|
+
return Object.assign(yield* Client.make({
|
|
93
90
|
acquirer,
|
|
94
91
|
compiler,
|
|
95
92
|
transactionAcquirer,
|
|
96
|
-
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]]
|
|
93
|
+
spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]],
|
|
94
|
+
transformRows
|
|
97
95
|
}), {
|
|
98
96
|
[TypeId]: TypeId,
|
|
99
97
|
config: options
|
|
@@ -103,10 +101,10 @@ export const make = options => Effect.gen(function* () {
|
|
|
103
101
|
* @category layers
|
|
104
102
|
* @since 1.0.0
|
|
105
103
|
*/
|
|
106
|
-
export const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client)))));
|
|
104
|
+
export const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
|
|
107
105
|
/**
|
|
108
106
|
* @category layers
|
|
109
107
|
* @since 1.0.0
|
|
110
108
|
*/
|
|
111
|
-
export const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client))));
|
|
109
|
+
export const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(D1Client, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
112
110
|
//# sourceMappingURL=D1Client.js.map
|
package/dist/esm/D1Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1Client.js","names":["Client","SqlError","Statement","Otel","Cache","Config","Context","Duration","Effect","identity","Layer","TypeId","Symbol","for","D1Client","GenericTag","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","
|
|
1
|
+
{"version":3,"file":"D1Client.js","names":["Reactivity","Client","SqlError","Statement","Otel","Cache","Config","Context","Duration","Effect","identity","Layer","TypeId","Symbol","for","D1Client","GenericTag","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","prepareCache","capacity","prepareCacheSize","timeToLive","prepareCacheTTL","minutes","lookup","sql","try","prepare","catch","cause","message","runStatement","statement","params","tryPromise","response","bind","all","error","results","runRaw","runCached","flatMap","get","s","runUncached","runValues","raw","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","dieMessage","connection","acquirer","succeed","transactionAcquirer","Object","assign","spanAttributes","entries","SEMATTRS_DB_SYSTEM","DBSYSTEMVALUES_SQLITE","config","layerConfig","scopedContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../../src/D1Client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-d1",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "A Cloudflare D1 integration for Effect",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"@opentelemetry/semantic-conventions": "^1.24.1"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@effect/platform": "^0.69.
|
|
18
|
-
"@effect/sql": "^0.
|
|
17
|
+
"@effect/platform": "^0.69.29",
|
|
18
|
+
"@effect/sql": "^0.21.0",
|
|
19
19
|
"effect": "^3.10.19"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
package/src/D1Client.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import type { D1Database, D1PreparedStatement } from "@cloudflare/workers-types"
|
|
5
|
+
import * as Reactivity from "@effect/experimental/Reactivity"
|
|
5
6
|
import * as Client from "@effect/sql/SqlClient"
|
|
6
7
|
import type { Connection } from "@effect/sql/SqlConnection"
|
|
7
8
|
import { SqlError } from "@effect/sql/SqlError"
|
|
@@ -67,12 +68,12 @@ export interface D1ClientConfig {
|
|
|
67
68
|
*/
|
|
68
69
|
export const make = (
|
|
69
70
|
options: D1ClientConfig
|
|
70
|
-
): Effect.Effect<D1Client, never, Scope.Scope> =>
|
|
71
|
+
): Effect.Effect<D1Client, never, Scope.Scope | Reactivity.Reactivity> =>
|
|
71
72
|
Effect.gen(function*() {
|
|
72
73
|
const compiler = Statement.makeCompilerSqlite(options.transformQueryNames)
|
|
73
|
-
const transformRows =
|
|
74
|
-
options.transformResultNames
|
|
75
|
-
|
|
74
|
+
const transformRows = options.transformResultNames ?
|
|
75
|
+
Statement.defaultTransforms(options.transformResultNames).array :
|
|
76
|
+
undefined
|
|
76
77
|
|
|
77
78
|
const makeConnection = Effect.gen(function*() {
|
|
78
79
|
const db = options.db
|
|
@@ -90,7 +91,7 @@ export const make = (
|
|
|
90
91
|
const runStatement = (
|
|
91
92
|
statement: D1PreparedStatement,
|
|
92
93
|
params: ReadonlyArray<Statement.Primitive> = []
|
|
93
|
-
) =>
|
|
94
|
+
): Effect.Effect<ReadonlyArray<any>, SqlError, never> =>
|
|
94
95
|
Effect.tryPromise({
|
|
95
96
|
try: async () => {
|
|
96
97
|
const response = await statement.bind(...params).all()
|
|
@@ -115,12 +116,7 @@ export const make = (
|
|
|
115
116
|
const runUncached = (
|
|
116
117
|
sql: string,
|
|
117
118
|
params: ReadonlyArray<Statement.Primitive> = []
|
|
118
|
-
) =>
|
|
119
|
-
|
|
120
|
-
const runTransform = options.transformResultNames
|
|
121
|
-
? (sql: string, params?: ReadonlyArray<Statement.Primitive>) =>
|
|
122
|
-
Effect.map(runCached(sql, params), transformRows)
|
|
123
|
-
: runCached
|
|
119
|
+
) => runRaw(sql, params)
|
|
124
120
|
|
|
125
121
|
const runValues = (
|
|
126
122
|
sql: string,
|
|
@@ -142,8 +138,10 @@ export const make = (
|
|
|
142
138
|
)
|
|
143
139
|
|
|
144
140
|
return identity<Connection>({
|
|
145
|
-
execute(sql, params) {
|
|
146
|
-
return
|
|
141
|
+
execute(sql, params, transformRows) {
|
|
142
|
+
return transformRows
|
|
143
|
+
? Effect.map(runCached(sql, params), transformRows)
|
|
144
|
+
: runCached(sql, params)
|
|
147
145
|
},
|
|
148
146
|
executeRaw(sql, params) {
|
|
149
147
|
return runRaw(sql, params)
|
|
@@ -151,11 +149,10 @@ export const make = (
|
|
|
151
149
|
executeValues(sql, params) {
|
|
152
150
|
return runValues(sql, params)
|
|
153
151
|
},
|
|
154
|
-
|
|
155
|
-
return
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return runUncached(sql, params)
|
|
152
|
+
executeUnprepared(sql, params, transformRows) {
|
|
153
|
+
return transformRows
|
|
154
|
+
? Effect.map(runUncached(sql, params), transformRows)
|
|
155
|
+
: runUncached(sql, params)
|
|
159
156
|
},
|
|
160
157
|
executeStream(_sql, _params) {
|
|
161
158
|
return Effect.dieMessage("executeStream not implemented")
|
|
@@ -168,15 +165,16 @@ export const make = (
|
|
|
168
165
|
const transactionAcquirer = Effect.dieMessage("transactions are not supported in D1")
|
|
169
166
|
|
|
170
167
|
return Object.assign(
|
|
171
|
-
Client.make({
|
|
168
|
+
(yield* Client.make({
|
|
172
169
|
acquirer,
|
|
173
170
|
compiler,
|
|
174
171
|
transactionAcquirer,
|
|
175
172
|
spanAttributes: [
|
|
176
173
|
...(options.spanAttributes ? Object.entries(options.spanAttributes) : []),
|
|
177
174
|
[Otel.SEMATTRS_DB_SYSTEM, Otel.DBSYSTEMVALUES_SQLITE]
|
|
178
|
-
]
|
|
179
|
-
|
|
175
|
+
],
|
|
176
|
+
transformRows
|
|
177
|
+
})) as D1Client,
|
|
180
178
|
{
|
|
181
179
|
[TypeId]: TypeId as TypeId,
|
|
182
180
|
config: options
|
|
@@ -200,7 +198,7 @@ export const layerConfig = (
|
|
|
200
198
|
)
|
|
201
199
|
)
|
|
202
200
|
)
|
|
203
|
-
)
|
|
201
|
+
).pipe(Layer.provide(Reactivity.layer))
|
|
204
202
|
|
|
205
203
|
/**
|
|
206
204
|
* @category layers
|
|
@@ -214,4 +212,4 @@ export const layer = (
|
|
|
214
212
|
Context.make(D1Client, client).pipe(
|
|
215
213
|
Context.add(Client.SqlClient, client)
|
|
216
214
|
))
|
|
217
|
-
)
|
|
215
|
+
).pipe(Layer.provide(Reactivity.layer))
|