jazz-tools 0.14.2 → 0.14.4

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":"zodFieldToCoFieldDef.d.ts","sourceRoot":"","sources":["../../../../src/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAC;AAO3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,KAAK,WAAW,GACZ,YAAY,GACZ,kBAAkB,GAClB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GACnC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GACjC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GACnC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,wGA+EvD"}
1
+ {"version":3,"file":"zodFieldToCoFieldDef.d.ts","sourceRoot":"","sources":["../../../../src/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAC;AAO3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,KAAK,WAAW,GACZ,YAAY,GACZ,kBAAkB,GAClB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GACnC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GACjC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GACnC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,wGAkFvD"}
@@ -25,5 +25,5 @@ export type InstanceOrPrimitiveOfSchema<S extends CoValueClass | z.core.$ZodType
25
25
  -readonly [key in keyof Shape]: InstanceOrPrimitiveOfSchema<Shape[key]>;
26
26
  } : S extends z.core.$ZodArray<infer Item> ? InstanceOrPrimitiveOfSchema<Item>[] : S extends z.core.$ZodTuple<infer Items> ? {
27
27
  [key in keyof Items]: InstanceOrPrimitiveOfSchema<Items[key]>;
28
- } : S extends z.core.$ZodString ? string : S extends z.core.$ZodNumber ? number : S extends z.core.$ZodBoolean ? boolean : S extends z.core.$ZodLiteral<infer Literal> ? Literal : S extends z.core.$ZodDate ? Date : never : S extends CoValueClass ? InstanceType<S> : never;
28
+ } : S extends z.core.$ZodString ? string : S extends z.core.$ZodNumber ? number : S extends z.core.$ZodBoolean ? boolean : S extends z.core.$ZodLiteral<infer Literal> ? Literal : S extends z.core.$ZodDate ? Date : S extends z.core.$ZodEnum<infer Enum> ? Enum[keyof Enum] : never : S extends CoValueClass ? InstanceType<S> : never;
29
29
  //# sourceMappingURL=InstanceOrPrimitiveOfSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceOrPrimitiveOfSchema.d.ts","sourceRoot":"","sources":["../../../../src/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstanceOrPrimitiveOfSchema.d.ts","sourceRoot":"","sources":["../../../../src/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts"],"names":[],"mappings":"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"}
@@ -25,5 +25,5 @@ export type InstanceOrPrimitiveOfSchemaCoValuesNullable<S extends CoValueClass |
25
25
  -readonly [key in keyof Shape]: InstanceOrPrimitiveOfSchema<Shape[key]>;
26
26
  } : S extends z.core.$ZodArray<infer Item> ? InstanceOrPrimitiveOfSchema<Item>[] : S extends z.core.$ZodTuple<infer Items> ? {
27
27
  [key in keyof Items]: InstanceOrPrimitiveOfSchema<Items[key]>;
28
- } : S extends z.core.$ZodString ? string : S extends z.core.$ZodNumber ? number : S extends z.core.$ZodBoolean ? boolean : S extends z.core.$ZodLiteral<infer Literal> ? Literal : S extends z.core.$ZodDate ? Date : never : S extends CoValueClass ? InstanceType<S> | null : never;
28
+ } : S extends z.core.$ZodString ? string : S extends z.core.$ZodNumber ? number : S extends z.core.$ZodBoolean ? boolean : S extends z.core.$ZodLiteral<infer Literal> ? Literal : S extends z.core.$ZodDate ? Date : S extends z.core.$ZodEnum<infer Enum> ? Enum[keyof Enum] : never : S extends CoValueClass ? InstanceType<S> | null : never;
29
29
  //# sourceMappingURL=InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts","sourceRoot":"","sources":["../../../../src/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts","sourceRoot":"","sources":["../../../../src/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ import {
32
32
  randomSessionProvider,
33
33
  subscribeToCoValue,
34
34
  zodSchemaToCoSchema
35
- } from "./chunk-WLOZKDOH.js";
35
+ } from "./chunk-6QMAFVZO.js";
36
36
 
37
37
  // src/exports.ts
38
38
  import { z } from "zod/v4";
package/dist/testing.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  createAnonymousJazzContext,
7
7
  createJazzContext,
8
8
  randomSessionProvider
9
- } from "./chunk-WLOZKDOH.js";
9
+ } from "./chunk-6QMAFVZO.js";
10
10
 
11
11
  // src/testing.ts
12
12
  import { LocalNode } from "cojson";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=coMap.record.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coMap.record.test-d.d.ts","sourceRoot":"","sources":["../../src/tests/coMap.record.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=coMap.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coMap.test-d.d.ts","sourceRoot":"","sources":["../../src/tests/coMap.test-d.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "type": "module",
19
19
  "license": "MIT",
20
- "version": "0.14.2",
20
+ "version": "0.14.4",
21
21
  "dependencies": {
22
22
  "@scure/bip39": "^1.3.0",
23
23
  "fast-myers-diff": "^3.2.0",
@@ -41,6 +41,9 @@ export function zodFieldToCoFieldDef(schema: FieldSchema) {
41
41
  return coField.boolean;
42
42
  } else if (schema._zod.def.type === "null") {
43
43
  return coField.null;
44
+ // @ts-expect-error enum is not declared as def.type
45
+ } else if (schema._zod.def.type === "enum") {
46
+ return coField.string;
44
47
  } else if (schema._zod.def.type === "date") {
45
48
  return coField.Date;
46
49
  } else if (schema._zod.def.type === "literal") {
@@ -84,7 +84,9 @@ export type InstanceOrPrimitiveOfSchema<
84
84
  ? Literal
85
85
  : S extends z.core.$ZodDate
86
86
  ? Date
87
- : never
87
+ : S extends z.core.$ZodEnum<infer Enum>
88
+ ? Enum[keyof Enum]
89
+ : never
88
90
  : S extends CoValueClass
89
91
  ? InstanceType<S>
90
92
  : never;
@@ -97,7 +97,9 @@ export type InstanceOrPrimitiveOfSchemaCoValuesNullable<
97
97
  ? Literal
98
98
  : S extends z.core.$ZodDate
99
99
  ? Date
100
- : never
100
+ : S extends z.core.$ZodEnum<infer Enum>
101
+ ? Enum[keyof Enum]
102
+ : never
101
103
  : S extends CoValueClass
102
104
  ? InstanceType<S> | null
103
105
  : never;
@@ -47,6 +47,15 @@ describe("Simple CoList operations", async () => {
47
47
  ]);
48
48
  });
49
49
 
50
+ test("list with enum type", () => {
51
+ const List = co.list(z.enum(["a", "b", "c"]));
52
+ const list = List.create(["a", "b", "c"]);
53
+ expect(list.length).toBe(3);
54
+ expect(list[0]).toBe("a");
55
+ expect(list[1]).toBe("b");
56
+ expect(list[2]).toBe("c");
57
+ });
58
+
50
59
  test("Construction with an Account", () => {
51
60
  const list = TestList.create(["milk"], me);
52
61
 
@@ -0,0 +1,149 @@
1
+ import { assert, describe, expectTypeOf, test } from "vitest";
2
+ import { Group, co, z } from "../exports.js";
3
+ import { Account } from "../index.js";
4
+ import { Loaded } from "../internal.js";
5
+
6
+ describe("CoMap.Record", () => {
7
+ describe("init", () => {
8
+ test("create a Record with basic property access", () => {
9
+ const Person = co.record(z.string(), z.string());
10
+
11
+ const person = Person.create({
12
+ name: "John",
13
+ age: "20",
14
+ });
15
+
16
+ type ExpectedType = {
17
+ [key: string]: string;
18
+ };
19
+
20
+ function matches(value: ExpectedType) {
21
+ return value;
22
+ }
23
+
24
+ matches(person);
25
+ });
26
+
27
+ test("has the _owner property", () => {
28
+ const Person = co.record(z.string(), z.string());
29
+
30
+ const person = Person.create({ name: "John" }, Account.getMe());
31
+
32
+ expectTypeOf(person._owner).toEqualTypeOf<Account | Group>();
33
+ });
34
+
35
+ test("Record with reference", () => {
36
+ const Dog = co.map({
37
+ name: z.string(),
38
+ breed: z.string(),
39
+ });
40
+
41
+ const Person = co.record(z.string(), Dog);
42
+
43
+ const person = Person.create({
44
+ pet1: Dog.create({ name: "Rex", breed: "Labrador" }),
45
+ pet2: Dog.create({ name: "Fido", breed: "Poodle" }),
46
+ });
47
+
48
+ type ExpectedType = {
49
+ [key: string]: Loaded<typeof Dog>;
50
+ };
51
+
52
+ function matches(value: ExpectedType) {
53
+ return value;
54
+ }
55
+
56
+ matches(person);
57
+ });
58
+
59
+ test("Record with optional reference", () => {
60
+ const Dog = co.map({
61
+ name: z.string(),
62
+ breed: z.string(),
63
+ });
64
+
65
+ const Person = co.record(z.string(), Dog.optional());
66
+
67
+ const person = Person.create({
68
+ pet1: Dog.create({ name: "Rex", breed: "Labrador" }),
69
+ pet2: undefined,
70
+ });
71
+
72
+ type ExpectedType = {
73
+ [key: string]: Loaded<typeof Dog> | undefined;
74
+ };
75
+
76
+ function matches(value: ExpectedType) {
77
+ return value;
78
+ }
79
+
80
+ matches(person);
81
+ });
82
+ });
83
+
84
+ describe("Record resolution", () => {
85
+ test("loading a record with deep resolve", async () => {
86
+ const Dog = co.map({
87
+ name: z.string(),
88
+ breed: z.string(),
89
+ });
90
+
91
+ const Person = co.record(z.string(), Dog);
92
+
93
+ const person = Person.create({
94
+ pet1: Dog.create({ name: "Rex", breed: "Labrador" }),
95
+ pet2: Dog.create({ name: "Fido", breed: "Poodle" }),
96
+ });
97
+
98
+ const loadedPerson = await Person.load(person.id, {
99
+ resolve: {
100
+ $each: true,
101
+ },
102
+ });
103
+
104
+ type ExpectedType = {
105
+ [key: string]: Loaded<typeof Dog>;
106
+ } | null;
107
+
108
+ function matches(value: ExpectedType) {
109
+ return value;
110
+ }
111
+
112
+ matches(loadedPerson);
113
+ });
114
+
115
+ test("loading a record with $onError", async () => {
116
+ const Dog = co.map({
117
+ name: z.string(),
118
+ breed: z.string(),
119
+ });
120
+
121
+ const Person = co.record(z.string(), Dog);
122
+
123
+ const person = Person.create({
124
+ pet1: Dog.create({ name: "Rex", breed: "Labrador" }),
125
+ pet2: Dog.create({ name: "Fido", breed: "Poodle" }),
126
+ });
127
+
128
+ const loadedPerson = await Person.load(person.id, {
129
+ resolve: {
130
+ $each: { $onError: null },
131
+ },
132
+ });
133
+
134
+ type ExpectedType = {
135
+ [key: string]:
136
+ | (Loaded<typeof Dog> & {
137
+ $onError: never;
138
+ })
139
+ | null;
140
+ } | null;
141
+
142
+ function matches(value: ExpectedType) {
143
+ return value;
144
+ }
145
+
146
+ matches(loadedPerson);
147
+ });
148
+ });
149
+ });
@@ -41,6 +41,17 @@ describe("CoMap.Record", async () => {
41
41
  expect(Object.keys(person)).toEqual(["name", "age"]);
42
42
  });
43
43
 
44
+ test("create a Record with enum value", () => {
45
+ const Person = co.record(z.string(), z.enum(["a", "b", "c"]));
46
+
47
+ const person = Person.create({
48
+ age: "a",
49
+ });
50
+
51
+ expect(person.age).toEqual("a");
52
+ expect(Object.keys(person)).toEqual(["age"]);
53
+ });
54
+
44
55
  test("property existence", () => {
45
56
  const Person = co.record(z.string(), z.string());
46
57
 
@@ -0,0 +1,348 @@
1
+ import { assert, describe, expectTypeOf, test } from "vitest";
2
+ import { Group, co, z } from "../exports.js";
3
+ import { Account } from "../index.js";
4
+ import { CoListSchema, Loaded } from "../internal.js";
5
+
6
+ describe("CoMap", async () => {
7
+ describe("init", () => {
8
+ test("create a CoMap with basic property access", () => {
9
+ const Person = co.map({
10
+ color: z.string(),
11
+ _height: z.number(),
12
+ birthday: z.date(),
13
+ name: z.string(),
14
+ enum: z.enum(["a", "b", "c"]),
15
+ enumMap: z.enum({ a: 1, b: 2, c: 3 }),
16
+ optionalDate: z.date().optional(),
17
+ });
18
+
19
+ const birthday = new Date("1989-11-27");
20
+
21
+ const john = Person.create({
22
+ color: "red",
23
+ _height: 10,
24
+ birthday,
25
+ enum: "a",
26
+ enumMap: 1,
27
+ name: "John",
28
+ });
29
+
30
+ type ExpectedType = {
31
+ color: string;
32
+ _height: number;
33
+ birthday: Date;
34
+ name: string;
35
+ enum: "a" | "b" | "c";
36
+ enumMap: 1 | 2 | 3;
37
+ optionalDate: Date | undefined;
38
+ };
39
+
40
+ function matches(value: ExpectedType) {
41
+ return value;
42
+ }
43
+
44
+ matches(john);
45
+ });
46
+
47
+ test("has the _owner property", () => {
48
+ const Person = co.map({
49
+ name: z.string(),
50
+ });
51
+
52
+ const john = Person.create({ name: "John" }, Account.getMe());
53
+
54
+ expectTypeOf(john._owner).toEqualTypeOf<Account | Group>();
55
+ });
56
+
57
+ test("CoMap with reference", () => {
58
+ const Dog = co.map({
59
+ name: z.string(),
60
+ breed: z.string(),
61
+ });
62
+
63
+ const Person = co.map({
64
+ name: z.string(),
65
+ age: z.number(),
66
+ dog: Dog,
67
+ });
68
+
69
+ const person = Person.create({
70
+ name: "John",
71
+ age: 20,
72
+ dog: Dog.create({ name: "Rex", breed: "Labrador" }),
73
+ });
74
+
75
+ type ExpectedType = {
76
+ name: string;
77
+ age: number;
78
+ dog: Loaded<typeof Dog>;
79
+ };
80
+
81
+ function matches(value: ExpectedType) {
82
+ return value;
83
+ }
84
+
85
+ matches(person);
86
+ });
87
+
88
+ test("CoMap with optional reference", () => {
89
+ const Dog = co.map({
90
+ name: z.string(),
91
+ breed: z.string(),
92
+ });
93
+
94
+ const Person = co.map({
95
+ name: z.string(),
96
+ age: z.number(),
97
+ dog: Dog.optional(),
98
+ });
99
+
100
+ const person = Person.create({
101
+ name: "John",
102
+ age: 20,
103
+ dog: Dog.create({ name: "Rex", breed: "Labrador" }),
104
+ });
105
+
106
+ type ExpectedType = {
107
+ name: string;
108
+ age: number;
109
+ dog: Loaded<typeof Dog> | undefined;
110
+ };
111
+
112
+ function matches(value: ExpectedType) {
113
+ return value;
114
+ }
115
+
116
+ matches(person);
117
+ });
118
+
119
+ test("CoMap with self reference", () => {
120
+ const Person = co.map({
121
+ name: z.string(),
122
+ age: z.number(),
123
+ // TODO: would be nice if this didn't need a type annotation
124
+ get friend(): z.ZodOptional<typeof Person> {
125
+ return z.optional(Person);
126
+ },
127
+ });
128
+
129
+ const person = Person.create({
130
+ name: "John",
131
+ age: 20,
132
+ friend: Person.create({ name: "Jane", age: 21 }),
133
+ });
134
+
135
+ type ExpectedType = {
136
+ name: string;
137
+ age: number;
138
+ friend: Loaded<typeof Person> | undefined;
139
+ };
140
+
141
+ function matches(value: ExpectedType) {
142
+ return value;
143
+ }
144
+
145
+ matches(person);
146
+ });
147
+
148
+ test("should disallow extra properties", () => {
149
+ const Person = co.map({
150
+ name: z.string(),
151
+ age: z.number(),
152
+ });
153
+
154
+ // @ts-expect-error - x is not a valid property
155
+ Person.create({ name: "John", age: 30, xtra: 1 });
156
+ });
157
+ });
158
+
159
+ describe("Mutation", () => {
160
+ test("update a reference", () => {
161
+ const Dog = co.map({
162
+ name: z.string(),
163
+ });
164
+
165
+ const Person = co.map({
166
+ name: z.string(),
167
+ age: z.number(),
168
+ dog: Dog,
169
+ });
170
+
171
+ const john = Person.create({
172
+ name: "John",
173
+ age: 20,
174
+ dog: Dog.create({ name: "Rex" }),
175
+ });
176
+
177
+ john.dog = Dog.create({ name: "Fido" });
178
+ });
179
+
180
+ test("update a reference on a loaded value", () => {
181
+ const Dog = co.map({
182
+ name: z.string(),
183
+ get siblings(): CoListSchema<typeof Dog> {
184
+ return co.list(Dog);
185
+ },
186
+ });
187
+
188
+ const Person = co.map({
189
+ name: z.string(),
190
+ age: z.number(),
191
+ dog: Dog,
192
+ });
193
+
194
+ const john = Person.create({
195
+ name: "John",
196
+ age: 20,
197
+ dog: Dog.create({ name: "Rex", siblings: co.list(Dog).create([]) }),
198
+ }) as Loaded<typeof Person, { dog: { siblings: true } }>;
199
+
200
+ john.dog = Dog.create({
201
+ name: "Fido",
202
+ siblings: co.list(Dog).create([]),
203
+ });
204
+ });
205
+ });
206
+
207
+ test("Enum of maps", () => {
208
+ const ChildA = co.map({
209
+ type: z.literal("a"),
210
+ value: z.number(),
211
+ });
212
+
213
+ const ChildB = co.map({
214
+ type: z.literal("b"),
215
+ value: z.string(),
216
+ });
217
+
218
+ const MapWithEnumOfMaps = co.map({
219
+ name: z.string(),
220
+ child: z.discriminatedUnion([ChildA, ChildB]),
221
+ });
222
+
223
+ const mapWithEnum = MapWithEnumOfMaps.create({
224
+ name: "enum",
225
+ child: ChildA.create({
226
+ type: "a",
227
+ value: 5,
228
+ }),
229
+ });
230
+
231
+ type ExpectedType = {
232
+ name: string;
233
+ child: Loaded<typeof ChildA> | Loaded<typeof ChildB>;
234
+ };
235
+
236
+ function matches(value: ExpectedType) {
237
+ return value;
238
+ }
239
+
240
+ matches(mapWithEnum);
241
+
242
+ function matchesNarrowed(value: Loaded<typeof ChildA>) {
243
+ return value;
244
+ }
245
+
246
+ if (mapWithEnum.child.type === "a") {
247
+ matchesNarrowed(mapWithEnum.child);
248
+ }
249
+ });
250
+ });
251
+
252
+ describe("CoMap resolution", async () => {
253
+ test("partial loading a map with deep resolve", async () => {
254
+ const Dog = co.map({
255
+ name: z.string(),
256
+ breed: z.string(),
257
+ });
258
+
259
+ const Person = co.map({
260
+ name: z.string(),
261
+ age: z.number(),
262
+ dog1: Dog,
263
+ dog2: Dog,
264
+ });
265
+
266
+ const person = Person.create({
267
+ name: "John",
268
+ age: 20,
269
+ dog1: Dog.create({ name: "Rex", breed: "Labrador" }),
270
+ dog2: Dog.create({ name: "Fido", breed: "Poodle" }),
271
+ });
272
+
273
+ const loadedPerson = await Person.load(person.id, {
274
+ resolve: {
275
+ dog1: true,
276
+ },
277
+ });
278
+
279
+ type ExpectedType = {
280
+ name: string;
281
+ age: number;
282
+ dog1: Loaded<typeof Dog>;
283
+ dog2: Loaded<typeof Dog> | null;
284
+ } | null;
285
+
286
+ function matches(value: ExpectedType) {
287
+ return value;
288
+ }
289
+
290
+ matches(loadedPerson);
291
+
292
+ assert(loadedPerson);
293
+ expectTypeOf<typeof loadedPerson.dog1.name>().toEqualTypeOf<string>();
294
+ expectTypeOf<typeof loadedPerson.dog2>().toEqualTypeOf<Loaded<
295
+ typeof Dog
296
+ > | null>();
297
+ });
298
+
299
+ test("loading a map with deep resolve and $onError", async () => {
300
+ const Dog = co.map({
301
+ name: z.string(),
302
+ breed: z.string(),
303
+ });
304
+
305
+ const Person = co.map({
306
+ name: z.string(),
307
+ age: z.number(),
308
+ dog1: Dog,
309
+ dog2: Dog,
310
+ });
311
+
312
+ const person = Person.create({
313
+ name: "John",
314
+ age: 20,
315
+ dog1: Dog.create({ name: "Rex", breed: "Labrador" }),
316
+ dog2: Dog.create({ name: "Fido", breed: "Poodle" }),
317
+ });
318
+
319
+ const loadedPerson = await Person.load(person.id, {
320
+ resolve: {
321
+ dog1: true,
322
+ dog2: { $onError: null },
323
+ },
324
+ });
325
+
326
+ type ExpectedType = {
327
+ name: string;
328
+ age: number;
329
+ dog1: Loaded<typeof Dog>;
330
+ dog2: Loaded<typeof Dog> | null;
331
+ } | null;
332
+
333
+ function matches(value: ExpectedType) {
334
+ return value;
335
+ }
336
+
337
+ matches(loadedPerson);
338
+
339
+ assert(loadedPerson);
340
+ expectTypeOf<typeof loadedPerson.dog1.name>().toEqualTypeOf<string>();
341
+ expectTypeOf<typeof loadedPerson.dog2>().toEqualTypeOf<
342
+ | (Loaded<typeof Dog> & {
343
+ $onError: never; // TODO: Clean the $onError from the type
344
+ })
345
+ | null
346
+ >();
347
+ });
348
+ });