@storic/cloudflare 0.3.2 → 0.4.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/README.md +10 -16
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sql-storage-client.d.ts.map +1 -1
- package/dist/sql-storage-client.js +8 -6
- package/dist/sql-storage-client.js.map +1 -1
- package/dist/storic-object.d.ts.map +1 -1
- package/dist/storic-object.js.map +1 -1
- package/package.json +16 -16
- package/src/index.ts +1 -7
- package/src/sql-storage-client.ts +11 -12
- package/src/storic-object.ts +1 -4
package/README.md
CHANGED
|
@@ -30,12 +30,12 @@ import { CloudflareJsEvaluator, WorkerLoaderBinding } from "@storic/cloudflare";
|
|
|
30
30
|
export default {
|
|
31
31
|
async fetch(request: Request, env: Env) {
|
|
32
32
|
const StoreLive = Store.layer.pipe(
|
|
33
|
-
Layer.provide(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Layer.provide(WorkerLoaderBinding.layer(env.EVALUATOR)),
|
|
33
|
+
Layer.provide(
|
|
34
|
+
Layer.mergeAll(
|
|
35
|
+
SqlLive,
|
|
36
|
+
CloudflareJsEvaluator.layer.pipe(Layer.provide(WorkerLoaderBinding.layer(env.EVALUATOR))),
|
|
37
37
|
),
|
|
38
|
-
)
|
|
38
|
+
),
|
|
39
39
|
);
|
|
40
40
|
|
|
41
41
|
// use StoreLive ...
|
|
@@ -61,9 +61,9 @@ let __result;
|
|
|
61
61
|
let __error;
|
|
62
62
|
|
|
63
63
|
try {
|
|
64
|
-
__result = ((a, b) =>
|
|
64
|
+
__result = ((a, b) => a + b)(10, 20);
|
|
65
65
|
} catch (e) {
|
|
66
|
-
__error =
|
|
66
|
+
__error = e instanceof Error && e.message ? e.message : String(e);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export default {
|
|
@@ -73,19 +73,13 @@ export default {
|
|
|
73
73
|
}
|
|
74
74
|
const t = typeof __result;
|
|
75
75
|
if (t === "function" || t === "symbol" || t === "undefined") {
|
|
76
|
-
return Response.json(
|
|
77
|
-
{ error: "Result is not JSON-serializable: got " + t },
|
|
78
|
-
{ status: 400 },
|
|
79
|
-
);
|
|
76
|
+
return Response.json({ error: "Result is not JSON-serializable: got " + t }, { status: 400 });
|
|
80
77
|
}
|
|
81
78
|
try {
|
|
82
79
|
return Response.json({ result: __result });
|
|
83
80
|
} catch (e) {
|
|
84
|
-
const msg =
|
|
85
|
-
return Response.json(
|
|
86
|
-
{ error: "Result is not JSON-serializable: " + msg },
|
|
87
|
-
{ status: 400 },
|
|
88
|
-
);
|
|
81
|
+
const msg = e instanceof Error && e.message ? e.message : String(e);
|
|
82
|
+
return Response.json({ error: "Result is not JSON-serializable: " + msg }, { status: 400 });
|
|
89
83
|
}
|
|
90
84
|
},
|
|
91
85
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,6 @@
|
|
|
11
11
|
export { doStoragePersistence } from "./persistence.ts";
|
|
12
12
|
export { StoricDO, StoricObject } from "./storic-object.ts";
|
|
13
13
|
export { sqlStorageLayer } from "./sql-storage-client.ts";
|
|
14
|
-
export { Store, Persistence, defineLens, SchemaRegistry, getTag
|
|
14
|
+
export { Store, Persistence, defineLens, SchemaRegistry, getTag } from "@storic/core";
|
|
15
15
|
export type { AnyTaggedStruct, EntityRecord, Lens, StoreConfig, PersistenceShape, PersistenceRecord, StoredRecord, IndexSpec, InitSpec, QueryParams, } from "@storic/core";
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtF,YAAY,EACV,eAAe,EACf,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,5 +13,5 @@ export { doStoragePersistence } from "./persistence.js";
|
|
|
13
13
|
export { StoricDO, StoricObject } from "./storic-object.js";
|
|
14
14
|
export { sqlStorageLayer } from "./sql-storage-client.js";
|
|
15
15
|
// ─── Re-export core for convenience ─────────────────────────────────────────
|
|
16
|
-
export { Store, Persistence, defineLens, SchemaRegistry, getTag
|
|
16
|
+
export { Store, Persistence, defineLens, SchemaRegistry, getTag } from "@storic/core";
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+EAA+E;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,+EAA+E;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+EAA+E;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,+EAA+E;AAC/E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-storage-client.d.ts","sourceRoot":"","sources":["../src/sql-storage-client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAOtC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-storage-client.d.ts","sourceRoot":"","sources":["../src/sql-storage-client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAOtC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAsExD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe,kEA8B3B,CAAC"}
|
|
@@ -14,7 +14,7 @@ import * as Fiber from "effect/Fiber";
|
|
|
14
14
|
import * as Stream from "effect/Stream";
|
|
15
15
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
16
16
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
17
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
17
|
+
import { SqlError, classifySqliteError } from "effect/unstable/sql/SqlError";
|
|
18
18
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
19
19
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
20
20
|
// ─── SqlStorage Connection ──────────────────────────────────────────────────
|
|
@@ -28,7 +28,9 @@ const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
|
28
28
|
function makeSqlStorageConnection(sql) {
|
|
29
29
|
const run = (query, params = []) => Effect.try({
|
|
30
30
|
try: () => sql.exec(query, ...params).toArray(),
|
|
31
|
-
catch: (cause) => new SqlError({
|
|
31
|
+
catch: (cause) => new SqlError({
|
|
32
|
+
reason: classifySqliteError(cause, { message: "Failed to execute statement" }),
|
|
33
|
+
}),
|
|
32
34
|
});
|
|
33
35
|
const runValues = (query, params = []) => Effect.try({
|
|
34
36
|
try: () => {
|
|
@@ -40,13 +42,13 @@ function makeSqlStorageConnection(sql) {
|
|
|
40
42
|
}
|
|
41
43
|
return rows;
|
|
42
44
|
},
|
|
43
|
-
catch: (cause) => new SqlError({
|
|
45
|
+
catch: (cause) => new SqlError({
|
|
46
|
+
reason: classifySqliteError(cause, { message: "Failed to execute statement" }),
|
|
47
|
+
}),
|
|
44
48
|
});
|
|
45
49
|
return identity({
|
|
46
50
|
execute(query, params, transformRows) {
|
|
47
|
-
return transformRows
|
|
48
|
-
? Effect.map(run(query, params), transformRows)
|
|
49
|
-
: run(query, params);
|
|
51
|
+
return transformRows ? Effect.map(run(query, params), transformRows) : run(query, params);
|
|
50
52
|
},
|
|
51
53
|
executeRaw(query, params) {
|
|
52
54
|
return run(query, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-storage-client.js","sourceRoot":"","sources":["../src/sql-storage-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-storage-client.js","sourceRoot":"","sources":["../src/sql-storage-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAE3D,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAE7C,+EAA+E;AAE/E;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,GAAe;IAC/C,MAAM,GAAG,GAAG,CACV,KAAa,EACb,MAAM,GAA2B,EAAE,EACE,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE;QAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,QAAQ,CAAC;YACX,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;SAC/E,CAAC;KACL,CAAC,CAAC;IAEL,MAAM,SAAS,GAAG,CAChB,KAAa,EACb,MAAM,GAA2B,EAAE,EACa,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;YACnC,MAAM,IAAI,GAA0B,EAAE,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,QAAQ,CAAC;YACX,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;SAC/E,CAAC;KACL,CAAC,CAAC;IAEL,OAAO,QAAQ,CAAa;QAC1B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa;YAClC,OAAO,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5F,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,aAAa,CAAC,KAAK,EAAE,MAAM;YACzB,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACpD,CAAC;QACD,aAAa,CAAC,MAAM,EAAE,OAAO;YAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAChF,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAe,EAAiC,EAAE;IAChF,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAEhD,OAAO,KAAK,CAAC,cAAc,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE;YACjE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAG,CAAC;YAClC,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC,EAAE,CACd,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAC1C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAChD,EACD,UAAU,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,QAAQ;YACR,QAAQ;YACR,mBAAmB;YACnB,cAAc,EAAE,CAAC,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;SAClD,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storic-object.d.ts","sourceRoot":"","sources":["../src/storic-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,8BAAsB,QAAQ,
|
|
1
|
+
{"version":3,"file":"storic-object.d.ts","sourceRoot":"","sources":["../src/storic-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,8BAAsB,QAAQ,CAAC,GAAG,GAAG,OAAO,EAAE,KAAK,GAAG,EAAE,CAAE,SAAQ,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;IACzF;;;OAGG;IACH,QAAQ,KAAK,MAAM,IAAI,WAAW,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAA+C;IAE/D,YAAY,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAkB5C;IAED;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAElE;CACF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,iBAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storic-object.js","sourceRoot":"","sources":["../src/storic-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAgB,
|
|
1
|
+
{"version":3,"file":"storic-object.js","sourceRoot":"","sources":["../src/storic-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAgB,QAAoC,SAAQ,aAAyB;IAOjF,QAAQ,CAA+C;IAE/D,YAAY,GAAuB,EAAE,GAAQ;QAC3C,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhB,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE;YACxC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEpE,8DAA8D;YAC9D,gDAAgD;YAChD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9C,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAC/B,KAAK,CAAC,KAAK,CACZ,CAAC;YAEF,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhD,oDAAoD;YACpD,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,GAAG,CAAO,MAAkC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storic/cloudflare",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/just-be-dev/storic.git",
|
|
7
|
+
"directory": "packages/cloudflare"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"src"
|
|
12
|
+
],
|
|
4
13
|
"type": "module",
|
|
5
14
|
"main": "./dist/index.js",
|
|
6
15
|
"types": "./dist/index.d.ts",
|
|
@@ -10,10 +19,9 @@
|
|
|
10
19
|
"types": "./dist/index.d.ts"
|
|
11
20
|
}
|
|
12
21
|
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
],
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
17
25
|
"scripts": {
|
|
18
26
|
"build": "tsgo --build",
|
|
19
27
|
"check": "tsgo --noEmit",
|
|
@@ -21,9 +29,9 @@
|
|
|
21
29
|
"test:e2e": "bun test e2e/e2e.test.ts --timeout 60000"
|
|
22
30
|
},
|
|
23
31
|
"dependencies": {
|
|
24
|
-
"@storic/core": "0.
|
|
25
|
-
"@storic/sql": "0.
|
|
26
|
-
"effect": "4.0.0-beta.
|
|
32
|
+
"@storic/core": "0.4.0",
|
|
33
|
+
"@storic/sql": "0.3.0",
|
|
34
|
+
"effect": "4.0.0-beta.43"
|
|
27
35
|
},
|
|
28
36
|
"devDependencies": {
|
|
29
37
|
"@cloudflare/workers-types": "^4.20260307.1",
|
|
@@ -31,13 +39,5 @@
|
|
|
31
39
|
"@types/node": "^22.0.0",
|
|
32
40
|
"@typescript/native-preview": "latest",
|
|
33
41
|
"wrangler": "^4.71.0"
|
|
34
|
-
},
|
|
35
|
-
"publishConfig": {
|
|
36
|
-
"access": "public"
|
|
37
|
-
},
|
|
38
|
-
"repository": {
|
|
39
|
-
"type": "git",
|
|
40
|
-
"url": "https://github.com/just-be-dev/storic.git",
|
|
41
|
-
"directory": "packages/cloudflare"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/index.ts
CHANGED
|
@@ -15,13 +15,7 @@ export { StoricDO, StoricObject } from "./storic-object.ts";
|
|
|
15
15
|
export { sqlStorageLayer } from "./sql-storage-client.ts";
|
|
16
16
|
|
|
17
17
|
// ─── Re-export core for convenience ─────────────────────────────────────────
|
|
18
|
-
export {
|
|
19
|
-
Store,
|
|
20
|
-
Persistence,
|
|
21
|
-
defineLens,
|
|
22
|
-
SchemaRegistry,
|
|
23
|
-
getTag,
|
|
24
|
-
} from "@storic/core";
|
|
18
|
+
export { Store, Persistence, defineLens, SchemaRegistry, getTag } from "@storic/core";
|
|
25
19
|
export type {
|
|
26
20
|
AnyTaggedStruct,
|
|
27
21
|
EntityRecord,
|
|
@@ -15,7 +15,7 @@ import * as Stream from "effect/Stream";
|
|
|
15
15
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
16
16
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
17
17
|
import type { Connection } from "effect/unstable/sql/SqlConnection";
|
|
18
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
18
|
+
import { SqlError, classifySqliteError } from "effect/unstable/sql/SqlError";
|
|
19
19
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
20
20
|
|
|
21
21
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
|
@@ -37,7 +37,9 @@ function makeSqlStorageConnection(sql: SqlStorage): Connection {
|
|
|
37
37
|
Effect.try({
|
|
38
38
|
try: () => sql.exec(query, ...params).toArray(),
|
|
39
39
|
catch: (cause) =>
|
|
40
|
-
new SqlError({
|
|
40
|
+
new SqlError({
|
|
41
|
+
reason: classifySqliteError(cause, { message: "Failed to execute statement" }),
|
|
42
|
+
}),
|
|
41
43
|
});
|
|
42
44
|
|
|
43
45
|
const runValues = (
|
|
@@ -55,14 +57,14 @@ function makeSqlStorageConnection(sql: SqlStorage): Connection {
|
|
|
55
57
|
return rows;
|
|
56
58
|
},
|
|
57
59
|
catch: (cause) =>
|
|
58
|
-
new SqlError({
|
|
60
|
+
new SqlError({
|
|
61
|
+
reason: classifySqliteError(cause, { message: "Failed to execute statement" }),
|
|
62
|
+
}),
|
|
59
63
|
});
|
|
60
64
|
|
|
61
65
|
return identity<Connection>({
|
|
62
66
|
execute(query, params, transformRows) {
|
|
63
|
-
return transformRows
|
|
64
|
-
? Effect.map(run(query, params), transformRows)
|
|
65
|
-
: run(query, params);
|
|
67
|
+
return transformRows ? Effect.map(run(query, params), transformRows) : run(query, params);
|
|
66
68
|
},
|
|
67
69
|
executeRaw(query, params) {
|
|
68
70
|
return run(query, params);
|
|
@@ -102,9 +104,7 @@ function makeSqlStorageConnection(sql: SqlStorage): Connection {
|
|
|
102
104
|
* }
|
|
103
105
|
* ```
|
|
104
106
|
*/
|
|
105
|
-
export const sqlStorageLayer = (
|
|
106
|
-
sql: SqlStorage,
|
|
107
|
-
): Layer.Layer<Client.SqlClient> => {
|
|
107
|
+
export const sqlStorageLayer = (sql: SqlStorage): Layer.Layer<Client.SqlClient> => {
|
|
108
108
|
const connection = makeSqlStorageConnection(sql);
|
|
109
109
|
const compiler = Statement.makeCompilerSqlite();
|
|
110
110
|
|
|
@@ -117,9 +117,8 @@ export const sqlStorageLayer = (
|
|
|
117
117
|
const fiber = Fiber.getCurrent()!;
|
|
118
118
|
const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope);
|
|
119
119
|
return Effect.as(
|
|
120
|
-
Effect.tap(
|
|
121
|
-
|
|
122
|
-
() => Scope.addFinalizer(scope, semaphore.release(1)),
|
|
120
|
+
Effect.tap(restore(semaphore.take(1)), () =>
|
|
121
|
+
Scope.addFinalizer(scope, semaphore.release(1)),
|
|
123
122
|
),
|
|
124
123
|
connection,
|
|
125
124
|
);
|
package/src/storic-object.ts
CHANGED
|
@@ -35,10 +35,7 @@ import { doStoragePersistence } from "./persistence.ts";
|
|
|
35
35
|
* }
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export abstract class StoricDO<
|
|
39
|
-
Env = unknown,
|
|
40
|
-
Props = {},
|
|
41
|
-
> extends DurableObject<Env, Props> {
|
|
38
|
+
export abstract class StoricDO<Env = unknown, Props = {}> extends DurableObject<Env, Props> {
|
|
42
39
|
/**
|
|
43
40
|
* Override this getter to provide the Storic configuration.
|
|
44
41
|
* Schemas and lenses are defined here, outside the DO's storage concerns.
|