effect-zero 0.4.2 → 0.5.0-beta.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/client-transaction.d.ts +77 -7
- package/dist/client-transaction.d.ts.map +1 -1
- package/dist/client-transaction.js +11 -7
- package/dist/client-transaction.js.map +1 -1
- package/dist/client.d.ts +119 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -6
- package/dist/client.js.map +1 -1
- package/dist/internal/server-synchronization-context.d.ts +19 -0
- package/dist/internal/server-synchronization-context.d.ts.map +1 -0
- package/dist/internal/server-synchronization-context.js +46 -0
- package/dist/internal/server-synchronization-context.js.map +1 -0
- package/dist/internal/server.d.ts +5 -16
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +1 -38
- package/dist/internal/server.js.map +1 -1
- package/dist/internal/server.test.js +7 -8
- package/dist/internal/server.test.js.map +1 -1
- package/dist/internal/utils.d.ts +7 -0
- package/dist/internal/utils.d.ts.map +1 -1
- package/dist/internal/utils.js +7 -0
- package/dist/internal/utils.js.map +1 -1
- package/dist/mutators.d.ts +1 -1
- package/dist/mutators.d.ts.map +1 -1
- package/dist/mutators.js +1 -1
- package/dist/query.d.ts +3 -5
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +6 -12
- package/dist/query.js.map +1 -1
- package/dist/result.d.ts +15 -15
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +11 -11
- package/dist/result.js.map +1 -1
- package/dist/server-transaction.d.ts +142 -15
- package/dist/server-transaction.d.ts.map +1 -1
- package/dist/server-transaction.js +24 -19
- package/dist/server-transaction.js.map +1 -1
- package/dist/server.d.ts +247 -12
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -18
- package/dist/server.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/error.d.ts +69 -48
- package/dist/types/error.d.ts.map +1 -1
- package/dist/types/error.js +38 -30
- package/dist/types/error.js.map +1 -1
- package/dist/types/push.d.ts +149 -149
- package/dist/types/push.d.ts.map +1 -1
- package/dist/types/push.js +45 -40
- package/dist/types/push.js.map +1 -1
- package/dist/types/queries.d.ts +42 -42
- package/dist/types/queries.d.ts.map +1 -1
- package/dist/types/queries.js +7 -7
- package/dist/types/queries.js.map +1 -1
- package/dist/types.test.js +13 -15
- package/dist/types.test.js.map +1 -1
- package/package.json +5 -7
- package/src/client-transaction.ts +13 -11
- package/src/client.ts +17 -19
- package/src/internal/server-synchronization-context.ts +64 -0
- package/src/internal/server.ts +3 -59
- package/src/internal/utils.ts +8 -0
- package/src/mutators.ts +2 -2
- package/src/query.ts +8 -20
- package/src/result.ts +40 -37
- package/src/server-transaction.ts +32 -37
- package/src/server.ts +34 -37
- package/src/types/error.ts +8 -8
- package/src/types/push.ts +22 -22
- package/src/types/queries.ts +7 -7
package/dist/types/queries.d.ts
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
import * as Schema from "effect/Schema";
|
|
2
|
-
export declare const TransformRequestMessage: Schema.
|
|
3
|
-
id:
|
|
4
|
-
name:
|
|
5
|
-
args: Schema
|
|
6
|
-
}
|
|
2
|
+
export declare const TransformRequestMessage: Schema.Tuple<readonly [Schema.Literal<"transform">, Schema.$Array<Schema.Struct<{
|
|
3
|
+
readonly id: Schema.String;
|
|
4
|
+
readonly name: Schema.String;
|
|
5
|
+
readonly args: Schema.$Array<Schema.Unknown>;
|
|
6
|
+
}>>]>;
|
|
7
7
|
export type TransformRequestMessage = typeof TransformRequestMessage.Type;
|
|
8
|
-
export declare const TransformResponseMessage: Schema.Union<[Schema.
|
|
9
|
-
id:
|
|
10
|
-
name:
|
|
11
|
-
ast:
|
|
12
|
-
}>, Schema.Union<[Schema.Struct<{
|
|
13
|
-
error: Schema.Literal<
|
|
14
|
-
id:
|
|
15
|
-
name:
|
|
16
|
-
message: Schema.optional<
|
|
17
|
-
details: Schema.optional<
|
|
8
|
+
export declare const TransformResponseMessage: Schema.Union<readonly [Schema.Tuple<readonly [Schema.Literal<"transformed">, Schema.$Array<Schema.Union<readonly [Schema.Struct<{
|
|
9
|
+
readonly id: Schema.String;
|
|
10
|
+
readonly name: Schema.String;
|
|
11
|
+
readonly ast: Schema.Unknown;
|
|
12
|
+
}>, Schema.Union<readonly [Schema.Struct<{
|
|
13
|
+
readonly error: Schema.Literal<"app">;
|
|
14
|
+
readonly id: Schema.String;
|
|
15
|
+
readonly name: Schema.String;
|
|
16
|
+
readonly message: Schema.optional<Schema.String>;
|
|
17
|
+
readonly details: Schema.optional<Schema.Unknown>;
|
|
18
18
|
}>, Schema.Struct<{
|
|
19
|
-
error: Schema.Literal<
|
|
20
|
-
id:
|
|
21
|
-
name:
|
|
22
|
-
message:
|
|
23
|
-
details: Schema.optional<
|
|
24
|
-
}>]>]
|
|
25
|
-
origin: Schema.Literal<
|
|
26
|
-
reason: Schema.
|
|
27
|
-
kind: Schema.Literal<
|
|
28
|
-
details: Schema.optional<
|
|
29
|
-
queryIDs: Schema
|
|
30
|
-
message:
|
|
19
|
+
readonly error: Schema.Literal<"parse">;
|
|
20
|
+
readonly id: Schema.String;
|
|
21
|
+
readonly name: Schema.String;
|
|
22
|
+
readonly message: Schema.String;
|
|
23
|
+
readonly details: Schema.optional<Schema.Unknown>;
|
|
24
|
+
}>]>]>>]>, Schema.Tuple<readonly [Schema.Literal<"transformFailed">, Schema.Union<readonly [Schema.Struct<{
|
|
25
|
+
readonly origin: Schema.Literal<"server">;
|
|
26
|
+
readonly reason: Schema.Literals<readonly ["database", "parse", "internal"]>;
|
|
27
|
+
readonly kind: Schema.Literal<"TransformFailed">;
|
|
28
|
+
readonly details: Schema.optional<Schema.Unknown>;
|
|
29
|
+
readonly queryIDs: Schema.$Array<Schema.String>;
|
|
30
|
+
readonly message: Schema.String;
|
|
31
31
|
}>, Schema.Struct<{
|
|
32
|
-
origin: Schema.Literal<
|
|
33
|
-
reason: Schema.Literal<
|
|
34
|
-
status:
|
|
35
|
-
bodyPreview: Schema.optional<
|
|
36
|
-
kind: Schema.Literal<
|
|
37
|
-
details: Schema.optional<
|
|
38
|
-
queryIDs: Schema
|
|
39
|
-
message:
|
|
32
|
+
readonly origin: Schema.Literal<"zeroCache">;
|
|
33
|
+
readonly reason: Schema.Literal<"http">;
|
|
34
|
+
readonly status: Schema.Number;
|
|
35
|
+
readonly bodyPreview: Schema.optional<Schema.String>;
|
|
36
|
+
readonly kind: Schema.Literal<"TransformFailed">;
|
|
37
|
+
readonly details: Schema.optional<Schema.Unknown>;
|
|
38
|
+
readonly queryIDs: Schema.$Array<Schema.String>;
|
|
39
|
+
readonly message: Schema.String;
|
|
40
40
|
}>, Schema.Struct<{
|
|
41
|
-
origin: Schema.Literal<
|
|
42
|
-
reason: Schema.
|
|
43
|
-
kind: Schema.Literal<
|
|
44
|
-
details: Schema.optional<
|
|
45
|
-
queryIDs: Schema
|
|
46
|
-
message:
|
|
47
|
-
}>]
|
|
41
|
+
readonly origin: Schema.Literal<"zeroCache">;
|
|
42
|
+
readonly reason: Schema.Literals<readonly ["timeout", "parse", "internal"]>;
|
|
43
|
+
readonly kind: Schema.Literal<"TransformFailed">;
|
|
44
|
+
readonly details: Schema.optional<Schema.Unknown>;
|
|
45
|
+
readonly queryIDs: Schema.$Array<Schema.String>;
|
|
46
|
+
readonly message: Schema.String;
|
|
47
|
+
}>]>]>]>;
|
|
48
48
|
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/types/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AA6CxC,eAAO,MAAM,uBAAuB;;;;
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/types/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AA6CxC,eAAO,MAAM,uBAAuB;;;;KAAoE,CAAC;AACzG,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAC;AAS1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA6D,CAAC"}
|
package/dist/types/queries.js
CHANGED
|
@@ -30,12 +30,12 @@ const ParseErroredQuery = Schema.Struct({
|
|
|
30
30
|
message: Schema.String,
|
|
31
31
|
details: Schema.optional(JsonSchema),
|
|
32
32
|
});
|
|
33
|
-
const ErroredQuery = Schema.Union(AppErroredQuery, ParseErroredQuery);
|
|
34
|
-
const TransformResponseBody = Schema.Array(Schema.Union(TransformedQuery, ErroredQuery));
|
|
35
|
-
export const TransformRequestMessage = Schema.Tuple(Schema.Literal("transform"), TransformRequestBody);
|
|
33
|
+
const ErroredQuery = Schema.Union([AppErroredQuery, ParseErroredQuery]);
|
|
34
|
+
const TransformResponseBody = Schema.Array(Schema.Union([TransformedQuery, ErroredQuery]));
|
|
35
|
+
export const TransformRequestMessage = Schema.Tuple([Schema.Literal("transform"), TransformRequestBody]);
|
|
36
36
|
// biome-ignore lint/correctness/noUnusedVariables: borrowed code
|
|
37
|
-
const TransformErrorMessage = Schema.Tuple(Schema.Literal("transformError"), Schema.Array(ErroredQuery));
|
|
38
|
-
const TransformFailedMessage = Schema.Tuple(Schema.Literal("transformFailed"), TransformFailedBody);
|
|
39
|
-
const TransformOkMessage = Schema.Tuple(Schema.Literal("transformed"), TransformResponseBody);
|
|
40
|
-
export const TransformResponseMessage = Schema.Union(TransformOkMessage, TransformFailedMessage);
|
|
37
|
+
const TransformErrorMessage = Schema.Tuple([Schema.Literal("transformError"), Schema.Array(ErroredQuery)]);
|
|
38
|
+
const TransformFailedMessage = Schema.Tuple([Schema.Literal("transformFailed"), TransformFailedBody]);
|
|
39
|
+
const TransformOkMessage = Schema.Tuple([Schema.Literal("transformed"), TransformResponseBody]);
|
|
40
|
+
export const TransformResponseMessage = Schema.Union([TransformOkMessage, TransformFailedMessage]);
|
|
41
41
|
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/types/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,sDAAsD;AACtD,8HAA8H;AAE9H,uCAAuC;AACvC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;AAE3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CACvC,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/types/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,sDAAsD;AACtD,8HAA8H;AAE9H,uCAAuC;AACvC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;AAE3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CACvC,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,GAAG,EAAE,GAAG;CACT,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAExE,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAGzG,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAE3G,MAAM,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEtG,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC,CAAC"}
|
package/dist/types.test.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { describe, expectTypeOf, it } from "@effect/vitest";
|
|
2
2
|
import { queryInternalsTag } from "@rocicorp/zero/bindings";
|
|
3
|
+
import * as Context from "effect/Context";
|
|
3
4
|
import * as Effect from "effect/Effect";
|
|
4
5
|
import * as Schema from "effect/Schema";
|
|
6
|
+
import * as SchemaGetter from "effect/SchemaGetter";
|
|
5
7
|
import * as ClientTransaction from "./client-transaction.js";
|
|
6
8
|
import * as Mutators from "./mutators.js";
|
|
7
9
|
import * as Query from "./query.js";
|
|
8
10
|
import * as Server from "./server.js";
|
|
9
11
|
import * as ServerTransaction from "./server-transaction.js";
|
|
12
|
+
const DateFromNumber = Schema.Number.pipe(Schema.decodeTo(Schema.Date, {
|
|
13
|
+
decode: SchemaGetter.transform((n) => new Date(n)),
|
|
14
|
+
encode: SchemaGetter.transform((d) => d.getTime()),
|
|
15
|
+
}));
|
|
10
16
|
// Mock Zero schema for type tests
|
|
11
17
|
const mockZeroSchema = {
|
|
12
18
|
tables: {
|
|
@@ -103,13 +109,9 @@ describe("Type tests", () => {
|
|
|
103
109
|
expectTypeOf().toEqualTypeOf();
|
|
104
110
|
});
|
|
105
111
|
it("nested mutator requirements should propagate", () => {
|
|
106
|
-
class NestedDummyTag extends
|
|
107
|
-
succeed: {},
|
|
108
|
-
}) {
|
|
112
|
+
class NestedDummyTag extends Context.Service()("effect-zero/test/NestedDummyTag") {
|
|
109
113
|
}
|
|
110
|
-
class NestedDummyTag2 extends
|
|
111
|
-
succeed: {},
|
|
112
|
-
}) {
|
|
114
|
+
class NestedDummyTag2 extends Context.Service()("effect-zero/test/NestedDummyTag2") {
|
|
113
115
|
}
|
|
114
116
|
const clientTransaction = ClientTransaction.make("TestClientTransactionNestedReq", mockZeroSchema);
|
|
115
117
|
const serverTransaction = ServerTransaction.make("TestServerTransactionNestedReq", mockDatabase, clientTransaction);
|
|
@@ -136,13 +138,9 @@ describe("Type tests", () => {
|
|
|
136
138
|
expectTypeOf().toEqualTypeOf();
|
|
137
139
|
});
|
|
138
140
|
it("mutator requirements should propagate", () => {
|
|
139
|
-
class DummyTag extends
|
|
140
|
-
succeed: {},
|
|
141
|
-
}) {
|
|
141
|
+
class DummyTag extends Context.Service()("effect-zero/test/DummyTag") {
|
|
142
142
|
}
|
|
143
|
-
class DummyTag2 extends
|
|
144
|
-
succeed: {},
|
|
145
|
-
}) {
|
|
143
|
+
class DummyTag2 extends Context.Service()("effect-zero/test/DummyTag2") {
|
|
146
144
|
}
|
|
147
145
|
const clientTransaction = ClientTransaction.make("TestClientTransaction2", mockZeroSchema);
|
|
148
146
|
const serverTransaction = ServerTransaction.make("TestServerTransaction", mockDatabase, clientTransaction);
|
|
@@ -188,7 +186,7 @@ describe("Type tests", () => {
|
|
|
188
186
|
it("query should accept and passthrough encoded non-JSON args", () => {
|
|
189
187
|
const transformArgsQuery = Query.make({
|
|
190
188
|
name: "transformArgs",
|
|
191
|
-
payload:
|
|
189
|
+
payload: DateFromNumber,
|
|
192
190
|
query: Effect.fn(function* (a) {
|
|
193
191
|
// Inside the query, 'a' should be the decoded type (Date)
|
|
194
192
|
expectTypeOf().toEqualTypeOf();
|
|
@@ -251,12 +249,12 @@ describe("Type tests", () => {
|
|
|
251
249
|
it("MakeQueryResult should be satisfied by query results", () => {
|
|
252
250
|
const query1 = Query.make({
|
|
253
251
|
name: "q1",
|
|
254
|
-
payload: Schema.Tuple(Schema.String),
|
|
252
|
+
payload: Schema.Tuple([Schema.String]),
|
|
255
253
|
query: () => Effect.succeed(makeMockQuery()),
|
|
256
254
|
});
|
|
257
255
|
const query2 = Query.make({
|
|
258
256
|
name: "q2",
|
|
259
|
-
payload: Schema.Tuple(),
|
|
257
|
+
payload: Schema.Tuple([]),
|
|
260
258
|
query: () => Effect.succeed(makeMockQuery()),
|
|
261
259
|
});
|
|
262
260
|
// This should compile without error
|
package/dist/types.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;IAC3B,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CACzD,CAAC,CACH,CAAC;AAEF,kCAAkC;AAClC,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzB;YACD,UAAU,EAAE,CAAC,IAAI,CAAC;SACnB;KACF;CACK,CAAC;AAET,+BAA+B;AAC/B,MAAM,YAAY,GAAG,EAAS,CAAC;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACpC,QAAQ,EAAE;oBACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;wBACpB,EAAE,EAAE,MAAM,CAAC,MAAM;wBACjB,IAAI,EAAE,MAAM,CAAC,MAAM;qBACpB,CAAC;iBACH;gBACD,eAAe,EAAE,MAAM,CAAC,IAAI;gBAC5B,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;oBAC3B,GAAG,EAAE,MAAM,CAAC,gBAAgB;iBAC7B,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;YAE1F,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC5C,QAAQ,EAAE;oBACR,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CACd,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wBAC/B,yBAAyB;wBACzB,MAAM,GAAG,GAAW,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,KAAK,GAAW,GAAG,CAAC,IAAI,CAAC;oBACjC,CAAC,CAAC;iBACL;gBACD,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAG,CAAC,CAAC;gBAC7C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAK,CAAC,CAAC;gBAClC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAG,CAAC,CAAC;aAC5C,CAAC,CAAC;YAEH,yCAAyC;YACzC,YAAY,EAA+C,CAAC,aAAa,EAAyB,CAAC;YAEnG,sBAAsB;YACtB,YAAY,EAAsC,CAAC,aAAa,EAAM,CAAC;YAEvE,yCAAyC;YACzC,YAAY,EAA+C,CAAC,aAAa,EAEtE,CAAC;YAEJ,kEAAkE;YAClE,YAAY,EAA6C,CAAC,aAAa,EAEpE,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE;oBACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;wBACpB,EAAE,EAAE,MAAM,CAAC,MAAM;wBACjB,KAAK,EAAE,MAAM,CAAC,MAAM;qBACrB,CAAC;oBACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;wBACpB,EAAE,EAAE,MAAM,CAAC,MAAM;wBACjB,IAAI,EAAE,MAAM,CAAC,OAAO;qBACrB,CAAC;oBACF,MAAM,EAAE,MAAM,CAAC,IAAI;iBACpB;aACF,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,CAAC,CAAC;YAEhG,2FAA2F;YAC3F,wEAAwE;YACxE,yFAAyF;YACzF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC5C,IAAI,EAAE;oBACJ,6DAA6D;oBAC7D,MAAM,EAAE,CAAC,IAAmC,EAAE,EAAE,CAC9C,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wBAC/B,MAAM,GAAG,GAAW,IAAI,CAAC,EAAE,CAAC;wBAC5B,MAAM,MAAM,GAAW,IAAI,CAAC,KAAK,CAAC;oBACpC,CAAC,CAAC;oBACJ,gDAAgD;oBAChD,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAmC;wBAC9D,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC,CAAC;oBACF,6CAA6C;oBAC7C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;wBACzB,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,2DAA2D;YAC3D,YAAY,EAA2C,CAAC,aAAa,EAAmC,CAAC;YAEzG,mFAAmF;YACnF,YAAY,EAA2C,CAAC,aAAa,EAAmC,CAAC;YAEzG,gDAAgD;YAChD,YAAY,EAA2C,CAAC,aAAa,EAAM,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,cAAe,SAAQ,OAAO,CAAC,OAAO,EAAsB,CAAC,iCAAiC,CAAC;aAAG;YAExG,MAAM,eAAgB,SAAQ,OAAO,CAAC,OAAO,EAAuB,CAAC,kCAAkC,CAAC;aAAG;YAE3G,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;YACnG,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAC9C,gCAAgC,EAChC,YAAY,EACZ,iBAAiB,CAClB,CAAC;YAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACpC,MAAM,EAAE;oBACN,QAAQ,EAAE,MAAM,CAAC,IAAI;oBACrB,QAAQ,EAAE,MAAM,CAAC,IAAI;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI;iBACpB;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC5C,MAAM,EAAE;oBACN,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;wBAC3B,KAAK,CAAC,CAAC,cAAc,CAAC;oBACxB,CAAC,CAAC;oBACF,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;wBAC3B,KAAK,CAAC,CAAC,eAAe,CAAC;oBACzB,CAAC,CAAC;oBACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAK,CAAC,CAAC;iBACnC;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAS,EAAE,EAAS,CAAC,CAAC;YAE3F,uEAAuE;YACvE,YAAY,EAAwC,CAAC,aAAa,EAAoC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,QAAS,SAAQ,OAAO,CAAC,OAAO,EAAgB,CAAC,2BAA2B,CAAC;aAAG;YAEtF,MAAM,SAAU,SAAQ,OAAO,CAAC,OAAO,EAAiB,CAAC,4BAA4B,CAAC;aAAG;YAEzF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;YAC3F,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAE3G,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACpC,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,MAAM,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC5C,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACxB,KAAK,CAAC,CAAC,QAAQ,CAAC;gBAClB,CAAC,CAAC;gBACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACzB,KAAK,CAAC,CAAC,SAAS,CAAC;gBACnB,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAS,EAAE,EAAS,CAAC,CAAC;YAE3F,2DAA2D;YAC3D,YAAY,EAAwC,CAAC,aAAa,EAAwB,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;YAC3F,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,wBAAwB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAE5G,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACpC,MAAM,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC5C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAK,CAAC,CAAC;aACnC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAS,EAAE,EAAS,CAAC,CAAC;YAErF,YAAY,EAAkC,CAAC,aAAa,EAAS,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,+DAA+D;QAC/D,MAAM,aAAa,GAAG,GAAQ,EAAE;YAC9B,MAAM,SAAS,GAAG;gBAChB,CAAC,iBAAiB,CAAC,EAAE,IAAI;gBACzB,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3B,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;aAC7B,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,0DAA0D;oBAC1D,YAAY,EAAY,CAAC,aAAa,EAAQ,CAAC;oBAC/C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,mDAAmD;YACnD,YAAY,EAAyC,CAAC,aAAa,EAAU,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC7B,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,YAAY,EAAY,CAAC,aAAa,EAAU,CAAC;oBACjD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,YAAY,EAAkC,CAAC,aAAa,EAAY,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,EAAE;QACF,6EAA6E;QAC7E,uCAAuC;QACvC,6BAA6B;QAC7B,2DAA2D;QAC3D,0CAA0C;QAC1C,0DAA0D;QAC1D,0DAA0D;QAC1D,uDAAuD;QACvD,UAAU;QACV,QAAQ;QAER,wFAAwF;QACxF,MAAM;QAEN,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,MAAM,CAAC,IAAI;gBACpB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACxB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,6EAA6E;YAC7E,YAAY,EAAiC,CAAC,aAAa,EAAgB,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC9B,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;oBACrB,EAAE,EAAE,MAAM,CAAC,MAAM;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;iBAChD,CAAC;gBACF,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAA8C;oBACxE,YAAY,EAAc,CAAC,aAAa,EAA6C,CAAC;oBACtF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,YAAY,EAAmC,CAAC,aAAa,EAE1D,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;aAC7C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;aAC7C,CAAC,CAAC;YAEH,oCAAoC;YACpC,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAmC,CAAC;YACnE,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAA2B,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-zero",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0-beta.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/realms-labs/effect-zero"
|
|
@@ -16,13 +16,12 @@
|
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
18
18
|
"@biomejs/biome": "^2.2.6",
|
|
19
|
-
"@effect-
|
|
20
|
-
"@effect/
|
|
21
|
-
"@effect/vitest": "^0.27.0",
|
|
19
|
+
"@effect/language-service": "^0.85.1",
|
|
20
|
+
"@effect/vitest": "^4.0.0-beta.64",
|
|
22
21
|
"@rocicorp/zero": "^1.3.0",
|
|
23
22
|
"@types/bun": "latest",
|
|
24
23
|
"@types/fs-extra": "^11.0.4",
|
|
25
|
-
"effect": "^
|
|
24
|
+
"effect": "^4.0.0-beta.64",
|
|
26
25
|
"fast-glob": "^3.3.3",
|
|
27
26
|
"fs-extra": "^11.3.2",
|
|
28
27
|
"ts-patch": "^3.3.0",
|
|
@@ -30,8 +29,7 @@
|
|
|
30
29
|
},
|
|
31
30
|
"peerDependencies": {
|
|
32
31
|
"@rocicorp/zero": "*",
|
|
33
|
-
"effect": "
|
|
34
|
-
"@effect-atom/atom": "*"
|
|
32
|
+
"effect": "^4.0.0-beta.64"
|
|
35
33
|
},
|
|
36
34
|
"exports": {
|
|
37
35
|
"./client-transaction": {
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import type { Schema as ZeroSchema, Transaction as ZeroTransaction } from "@rocicorp/zero";
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
|
-
import * as
|
|
3
|
+
import * as Ctx from "effect/Context";
|
|
4
4
|
import * as Data from "effect/Data";
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
|
+
import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
type _ = NodeInspectSymbol;
|
|
9
|
+
|
|
10
|
+
// biome-ignore lint/suspicious/noExplicitAny: any client transaction (its Id literal is irrelevant here)
|
|
11
|
+
export type Context<TSchema extends ZeroSchema> = ReturnType<typeof make<any, TSchema>>;
|
|
11
12
|
|
|
12
13
|
export const make = <const Id extends string, TSchema extends ZeroSchema>(id: Id, schema: TSchema) => {
|
|
13
|
-
|
|
14
|
+
class Context extends Ctx.Service<Context, ZeroTransaction<TSchema>>()(id) {}
|
|
14
15
|
|
|
15
16
|
const use = <A>(
|
|
16
17
|
fn: (transaction: ZeroTransaction<TSchema>, options: { readonly signal: AbortSignal }) => PromiseLike<A>,
|
|
17
18
|
) =>
|
|
18
|
-
Effect.
|
|
19
|
-
|
|
19
|
+
Effect.gen(function* () {
|
|
20
|
+
const transaction = yield* Context;
|
|
21
|
+
return yield* Effect.tryPromise({
|
|
20
22
|
try: (signal) => fn(transaction, { signal }),
|
|
21
23
|
catch: (error) => new ClientTransactionError({ cause: Cause.fail(error) }),
|
|
22
|
-
})
|
|
23
|
-
);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
24
26
|
|
|
25
|
-
return
|
|
27
|
+
return { Context, use, schema };
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
class ClientTransactionError extends Data.TaggedError("ClientTransactionError")<{
|
package/src/client.ts
CHANGED
|
@@ -3,42 +3,40 @@ import * as Cause from "effect/Cause";
|
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as Exit from "effect/Exit";
|
|
6
|
+
import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
6
7
|
import * as Match from "effect/Match";
|
|
7
|
-
import type * as ParseResult from "effect/ParseResult";
|
|
8
8
|
import * as Predicate from "effect/Predicate";
|
|
9
9
|
import * as Rec from "effect/Record";
|
|
10
|
-
import * as Runtime from "effect/Runtime";
|
|
11
10
|
import * as Schema from "effect/Schema";
|
|
12
11
|
import type * as ClientTransaction from "./client-transaction.js";
|
|
12
|
+
import { normalizeArgs } from "./internal/utils.js";
|
|
13
13
|
import * as Mutators from "./mutators.js";
|
|
14
14
|
|
|
15
|
-
type
|
|
16
|
-
ReturnType<typeof ClientTransaction.make<string, TSchema>>,
|
|
17
|
-
"use"
|
|
18
|
-
>;
|
|
15
|
+
type _ = NodeInspectSymbol;
|
|
19
16
|
|
|
20
17
|
export const make = Effect.fn(function* <TSchema extends ZeroSchema, TMutators extends Mutators.AnyMutators>(
|
|
21
|
-
transaction:
|
|
18
|
+
transaction: ClientTransaction.Context<TSchema>,
|
|
22
19
|
mutators: TMutators,
|
|
23
20
|
options: Omit<ZeroOptions<TSchema, UnwrapMutators<TSchema, TMutators>>, "schema" | "mutators">,
|
|
24
21
|
) {
|
|
25
|
-
const
|
|
26
|
-
yield* Effect.
|
|
27
|
-
Exclude<Mutators.ExtractMutatorsRequirements<TMutators>,
|
|
22
|
+
const ctx =
|
|
23
|
+
yield* Effect.context<
|
|
24
|
+
Exclude<Mutators.ExtractMutatorsRequirements<TMutators>, (typeof transaction.Context)["Identifier"]>
|
|
28
25
|
>();
|
|
29
26
|
|
|
30
27
|
function unwrapMutator<E>(mutator: Mutators.AnyMutator<Mutators.ExtractMutatorsRequirements<TMutators>, E>) {
|
|
31
28
|
return async (tx: ZeroTransaction<TSchema>, args: unknown, _ctx: unknown) => {
|
|
32
|
-
const exit = await Schema.
|
|
33
|
-
Effect.catchTag("
|
|
29
|
+
const exit = await Schema.decodeUnknownEffect(mutator[Mutators.MutatorSchemaSymbol])(normalizeArgs(args)).pipe(
|
|
30
|
+
Effect.catchTag("SchemaError", (e) => Effect.fail(new ClientArgsParseError({ cause: Cause.fail(e) }))),
|
|
34
31
|
Effect.flatMap(mutator),
|
|
35
|
-
Effect.provideService(transaction, tx),
|
|
36
|
-
|
|
32
|
+
Effect.provideService(transaction.Context, tx),
|
|
33
|
+
Effect.runPromiseExitWith(ctx),
|
|
37
34
|
);
|
|
38
|
-
|
|
35
|
+
if (Exit.isFailure(exit)) {
|
|
39
36
|
// Extract underlying error bypassing FiberFailure
|
|
40
|
-
throw Cause.squash(
|
|
41
|
-
}
|
|
37
|
+
throw Cause.squash(exit.cause);
|
|
38
|
+
}
|
|
39
|
+
return exit.value;
|
|
42
40
|
};
|
|
43
41
|
}
|
|
44
42
|
|
|
@@ -62,7 +60,7 @@ type UnwrapMutator<TSchema extends ZeroSchema, TMutators extends Mutators.AnyMut
|
|
|
62
60
|
? (transaction: ZeroTransaction<TSchema>) => Promise<void>
|
|
63
61
|
: (
|
|
64
62
|
transaction: ZeroTransaction<TSchema>,
|
|
65
|
-
args: Schema.
|
|
63
|
+
args: Schema.Codec.Encoded<TMutators[typeof Mutators.MutatorSchemaSymbol]>,
|
|
66
64
|
) => Promise<void>;
|
|
67
65
|
|
|
68
66
|
type UnwrapMutators<TSchema extends ZeroSchema, TMutators extends Mutators.AnyMutators> = {
|
|
@@ -76,5 +74,5 @@ type UnwrapMutators<TSchema extends ZeroSchema, TMutators extends Mutators.AnyMu
|
|
|
76
74
|
} & {};
|
|
77
75
|
|
|
78
76
|
export class ClientArgsParseError extends Data.TaggedError("ClientArgsParseError")<{
|
|
79
|
-
readonly cause: Cause.Cause<
|
|
77
|
+
readonly cause: Cause.Cause<Schema.SchemaError>;
|
|
80
78
|
}> {}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as SynchronizedRef from "effect/SynchronizedRef";
|
|
5
|
+
import { MultipleTransactionsError, NoTransactionError } from "./server.js";
|
|
6
|
+
import { prefixId } from "./utils.js";
|
|
7
|
+
|
|
8
|
+
export class ServerSynchronizationContext extends Context.Service<ServerSynchronizationContext>()(
|
|
9
|
+
prefixId("ServerSynchronizationContext"),
|
|
10
|
+
{
|
|
11
|
+
make: Effect.gen(function* () {
|
|
12
|
+
return {
|
|
13
|
+
wasTransactionExecuted: yield* SynchronizedRef.make(false),
|
|
14
|
+
};
|
|
15
|
+
}),
|
|
16
|
+
},
|
|
17
|
+
) {}
|
|
18
|
+
|
|
19
|
+
export const layer: Layer.Layer<ServerSynchronizationContext> = Layer.effect(ServerSynchronizationContext)(
|
|
20
|
+
ServerSynchronizationContext.make,
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
// Ensures that only one transaction is executed at a time and checks that another transaction wasn't already executed.
|
|
24
|
+
export const guard = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
|
|
25
|
+
Effect.gen(function* () {
|
|
26
|
+
const ctx = yield* ServerSynchronizationContext;
|
|
27
|
+
return yield* SynchronizedRef.modifyEffect(
|
|
28
|
+
ctx.wasTransactionExecuted,
|
|
29
|
+
Effect.fn(function* (wasTransactionExecuted) {
|
|
30
|
+
if (wasTransactionExecuted) {
|
|
31
|
+
return yield* new MultipleTransactionsError();
|
|
32
|
+
}
|
|
33
|
+
const result = yield* effect;
|
|
34
|
+
return [result, true];
|
|
35
|
+
}),
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export const finalize = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
|
|
40
|
+
Effect.gen(function* () {
|
|
41
|
+
const { wasTransactionExecuted } = yield* ServerSynchronizationContext;
|
|
42
|
+
|
|
43
|
+
return yield* effect.pipe(
|
|
44
|
+
// Case #2 "One transaction then fail"
|
|
45
|
+
// If the transaction was executed successfully, swallow the error and just log it, otherwise re-throw it
|
|
46
|
+
Effect.catchCause(
|
|
47
|
+
Effect.fn(function* (e) {
|
|
48
|
+
if (yield* SynchronizedRef.get(wasTransactionExecuted)) {
|
|
49
|
+
return yield* Effect.logError("Error occurred after transaction execution completed", e);
|
|
50
|
+
}
|
|
51
|
+
return yield* Effect.failCause(e);
|
|
52
|
+
}),
|
|
53
|
+
),
|
|
54
|
+
// Case #4 "Zero transactions then succeed"
|
|
55
|
+
// Check that the transaction was executed during the mutation
|
|
56
|
+
Effect.tap(
|
|
57
|
+
Effect.gen(function* () {
|
|
58
|
+
if (!(yield* SynchronizedRef.get(wasTransactionExecuted))) {
|
|
59
|
+
return yield* new NoTransactionError();
|
|
60
|
+
}
|
|
61
|
+
}),
|
|
62
|
+
),
|
|
63
|
+
);
|
|
64
|
+
});
|
package/src/internal/server.ts
CHANGED
|
@@ -1,68 +1,12 @@
|
|
|
1
1
|
import type { TransactionProviderInput } from "@rocicorp/zero/server";
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
4
|
import * as Predicate from "effect/Predicate";
|
|
6
|
-
import * as SynchronizedRef from "effect/SynchronizedRef";
|
|
7
5
|
import { prefixId } from "./utils.js";
|
|
8
6
|
|
|
9
|
-
export class ServerTransactionInput extends Context.
|
|
10
|
-
ServerTransactionInput,
|
|
11
|
-
|
|
12
|
-
>() {}
|
|
13
|
-
|
|
14
|
-
export class ServerSynchronizationContext extends Effect.Service<ServerSynchronizationContext>()(
|
|
15
|
-
prefixId("ServerSynchronizationContext"),
|
|
16
|
-
{
|
|
17
|
-
effect: Effect.gen(function* () {
|
|
18
|
-
return {
|
|
19
|
-
wasTransactionExecuted: yield* SynchronizedRef.make(false),
|
|
20
|
-
};
|
|
21
|
-
}),
|
|
22
|
-
},
|
|
23
|
-
) {
|
|
24
|
-
// Ensures that only one transaction is executed at a time and checks that another transaction wasn't already executed.
|
|
25
|
-
static guard = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
|
|
26
|
-
Effect.flatMap(this, (ctx) =>
|
|
27
|
-
SynchronizedRef.modifyEffect(
|
|
28
|
-
ctx.wasTransactionExecuted,
|
|
29
|
-
Effect.fn(function* (wasTransactionExecuted) {
|
|
30
|
-
if (wasTransactionExecuted) {
|
|
31
|
-
return yield* new MultipleTransactionsError();
|
|
32
|
-
}
|
|
33
|
-
const result = yield* effect;
|
|
34
|
-
return [result, true];
|
|
35
|
-
}),
|
|
36
|
-
),
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
static finalize = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
|
|
40
|
-
Effect.gen(this, function* () {
|
|
41
|
-
const wasTransactionExecuted = yield* this.pipe(Effect.map((ctx) => ctx.wasTransactionExecuted));
|
|
42
|
-
|
|
43
|
-
return yield* effect.pipe(
|
|
44
|
-
// Case #2 "One transaction then fail"
|
|
45
|
-
// If the transaction was executed successfully, swallow the error and just log it, otherwise re-throw it
|
|
46
|
-
Effect.catchAllCause(
|
|
47
|
-
Effect.fn(function* (e) {
|
|
48
|
-
if (yield* wasTransactionExecuted) {
|
|
49
|
-
return yield* Effect.logError("Error occurred after transaction execution completed", e);
|
|
50
|
-
}
|
|
51
|
-
return yield* Effect.failCause(e);
|
|
52
|
-
}),
|
|
53
|
-
),
|
|
54
|
-
// Case #4 "Zero transactions then succeed"
|
|
55
|
-
// Check that the transaction was executed during the mutation
|
|
56
|
-
Effect.tap(
|
|
57
|
-
Effect.gen(function* () {
|
|
58
|
-
if (!(yield* wasTransactionExecuted)) {
|
|
59
|
-
return yield* new NoTransactionError();
|
|
60
|
-
}
|
|
61
|
-
}),
|
|
62
|
-
),
|
|
63
|
-
);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
7
|
+
export class ServerTransactionInput extends Context.Service<ServerTransactionInput, TransactionProviderInput>()(
|
|
8
|
+
prefixId("ServerTransactionInput"),
|
|
9
|
+
) {}
|
|
66
10
|
|
|
67
11
|
export class NoTransactionError extends Data.TaggedError("NoTransactionError") {
|
|
68
12
|
message = "No transaction detected in a mutation, a transaction is required.";
|
package/src/internal/utils.ts
CHANGED
|
@@ -2,3 +2,11 @@
|
|
|
2
2
|
* Prefix a string with the package name.
|
|
3
3
|
*/
|
|
4
4
|
export const prefixId = <S extends string>(name: S) => `effect-zero/${name}` as const;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Zero unconditionally serializes arg-less mutator calls as `null` on the wire
|
|
8
|
+
* (https://github.com/rocicorp/mono/blob/3082c9fa061891067b4bd7dc9fe74f798270d8d7/packages/zero-client/src/client/custom.ts).
|
|
9
|
+
* v3 `Schema.Void` happened to accept any input; v4 `Schema.Void` is strict
|
|
10
|
+
* `=== undefined`, so we renormalize before decoding.
|
|
11
|
+
*/
|
|
12
|
+
export const normalizeArgs = (args: unknown): unknown => (args === null ? undefined : args);
|
package/src/mutators.ts
CHANGED
|
@@ -15,7 +15,7 @@ export type AnyMutatorFns<R = any> = {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
|
|
18
|
-
export type AnyMutatorSchema = Schema.
|
|
18
|
+
export type AnyMutatorSchema = Schema.Codec<any, any>;
|
|
19
19
|
export type AnyMutatorSchemas = Record<string, AnyMutatorSchema | Record<string, AnyMutatorSchema>>;
|
|
20
20
|
|
|
21
21
|
export type MutatorFns<TSchema extends AnyMutatorSchemas> = {
|
|
@@ -71,7 +71,7 @@ export function make(schema: AnyMutatorSchemas, mutators: AnyMutatorFns): AnyMut
|
|
|
71
71
|
return Rec.map(mutators, (v, name) => {
|
|
72
72
|
return Match.value([v, schema[name]]).pipe(
|
|
73
73
|
Match.when([Predicate.isFunction, Schema.isSchema], ([mutator, schema]) => makeMutator(schema, mutator)),
|
|
74
|
-
Match.when([Predicate.
|
|
74
|
+
Match.when([Predicate.isObject, Predicate.isObject], ([mutator, schema]) =>
|
|
75
75
|
Rec.map(mutator, (mutator, name) => makeMutator(Option.getOrThrow(Rec.get(schema, name)), mutator)),
|
|
76
76
|
),
|
|
77
77
|
Match.orElseAbsurd,
|