effect-zero 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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { JSONValue, ReadonlyJSONValue } from "@rocicorp/zero";
2
- import type { HumanReadable, QueryResult } from "@rocicorp/zero/react";
1
+ import type { HumanReadable, JSONValue, ReadonlyJSONValue } from "@rocicorp/zero";
2
+ import type { QueryResult } from "@rocicorp/zero/react";
3
3
  export declare function getDefaultSnapshot<TReturn>(singular: boolean): QueryResult<TReturn>;
4
4
  /**
5
5
  * Returns a new snapshot or one of the empty predefined ones. Returning the
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYvE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAEnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EACjC,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,GACjB,WAAW,CAAC,OAAO,CAAC,CActB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAG7D"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYxD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAEnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EACjC,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,GACjB,WAAW,CAAC,OAAO,CAAC,CActB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAG7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,268 @@
1
+ import { describe, expectTypeOf, it } from "@effect/vitest";
2
+ import { queryInternalsTag } from "@rocicorp/zero/bindings";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Schema from "effect/Schema";
5
+ import * as ClientTransaction from "./client-transaction.js";
6
+ import * as Mutators from "./mutators.js";
7
+ import * as Query from "./query.js";
8
+ import * as Server from "./server.js";
9
+ import * as ServerTransaction from "./server-transaction.js";
10
+ // Mock Zero schema for type tests
11
+ const mockZeroSchema = {
12
+ tables: {
13
+ messages: {
14
+ tableName: "messages",
15
+ columns: {
16
+ id: { type: "string" },
17
+ body: { type: "string" },
18
+ },
19
+ primaryKey: ["id"],
20
+ },
21
+ },
22
+ };
23
+ // Mock database for type tests
24
+ const mockDatabase = {};
25
+ describe("Type tests", () => {
26
+ describe("Mutators", () => {
27
+ it("mutators should have correct argument types", () => {
28
+ const mutatorSchema = Mutators.schema({
29
+ messages: {
30
+ create: Schema.Struct({
31
+ id: Schema.String,
32
+ body: Schema.String,
33
+ }),
34
+ },
35
+ optionalVoidArg: Schema.Void,
36
+ noArgs: Schema.Void,
37
+ transformArgs: Schema.Struct({
38
+ foo: Schema.NumberFromString,
39
+ }),
40
+ });
41
+ const clientTransaction = ClientTransaction.make("TestClientTransaction", mockZeroSchema);
42
+ const mutators = Mutators.make(mutatorSchema, {
43
+ messages: {
44
+ create: (msg) => clientTransaction.use(async () => {
45
+ // Use msg to verify type
46
+ const _id = msg.id;
47
+ const _body = msg.body;
48
+ }),
49
+ },
50
+ optionalVoidArg: Effect.fn(function* (_a) { }),
51
+ noArgs: Effect.fn(function* () { }),
52
+ transformArgs: Effect.fn(function* (_a) { }),
53
+ });
54
+ // Test void/undefined optional parameter
55
+ expectTypeOf().toEqualTypeOf();
56
+ // Test no-arg mutator
57
+ expectTypeOf().toEqualTypeOf();
58
+ // Test nested mutator with struct schema
59
+ expectTypeOf().toEqualTypeOf();
60
+ // Test transformed args - mutator receives decoded (Type) version
61
+ expectTypeOf().toEqualTypeOf();
62
+ });
63
+ it("nested mutators using Effect.fn should have correct argument types", () => {
64
+ const mutatorSchema = Mutators.schema({
65
+ todo: {
66
+ create: Schema.Struct({
67
+ id: Schema.String,
68
+ title: Schema.String,
69
+ }),
70
+ toggle: Schema.Struct({
71
+ id: Schema.String,
72
+ done: Schema.Boolean,
73
+ }),
74
+ delete: Schema.Void,
75
+ },
76
+ });
77
+ const clientTransaction = ClientTransaction.make("TestClientTransactionNested", mockZeroSchema);
78
+ // Note: When using Effect.fn with destructuring, TypeScript infers the parameter as `any`.
79
+ // The runtime still correctly validates/transforms args via the schema.
80
+ // To get proper type inference, use explicit parameter types or regular arrow functions.
81
+ const mutators = Mutators.make(mutatorSchema, {
82
+ todo: {
83
+ // Using arrow function with explicit type for best inference
84
+ create: (args) => clientTransaction.use(async () => {
85
+ const _id = args.id;
86
+ const _title = args.title;
87
+ }),
88
+ // Using Effect.fn with explicit type annotation
89
+ toggle: Effect.fn(function* (args) {
90
+ yield* clientTransaction.use(async () => { });
91
+ }),
92
+ // Using Effect.fn with no args (void schema)
93
+ delete: Effect.fn(function* () {
94
+ yield* clientTransaction.use(async () => { });
95
+ }),
96
+ },
97
+ });
98
+ // Test nested mutator with arrow function - preserves type
99
+ expectTypeOf().toEqualTypeOf();
100
+ // Test nested mutator with Effect.fn and explicit type annotation - preserves type
101
+ expectTypeOf().toEqualTypeOf();
102
+ // Test nested mutator with void schema - delete
103
+ expectTypeOf().toEqualTypeOf();
104
+ });
105
+ it("nested mutator requirements should propagate", () => {
106
+ class NestedDummyTag extends Effect.Service()("effect-zero/test/NestedDummyTag", {
107
+ succeed: {},
108
+ }) {
109
+ }
110
+ class NestedDummyTag2 extends Effect.Service()("effect-zero/test/NestedDummyTag2", {
111
+ succeed: {},
112
+ }) {
113
+ }
114
+ const clientTransaction = ClientTransaction.make("TestClientTransactionNestedReq", mockZeroSchema);
115
+ const serverTransaction = ServerTransaction.make("TestServerTransactionNestedReq", mockDatabase, clientTransaction);
116
+ const mutatorSchema = Mutators.schema({
117
+ nested: {
118
+ withTag1: Schema.Void,
119
+ withTag2: Schema.Void,
120
+ noTags: Schema.Void,
121
+ },
122
+ });
123
+ const mutators = Mutators.make(mutatorSchema, {
124
+ nested: {
125
+ withTag1: Effect.fn(function* () {
126
+ yield* NestedDummyTag;
127
+ }),
128
+ withTag2: Effect.fn(function* () {
129
+ yield* NestedDummyTag2;
130
+ }),
131
+ noTags: Effect.fn(function* () { }),
132
+ },
133
+ });
134
+ const serverEffect = Server.processPush(serverTransaction, mutators, {}, {});
135
+ // Server effect should require both NestedDummyTag and NestedDummyTag2
136
+ expectTypeOf().toEqualTypeOf();
137
+ });
138
+ it("mutator requirements should propagate", () => {
139
+ class DummyTag extends Effect.Service()("effect-zero/test/DummyTag", {
140
+ succeed: {},
141
+ }) {
142
+ }
143
+ class DummyTag2 extends Effect.Service()("effect-zero/test/DummyTag2", {
144
+ succeed: {},
145
+ }) {
146
+ }
147
+ const clientTransaction = ClientTransaction.make("TestClientTransaction2", mockZeroSchema);
148
+ const serverTransaction = ServerTransaction.make("TestServerTransaction", mockDatabase, clientTransaction);
149
+ const mutatorSchema = Mutators.schema({
150
+ dummy: Schema.Void,
151
+ dummy2: Schema.Void,
152
+ });
153
+ const mutators = Mutators.make(mutatorSchema, {
154
+ dummy: Effect.fn(function* () {
155
+ yield* DummyTag;
156
+ }),
157
+ dummy2: Effect.fn(function* () {
158
+ yield* DummyTag2;
159
+ }),
160
+ });
161
+ const serverEffect = Server.processPush(serverTransaction, mutators, {}, {});
162
+ // Server effect should require both DummyTag and DummyTag2
163
+ expectTypeOf().toEqualTypeOf();
164
+ });
165
+ it("processPush has no extra requirements when mutators have none", () => {
166
+ const clientTransaction = ClientTransaction.make("TestClientTransaction3", mockZeroSchema);
167
+ const serverTransaction = ServerTransaction.make("TestServerTransaction2", mockDatabase, clientTransaction);
168
+ const mutatorSchema = Mutators.schema({
169
+ simple: Schema.Void,
170
+ });
171
+ const mutators = Mutators.make(mutatorSchema, {
172
+ simple: Effect.fn(function* () { }),
173
+ });
174
+ const effect = Server.processPush(serverTransaction, mutators, {}, {});
175
+ expectTypeOf().toEqualTypeOf();
176
+ });
177
+ });
178
+ describe("Query", () => {
179
+ // biome-ignore lint/suspicious/noExplicitAny: allowed in tests
180
+ const makeMockQuery = () => {
181
+ const mockQuery = {
182
+ [queryInternalsTag]: true,
183
+ format: { singular: false },
184
+ nameAndArgs: () => mockQuery,
185
+ };
186
+ return mockQuery;
187
+ };
188
+ it("query should accept and passthrough encoded non-JSON args", () => {
189
+ const transformArgsQuery = Query.make({
190
+ name: "transformArgs",
191
+ payload: Schema.DateFromNumber,
192
+ query: Effect.fn(function* (a) {
193
+ // Inside the query, 'a' should be the decoded type (Date)
194
+ expectTypeOf().toEqualTypeOf();
195
+ return yield* Effect.succeed(makeMockQuery());
196
+ }),
197
+ });
198
+ // Query function should accept decoded type (Date)
199
+ expectTypeOf().toEqualTypeOf();
200
+ });
201
+ it("query with string tuple should have correct parameter types", () => {
202
+ const stringQuery = Query.make({
203
+ name: "stringQuery",
204
+ payload: Schema.String,
205
+ query: Effect.fn(function* (s) {
206
+ expectTypeOf().toEqualTypeOf();
207
+ return yield* Effect.succeed(makeMockQuery());
208
+ }),
209
+ });
210
+ expectTypeOf().toEqualTypeOf();
211
+ });
212
+ // Queries were changed to only support a single argument in 0.25
213
+ //
214
+ // it("query with multiple args should have correct parameter types", () => {
215
+ // const multiArgQuery = Query.make({
216
+ // name: "multiArgQuery",
217
+ // payload: Schema.Tuple(Schema.String, Schema.Number),
218
+ // query: Effect.fn(function* (s, n) {
219
+ // expectTypeOf<typeof s>().toEqualTypeOf<string>();
220
+ // expectTypeOf<typeof n>().toEqualTypeOf<number>();
221
+ // return yield* Effect.succeed(makeMockQuery());
222
+ // }),
223
+ // });
224
+ // expectTypeOf<Parameters<typeof multiArgQuery>>().toEqualTypeOf<[string, number]>();
225
+ // });
226
+ it("query with no args should have empty parameter types", () => {
227
+ const noArgQuery = Query.make({
228
+ name: "noArgQuery",
229
+ payload: Schema.Void,
230
+ query: Effect.fn(function* () {
231
+ return yield* Effect.succeed(makeMockQuery());
232
+ }),
233
+ });
234
+ // biome-ignore lint/suspicious/noConfusingVoidType: Necessary for type check
235
+ expectTypeOf().toEqualTypeOf();
236
+ });
237
+ it("query with complex struct arg should have correct parameter types", () => {
238
+ const complexQuery = Query.make({
239
+ name: "complexQuery",
240
+ payload: Schema.Struct({
241
+ id: Schema.String,
242
+ nested: Schema.Struct({ value: Schema.Number }),
243
+ }),
244
+ query: Effect.fn(function* (arg) {
245
+ expectTypeOf().toEqualTypeOf();
246
+ return yield* Effect.succeed(makeMockQuery());
247
+ }),
248
+ });
249
+ expectTypeOf().toEqualTypeOf();
250
+ });
251
+ it("MakeQueryResult should be satisfied by query results", () => {
252
+ const query1 = Query.make({
253
+ name: "q1",
254
+ payload: Schema.Tuple(Schema.String),
255
+ query: () => Effect.succeed(makeMockQuery()),
256
+ });
257
+ const query2 = Query.make({
258
+ name: "q2",
259
+ payload: Schema.Tuple(),
260
+ query: () => Effect.succeed(makeMockQuery()),
261
+ });
262
+ // This should compile without error
263
+ const queries = [query1, query2];
264
+ expectTypeOf(queries).toExtend();
265
+ });
266
+ });
267
+ });
268
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "effect-zero",
3
3
  "type": "module",
4
- "version": "0.3.2",
4
+ "version": "0.4.0",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "url": "https://github.com/realms-labs/effect-zero"
@@ -19,7 +19,7 @@
19
19
  "@effect-atom/atom": "^0.4.3",
20
20
  "@effect/language-service": "^0.55.2",
21
21
  "@effect/vitest": "^0.27.0",
22
- "@rocicorp/zero": "^0.24.3000000000",
22
+ "@rocicorp/zero": "^0.26.1",
23
23
  "@types/bun": "latest",
24
24
  "@types/fs-extra": "^11.0.4",
25
25
  "effect": "^3.19.3",
@@ -40,22 +40,16 @@
40
40
  "default": "./dist/server.js"
41
41
  }
42
42
  },
43
- "./result": {
44
- "import": {
45
- "types": "./dist/result.d.ts",
46
- "default": "./dist/result.js"
47
- }
48
- },
49
- "./server-transaction": {
43
+ "./query": {
50
44
  "import": {
51
- "types": "./dist/server-transaction.d.ts",
52
- "default": "./dist/server-transaction.js"
45
+ "types": "./dist/query.d.ts",
46
+ "default": "./dist/query.js"
53
47
  }
54
48
  },
55
- "./client-transaction": {
49
+ "./mutators": {
56
50
  "import": {
57
- "types": "./dist/client-transaction.d.ts",
58
- "default": "./dist/client-transaction.js"
51
+ "types": "./dist/mutators.d.ts",
52
+ "default": "./dist/mutators.js"
59
53
  }
60
54
  },
61
55
  "./snapshot": {
@@ -64,28 +58,28 @@
64
58
  "default": "./dist/snapshot.js"
65
59
  }
66
60
  },
67
- "./mutators": {
61
+ "./client-transaction": {
68
62
  "import": {
69
- "types": "./dist/mutators.d.ts",
70
- "default": "./dist/mutators.js"
63
+ "types": "./dist/client-transaction.d.ts",
64
+ "default": "./dist/client-transaction.js"
71
65
  }
72
66
  },
73
- "./client": {
67
+ "./server-transaction": {
74
68
  "import": {
75
- "types": "./dist/client.d.ts",
76
- "default": "./dist/client.js"
69
+ "types": "./dist/server-transaction.d.ts",
70
+ "default": "./dist/server-transaction.js"
77
71
  }
78
72
  },
79
- "./query": {
73
+ "./result": {
80
74
  "import": {
81
- "types": "./dist/query.d.ts",
82
- "default": "./dist/query.js"
75
+ "types": "./dist/result.d.ts",
76
+ "default": "./dist/result.js"
83
77
  }
84
78
  },
85
- "./types/common": {
79
+ "./client": {
86
80
  "import": {
87
- "types": "./dist/types/common.d.ts",
88
- "default": "./dist/types/common.js"
81
+ "types": "./dist/client.d.ts",
82
+ "default": "./dist/client.js"
89
83
  }
90
84
  },
91
85
  "./types/push": {
@@ -99,6 +93,12 @@
99
93
  "types": "./dist/types/queries.d.ts",
100
94
  "default": "./dist/types/queries.js"
101
95
  }
96
+ },
97
+ "./types/common": {
98
+ "import": {
99
+ "types": "./dist/types/common.d.ts",
100
+ "default": "./dist/types/common.js"
101
+ }
102
102
  }
103
103
  }
104
104
  }
package/src/client.ts CHANGED
@@ -20,7 +20,7 @@ type ClientTransactionContext<TSchema extends ZeroSchema> = Omit<
20
20
  export const make = Effect.fn(function* <TSchema extends ZeroSchema, TMutators extends Mutators.AnyMutators>(
21
21
  transaction: ClientTransactionContext<TSchema>,
22
22
  mutators: TMutators,
23
- options: Omit<ZeroOptions<TSchema>, "schema" | "mutators">,
23
+ options: Omit<ZeroOptions<TSchema, UnwrapMutators<TSchema, TMutators>>, "schema" | "mutators">,
24
24
  ) {
25
25
  const runtime =
26
26
  yield* Effect.runtime<
@@ -28,7 +28,7 @@ export const make = Effect.fn(function* <TSchema extends ZeroSchema, TMutators e
28
28
  >();
29
29
 
30
30
  function unwrapMutator<E>(mutator: Mutators.AnyMutator<Mutators.ExtractMutatorsRequirements<TMutators>, E>) {
31
- return async (tx: ZeroTransaction<TSchema>, args: unknown) => {
31
+ return async (tx: ZeroTransaction<TSchema>, args: unknown, _ctx: unknown) => {
32
32
  const exit = await Schema.decode(mutator[Mutators.MutatorSchemaSymbol])(args).pipe(
33
33
  Effect.catchTag("ParseError", (e) => new ClientArgsParseError({ cause: Cause.fail(e) })),
34
34
  Effect.flatMap(mutator),
@@ -44,7 +44,7 @@ export const make = Effect.fn(function* <TSchema extends ZeroSchema, TMutators e
44
44
 
45
45
  const unwrappedMutators = Rec.map(mutators, (v) =>
46
46
  Match.value(v).pipe(Match.when(Predicate.isFunction, unwrapMutator), Match.orElse(Rec.map(unwrapMutator))),
47
- ) as UnwrapMutators<TSchema, TMutators>;
47
+ ) as ZeroOptions<TSchema, UnwrapMutators<TSchema, TMutators>>["mutators"];
48
48
 
49
49
  return yield* Effect.acquireRelease(
50
50
  Effect.sync(() => {
@@ -1,8 +1,5 @@
1
- import type {
2
- HumanReadable,
3
- QueryResult as ZeroQueryResult,
4
- QueryResultDetails as ZeroQueryResultDetails,
5
- } from "@rocicorp/zero/react";
1
+ import type { HumanReadable, QueryResultDetails as ZeroQueryResultDetails } from "@rocicorp/zero";
2
+ import type { QueryResult as ZeroQueryResult } from "@rocicorp/zero/react";
6
3
  import * as Match from "effect/Match";
7
4
 
8
5
  // Our internal representation of Zero's QueryResult type.
package/src/query.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { HumanReadable, ReadonlyJSONValue, Zero, Query as ZeroQuery, Schema as ZeroSchema } from "@rocicorp/zero";
2
+ import { asQueryInternals } from "@rocicorp/zero/bindings";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Equal from "effect/Equal";
4
5
  import * as Hash from "effect/Hash";
@@ -10,15 +11,8 @@ import * as QueryResult from "./internal/query-result.js";
10
11
  import { prefixId } from "./internal/utils.js";
11
12
  import { deepClone, getDefaultSnapshot, getSnapshot } from "./snapshot.js";
12
13
 
13
- export type Query<S extends ZeroSchema, T extends keyof S["tables"] & string, R> = ZeroQuery<S, T, R> & Equal.Equal;
14
-
15
- type QueryArgs<
16
- A extends ReadonlyJSONValue[],
17
- B extends unknown[],
18
- > = // biome-ignore lint/suspicious/noExplicitAny: handles "any query" case
19
- | { _tag: "Encoded"; args: any extends A ? any : readonly [...A] }
20
- // biome-ignore lint/suspicious/noExplicitAny: handles "any query" case
21
- | { _tag: "Decoded"; args: any extends B ? any : readonly [...B] };
14
+ // biome-ignore lint/suspicious/noConfusingVoidType: necessary to allow Schema.Void
15
+ type QueryArgs<A extends ReadonlyJSONValue | void, B> = { _tag: "Encoded"; args: A } | { _tag: "Decoded"; args: B };
22
16
 
23
17
  export const RunQuerySymbol = Symbol.for(prefixId("RunQuery"));
24
18
  export const QueryNameSymbol = Symbol.for(prefixId("QueryName"));
@@ -26,19 +20,20 @@ export const QueryNameSymbol = Symbol.for(prefixId("QueryName"));
26
20
  export const make = <
27
21
  N extends string,
28
22
  // The encoded format that is sent over the wire, must conform to JSON
29
- A extends ReadonlyJSONValue[],
23
+ // biome-ignore lint/suspicious/noConfusingVoidType: necessary to allow Schema.Void
24
+ A extends ReadonlyJSONValue | void,
30
25
  // The decoded format, can be anything
31
- B extends unknown[],
32
- S extends ZeroSchema,
26
+ B,
33
27
  T extends keyof S["tables"] & string,
28
+ S extends ZeroSchema,
34
29
  R,
35
30
  E,
36
31
  R1,
37
32
  R2,
38
33
  >(options: {
39
34
  name: N;
40
- payload: Schema.Schema<readonly [...B], readonly [...A], R1>;
41
- query: (...args: NoInfer<B>) => Effect.Effect<ZeroQuery<S, T, R>, E, R2>;
35
+ payload: Schema.Schema<B, A, R1>;
36
+ query: (args: NoInfer<B>) => Effect.Effect<ZeroQuery<T, S, R>, E, R2>;
42
37
  }) => {
43
38
  const runQuery = Effect.fn(function* (args: QueryArgs<A, B>) {
44
39
  const { encoded, decoded } = yield* Match.valueTags(args, {
@@ -48,17 +43,16 @@ export const make = <
48
43
  Effect.map(Schema.encode(options.payload)(decoded), (encoded) => ({ encoded, decoded })),
49
44
  });
50
45
 
51
- return yield* options.query(...decoded).pipe(
46
+ return yield* options.query(decoded).pipe(
52
47
  Effect.map((rawQuery) => {
53
- const query = rawQuery.nameAndArgs(
48
+ const query = asQueryInternals(rawQuery).nameAndArgs(
54
49
  options.name,
55
50
  // We pass the encoded `args` to the `nameAndArgs` method, as that is the wire format which
56
51
  // is sent to the server.
57
- encoded,
58
- ) as Query<S, T, R>;
59
- query[Hash.symbol] = function () {
60
- return Hash.hash(this.hash());
61
- };
52
+ encoded !== undefined ? [encoded] : [],
53
+ ) as ZeroQuery<T, S, R> & Equal.Equal;
54
+ // Adapted from https://github.com/rocicorp/mono/blob/17171f975e61f7ec93c61569da7bda1d962ac962/packages/zero-protocol/src/query-hash.ts#L17
55
+ query[Hash.symbol] = () => Hash.string(`${options.name}:${JSON.stringify(encoded)}`);
62
56
  query[Equal.symbol] = function (that) {
63
57
  if (Hash.isHash(that)) {
64
58
  return Equal.equals(this[Hash.symbol](), that[Hash.symbol]());
@@ -71,7 +65,7 @@ export const make = <
71
65
  });
72
66
 
73
67
  // We return a callable object for ease of use on the frontend.
74
- return Object.assign((...args: B) => runQuery({ _tag: "Decoded", args }), {
68
+ return Object.assign((args: B) => runQuery({ _tag: "Decoded", args }), {
75
69
  [QueryNameSymbol]: options.name,
76
70
  // Internally, we include the full `runQuery` function for use in library's server logic.
77
71
  [RunQuerySymbol]: runQuery,
@@ -81,13 +75,12 @@ export const make = <
81
75
  // biome-ignore lint/suspicious/noExplicitAny: accept any query
82
76
  export type MakeQueryResult<E = any, R1 = any, R2 = any> = ReturnType<
83
77
  // biome-ignore lint/suspicious/noExplicitAny: accept any query
84
- typeof make<string, any, any, ZeroSchema, string, Record<string, any> | undefined, E, R1, R2>
78
+ typeof make<string, any, any, string, ZeroSchema, Record<string, any> | undefined, E, R1, R2>
85
79
  >;
86
80
 
87
- export const stream = <S extends ZeroSchema, T extends keyof S["tables"] & string, R>(
81
+ export const stream = <T extends keyof S["tables"] & string, S extends ZeroSchema, R>(
88
82
  zero: Zero<S>,
89
- // TODO: Look into why this is needed, instead of just `ZeroQuery<S, T, R>`
90
- query: ZeroQuery<S, T, R> | Query<S, T, R>,
83
+ query: ZeroQuery<T, S, R>,
91
84
  ) =>
92
85
  Effect.gen(function* () {
93
86
  const view = yield* Effect.acquireRelease(
@@ -101,25 +94,24 @@ export const stream = <S extends ZeroSchema, T extends keyof S["tables"] & strin
101
94
  Stream.mapEffect(([data, resultType]) =>
102
95
  Effect.sync(() => {
103
96
  // logic here borrowed from: https://github.com/rocicorp/mono/blob/288b00ec94f5a9ae6e988513423af25c281dbb2a/packages/zero-react/src/use-query.tsx#L295
104
- // TODO: Look into why cast needs to be applied to whole ternary here, unlike source.
105
- const cloned = (data === undefined ? data : deepClone(data as ReadonlyJSONValue)) as HumanReadable<R>;
106
- return getSnapshot<R>(query.format.singular, cloned, resultType);
97
+ const cloned = data === undefined ? data : (deepClone(data as ReadonlyJSONValue) as HumanReadable<R>);
98
+ return getSnapshot<R>(asQueryInternals(query).format.singular, cloned, resultType);
107
99
  }),
108
100
  ),
109
101
  Stream.map(QueryResult.make),
110
102
  );
111
103
  }).pipe(Stream.unwrapScoped);
112
104
 
113
- export const initialValue = <S extends ZeroSchema, T extends keyof S["tables"] & string, R>(
114
- query: ZeroQuery<S, T, R> | Query<S, T, R>,
115
- ) => QueryResult.make<R>(getDefaultSnapshot(query.format.singular));
105
+ export const initialValue = <T extends keyof S["tables"] & string, S extends ZeroSchema, R>(
106
+ query: ZeroQuery<T, S, R>,
107
+ ) => QueryResult.make<R>(getDefaultSnapshot(asQueryInternals(query).format.singular));
116
108
 
117
- export const subscribable = <S extends ZeroSchema, T extends keyof S["tables"] & string, R>(
109
+ export const subscribable = <T extends keyof S["tables"] & string, S extends ZeroSchema, R>(
118
110
  zero: Zero<S>,
119
- query: ZeroQuery<S, T, R> | Query<S, T, R>,
111
+ query: ZeroQuery<T, S, R>,
120
112
  ) => {
121
113
  return Subscribable.make({
122
- get: Effect.promise(() => zero.run(query as ZeroQuery<S, T, R>, { type: "unknown" })).pipe(
114
+ get: Effect.promise(() => zero.run(query, { type: "unknown" })).pipe(
123
115
  Effect.map((value) => ({ _tag: "Partial", value }) satisfies QueryResult.QueryResult.Partial<R>),
124
116
  ),
125
117
  changes: stream(zero, query),
package/src/result.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Result as AtomResult } from "@effect-atom/atom";
2
- import type { HumanReadable } from "@rocicorp/zero/react";
2
+ import type { HumanReadable } from "@rocicorp/zero";
3
3
  import * as Cause from "effect/Cause";
4
4
  import * as Data from "effect/Data";
5
5
  import * as Fn from "effect/Function";