Skip to content

Commit 9e27695

Browse files
committed
Fix loose tysts
1 parent 5e0993a commit 9e27695

File tree

4 files changed

+48
-48
lines changed

4 files changed

+48
-48
lines changed

Diff for: src/tysts/batch.ts

+18-18
Original file line numberDiff line numberDiff line change
@@ -160,17 +160,17 @@ async function tysts() {
160160

161161
// Enforce required fields
162162

163-
// @tysts-start: strict
164163
// @ts-expect-error - name is required
165164
$.users.update(db.users.id("user-id"), ($) => ({
166165
name: $.remove(),
167166
}));
168-
// @tysts-end: strict
169167

168+
// @tysts-start: strict - without exactOptionalPropertyTypes we can't prevent undefined from being set
170169
// @ts-expect-error - name is required
171170
$.users.update(db.users.id("sasha"), {
172171
name: undefined,
173172
});
173+
// @tysts-end: strict
174174

175175
// Works with nested fields
176176

@@ -189,13 +189,13 @@ async function tysts() {
189189
}));
190190

191191
$.accounts.update(db.accounts.id("sasha"), ($) =>
192-
$.field("nested1Optional").set($.remove()),
192+
$.field("nested1Optional").set($.remove())
193193
);
194194

195195
// Single field update
196196

197197
$.accounts.update(db.accounts.id("sasha"), ($) =>
198-
$.field("name").set("Alexander"),
198+
$.field("name").set("Alexander")
199199
);
200200

201201
// Multiple fields update
@@ -208,68 +208,68 @@ async function tysts() {
208208
// Nested fields
209209

210210
$.accounts.update(db.accounts.id("sasha"), ($) =>
211-
$.field("contacts", "phone").set("+65xxxxxxxx"),
211+
$.field("contacts", "phone").set("+65xxxxxxxx")
212212
);
213213

214214
$.accounts.update(db.accounts.id("sasha"), ($) =>
215215
$.field("contacts", "phone")
216216
// @ts-expect-error - wrong type
217-
.set(6500000000),
217+
.set(6500000000)
218218
);
219219

220220
$.accounts.update(db.accounts.id("sasha"), ($) =>
221221
// @ts-expect-error - can't update because emergencyContacts can be undefined
222-
$.field("emergencyContacts", "phone").set("+65xxxxxxxx"),
222+
$.field("emergencyContacts", "phone").set("+65xxxxxxxx")
223223
);
224224

225225
$.accounts.update(db.accounts.id("sasha"), ($) =>
226226
// @ts-expect-error - emergencyContacts must have name and phone
227227
$.field("emergencyContacts").set({
228228
name: "Sasha",
229-
}),
229+
})
230230
);
231231

232232
$.accounts.update(db.accounts.id("sasha"), ($) =>
233233
$.field("emergencyContacts").set({
234234
name: "Sasha",
235235
phone: "+65xxxxxxxx",
236-
}),
236+
})
237237
);
238238

239239
// Deeply nested field corner cases
240240

241241
$.accounts.update(db.accounts.id("sasha"), ($) =>
242242
$.field("nested1Required", "nested12Required").set({
243243
hello: "Hello!",
244-
}),
244+
})
245245
);
246246

247247
$.accounts.update(db.accounts.id("sasha"), ($) =>
248248
$.field("nested1Required", "nested12Required").set({
249249
hello: "Hello!",
250250
world: "World!",
251-
}),
251+
})
252252
);
253253

254254
$.accounts.update(db.accounts.id("sasha"), ($) =>
255255
// @ts-expect-error - can't update without hello
256256
$.field("nested1Required", "nested12Required").set({
257257
world: "World!",
258-
}),
258+
})
259259
);
260260

261261
$.accounts.update(db.accounts.id("sasha"), ($) =>
262262
// @ts-expect-error - should not update because requried12 on nested1Optional is required
263263
$.field("nested1Optional", "nested12Optional").set({
264264
hello: "Hello!",
265-
}),
265+
})
266266
);
267267

268268
$.accounts.update(db.accounts.id("sasha"), ($) =>
269269
// @ts-expect-error - nested1Optional has required12, so can't update
270270
$.field("nested1Optional", "nested12Optional").set({
271271
world: "World!",
272-
}),
272+
})
273273
);
274274

275275
// Updating variable collection
@@ -289,22 +289,22 @@ async function tysts() {
289289

290290
$.content.update(contentId, ($) =>
291291
// @ts-expect-error - can't update non-shared variable model fields
292-
$.field("type").set("text"),
292+
$.field("type").set("text")
293293
);
294294

295295
// Nested fields with records
296296

297297
const postId = Math.random().toString();
298298

299299
$.accounts.update(db.accounts.id("sasha"), ($) =>
300-
$.field("counters").set({ [postId]: { likes: 5 } }),
300+
$.field("counters").set({ [postId]: { likes: 5 } })
301301
);
302302

303303
$.accounts.update(db.accounts.id("sasha"), ($) =>
304-
$.field("counters", postId).set({ likes: 5 }),
304+
$.field("counters", postId).set({ likes: 5 })
305305
);
306306

307307
$.accounts.update(db.accounts.id("sasha"), ($) =>
308-
$.field("counters", postId, "likes").set($.increment(1)),
308+
$.field("counters", postId, "likes").set($.increment(1))
309309
);
310310
}

Diff for: src/tysts/loose/batch.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,9 @@ async function tysts() {
156156
// Enforce required fields
157157

158158
// @ts-expect-error - name is required
159-
$.users.update(db.users.id("sasha"), {
160-
name: undefined,
161-
});
159+
$.users.update(db.users.id("user-id"), ($) => ({
160+
name: $.remove(),
161+
}));
162162

163163
// Works with nested fields
164164

Diff for: src/tysts/loose/transaction.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,8 @@ async function tysts() {
266266
// Enforce required fields
267267

268268
// @ts-expect-error - name is required
269-
$.db.users.update(db.users.id("sasha"), ($) => ({
270-
name: undefined,
269+
$.result.update(db.users.id("sasha"), ($) => ({
270+
name: $.remove(),
271271
}));
272272

273273
// Works with nested fields

Diff for: src/tysts/transaction.ts

+25-25
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ async function tysts() {
144144
Promise.all([
145145
$.db.users.get(db.users.id("asd")),
146146
$.db.posts.get(db.posts.id("qwe")),
147-
]),
147+
])
148148
)
149149
.write(($) => {
150150
$.result[0]?.data.contacts;
@@ -193,7 +193,7 @@ async function tysts() {
193193
Promise.all([
194194
$.db.users.get(db.users.id("asd")),
195195
$.db.posts.get(db.posts.id("qwe")),
196-
]),
196+
])
197197
)
198198
.write(($) => {
199199
$.result[0]?.data.birthdate;
@@ -270,17 +270,17 @@ async function tysts() {
270270

271271
// Enforce required fields
272272

273-
// @tysts-start: strict
274273
// @ts-expect-error - name is required
275274
$.result.update(db.users.id("sasha"), ($) => ({
276275
name: $.remove(),
277276
}));
278-
// @tysts-end: strict
279277

278+
// @tysts-start: strict
280279
// @ts-expect-error - name is required
281280
$.db.users.update(db.users.id("sasha"), ($) => ({
282281
name: undefined,
283282
}));
283+
// @tysts-end: strict
284284

285285
// Works with nested fields
286286

@@ -299,13 +299,13 @@ async function tysts() {
299299
}));
300300

301301
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
302-
$.field("nested1Optional").set($.remove()),
302+
$.field("nested1Optional").set($.remove())
303303
);
304304

305305
// Single field update
306306

307307
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
308-
$.field("name").set("Alexander"),
308+
$.field("name").set("Alexander")
309309
);
310310

311311
// Multiple fields update
@@ -318,83 +318,83 @@ async function tysts() {
318318
// Nested fields
319319

320320
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
321-
$.field("contacts", "phone").set("+65xxxxxxxx"),
321+
$.field("contacts", "phone").set("+65xxxxxxxx")
322322
);
323323

324324
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
325325
// @ts-expect-error - wrong type
326-
$.field("contacts", "phone").set(6500000000),
326+
$.field("contacts", "phone").set(6500000000)
327327
);
328328

329329
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
330330
// @ts-expect-error - can't update because emergencyContacts can be undefined
331-
$.field("emergencyContacts", "phone").set("+65xxxxxxxx"),
331+
$.field("emergencyContacts", "phone").set("+65xxxxxxxx")
332332
);
333333

334334
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
335335
// @ts-expect-error - emergencyContacts must have name and phone
336336
$.field("emergencyContacts").set({
337337
name: "Sasha",
338-
}),
338+
})
339339
);
340340

341341
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
342342
$.field("emergencyContacts").set({
343343
name: "Sasha",
344344
phone: "+65xxxxxxxx",
345-
}),
345+
})
346346
);
347347

348348
// Deeply nested field corner cases
349349

350350
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
351351
$.field("nested1Required", "nested12Required").set({
352352
hello: "Hello!",
353-
}),
353+
})
354354
);
355355

356356
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
357357
$.field("nested1Required", "nested12Required").set({
358358
hello: "Hello!",
359359
world: "World!",
360-
}),
360+
})
361361
);
362362

363363
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
364364
// @ts-expect-error - can't update without hello
365365
$.field("nested1Required", "nested12Required").set({
366366
world: "World!",
367-
}),
367+
})
368368
);
369369

370370
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
371371
// @ts-expect-error - should not update because requried12 on nested1Optional is required
372372
$.field("nested1Optional", "nested12Optional").set({
373373
hello: "Hello!",
374-
}),
374+
})
375375
);
376376

377377
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
378378
// @ts-expect-error - nested1Optional has required12, so can't update
379379
$.field("nested1Optional", "nested12Optional").set({
380380
world: "World!",
381-
}),
381+
})
382382
);
383383

384384
// Nested fields with records
385385

386386
const postId = "post-id";
387387

388388
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
389-
$.field("counters").set({ [postId]: { likes: 5 } }),
389+
$.field("counters").set({ [postId]: { likes: 5 } })
390390
);
391391

392392
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
393-
$.field("counters", postId).set({ likes: 5 }),
393+
$.field("counters", postId).set({ likes: 5 })
394394
);
395395

396396
$.db.accounts.update(db.accounts.id("sasha"), ($) =>
397-
$.field("counters", postId, "likes").set($.increment(1)),
397+
$.field("counters", postId, "likes").set($.increment(1))
398398
);
399399
});
400400

@@ -422,13 +422,13 @@ async function tysts() {
422422

423423
$.result.update(($) =>
424424
// @ts-expect-error - can't update non-shared variable model fields
425-
$.field("type").set("text"),
425+
$.field("type").set("text")
426426
);
427427

428428
// Narrowing
429429

430430
const textContent = $.result.narrow<TextContent>(
431-
(data) => data.type === "text" && data,
431+
(data) => data.type === "text" && data
432432
);
433433

434434
if (textContent) {
@@ -437,7 +437,7 @@ async function tysts() {
437437

438438
textContent.update(($) =>
439439
// @ts-expect-error - can't update - we narrowed down to text type
440-
$.field("src").set("Nope"),
440+
$.field("src").set("Nope")
441441
);
442442

443443
textContent.update({ text: "Yup" });
@@ -451,7 +451,7 @@ async function tysts() {
451451

452452
textContent.ref.update(($) =>
453453
// @ts-expect-error - can't update - we narrowed down to text type
454-
$.field("src").set("Nope"),
454+
$.field("src").set("Nope")
455455
);
456456

457457
textContent.ref.update({ text: "Yup" });
@@ -474,7 +474,7 @@ async function tysts() {
474474

475475
$.result.ref.update(($) =>
476476
// @ts-expect-error - can't update non-shared variable model fields
477-
$.field("type").set("text"),
477+
$.field("type").set("text")
478478
);
479479

480480
// ...via collection:
@@ -492,7 +492,7 @@ async function tysts() {
492492

493493
$.db.content.update(contentId, ($) =>
494494
// @ts-expect-error - can't update non-shared variable model fields
495-
$.field("type").set("text"),
495+
$.field("type").set("text")
496496
);
497497
});
498498

0 commit comments

Comments
 (0)