@livestore/livestore 0.0.0-snapshot-2da03812fc739d068b0e57f612c11fe4c4b28b0c → 0.0.0-snapshot-45e7be0768e111270f54796993520a5cbfc2e41c

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.
@@ -54,7 +54,7 @@ Vitest.describe('otel', () => {
54
54
  queriedTables: new Set(['todos']),
55
55
  });
56
56
  expect(store.query(query$)).toMatchInlineSnapshot('[]');
57
- store.mutate(rawSqlMutation({ sql: sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }));
57
+ store.commit(rawSqlMutation({ sql: sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }));
58
58
  expect(store.query(query$)).toMatchInlineSnapshot(`
59
59
  [
60
60
  {
@@ -84,7 +84,7 @@ Vitest.describe('otel', () => {
84
84
  }
85
85
  `);
86
86
  expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot();
87
- store.mutate(rawSqlMutation({ sql: sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }));
87
+ store.commit(rawSqlMutation({ sql: sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }));
88
88
  expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot();
89
89
  expect(store.query(query$)).toMatchInlineSnapshot(`
90
90
  {
@@ -109,7 +109,7 @@ Vitest.describe('otel', () => {
109
109
  "text": "",
110
110
  }
111
111
  `);
112
- store.mutate(rawSqlMutation({ sql: sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }));
112
+ store.commit(rawSqlMutation({ sql: sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }));
113
113
  expect(store.query(query$)).toMatchInlineSnapshot(`
114
114
  {
115
115
  "completed": false,
@@ -52,7 +52,7 @@ export type DebugThunkInfo<T extends string = string> = {
52
52
  durationMs: number;
53
53
  };
54
54
  export type DebugRefreshReasonBase =
55
- /** Usually in response to some `mutate` calls with `skipRefresh: true` */
55
+ /** Usually in response to some `commit` calls with `skipRefresh: true` */
56
56
  {
57
57
  _tag: 'runDeferredEffects';
58
58
  originalRefreshReasons?: ReadonlyArray<DebugRefreshReasonBase>;
@@ -26,9 +26,9 @@ export const makeExecBeforeFirstRun = ({ id, insertValues, table, otelContext: o
26
26
  if (DbSchema.tableHasDerivedMutations(table) === false) {
27
27
  return shouldNeverHappen(`Cannot insert row for table "${table.sqliteDef.name}" which does not have 'deriveMutations: true' set`);
28
28
  }
29
- // It's important that we only mutate and don't refresh here, as this function might be called during a render
29
+ // It's important that we only commit and don't refresh here, as this function might be called during a render
30
30
  // and otherwise we might end up in a "reactive loop"
31
- store.mutate({ otelContext, skipRefresh: true, label: `rowQuery:${table.sqliteDef.name}:${idVal}` }, table.insert({ id, ...insertValues }));
31
+ store.commit({ otelContext, skipRefresh: true, label: `rowQuery:${table.sqliteDef.name}:${idVal}` }, table.insert({ id, ...insertValues }));
32
32
  }
33
33
  };
34
34
  //# sourceMappingURL=row-query-utils.js.map
@@ -38,7 +38,7 @@ export type StoreOptions<TSchema extends LiveStoreSchema = LiveStoreSchema, TCon
38
38
  };
39
39
  };
40
40
  export type RefreshReason = DebugRefreshReasonBase | {
41
- _tag: 'mutate';
41
+ _tag: 'commit';
42
42
  /** The mutations that were applied */
43
43
  mutations: ReadonlyArray<MutationEvent.AnyDecoded | MutationEvent.PartialAnyDecoded>;
44
44
  /** The tables that were written to by the event */
@@ -87,7 +87,58 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
87
87
  debugRefreshReason?: RefreshReason;
88
88
  }) => TResult;
89
89
  setRef: <T>(refDef: ILiveQueryRefDef<T>, value: T) => void;
90
- mutate: {
90
+ /**
91
+ * Commit a list of mutations to the store which will immediately update the local database
92
+ * and sync the mutations across other clients (similar to a `git commit`).
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * store.commit(mutations.todoCreated({ id: nanoid(), text: 'Make coffee' }))
97
+ * ```
98
+ *
99
+ * You can call `commit` with multiple mutations to apply them in a single database transaction.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const todoId = nanoid()
104
+ * store.commit(
105
+ * mutations.todoCreated({ id: todoId, text: 'Make coffee' }),
106
+ * mutations.todoCompleted({ id: todoId }))
107
+ * ```
108
+ *
109
+ * For more advanced transaction scenarios, you can pass a synchronous function to `commit` which will receive a callback
110
+ * to which you can pass multiple mutations to be committed in the same database transaction.
111
+ * Under the hood this will simply collect all mutations and apply them in a single database transaction.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * store.commit((commit) => {
116
+ * const todoId = nanoid()
117
+ * if (Math.random() > 0.5) {
118
+ * commit(mutations.todoCreated({ id: todoId, text: 'Make coffee' }))
119
+ * } else {
120
+ * commit(mutations.todoCompleted({ id: todoId }))
121
+ * }
122
+ * })
123
+ * ```
124
+ *
125
+ * When committing a large batch of mutations, you can also skip the database refresh to improve performance
126
+ * and call `store.manualRefresh()` after all mutations have been committed.
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * const todos = [
131
+ * { id: nanoid(), text: 'Make coffee' },
132
+ * { id: nanoid(), text: 'Buy groceries' },
133
+ * // ... 1000 more todos
134
+ * ]
135
+ * for (const todo of todos) {
136
+ * store.commit({ skipRefresh: true }, mutations.todoCreated({ id: todo.id, text: todo.text }))
137
+ * }
138
+ * store.manualRefresh()
139
+ * ```
140
+ */
141
+ commit: {
91
142
  <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg): void;
92
143
  (txn: <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg) => void): void;
93
144
  <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(options: StoreMutateOptions, ...list: TMutationArg): void;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
@@ -272,8 +272,59 @@ export class Store extends Inspectable.Class {
272
272
  ref.value.set(value);
273
273
  ref.deref();
274
274
  };
275
- // #region mutate
276
- mutate = (firstMutationOrTxnFnOrOptions, ...restMutations) => {
275
+ // #region commit
276
+ /**
277
+ * Commit a list of mutations to the store which will immediately update the local database
278
+ * and sync the mutations across other clients (similar to a `git commit`).
279
+ *
280
+ * @example
281
+ * ```ts
282
+ * store.commit(mutations.todoCreated({ id: nanoid(), text: 'Make coffee' }))
283
+ * ```
284
+ *
285
+ * You can call `commit` with multiple mutations to apply them in a single database transaction.
286
+ *
287
+ * @example
288
+ * ```ts
289
+ * const todoId = nanoid()
290
+ * store.commit(
291
+ * mutations.todoCreated({ id: todoId, text: 'Make coffee' }),
292
+ * mutations.todoCompleted({ id: todoId }))
293
+ * ```
294
+ *
295
+ * For more advanced transaction scenarios, you can pass a synchronous function to `commit` which will receive a callback
296
+ * to which you can pass multiple mutations to be committed in the same database transaction.
297
+ * Under the hood this will simply collect all mutations and apply them in a single database transaction.
298
+ *
299
+ * @example
300
+ * ```ts
301
+ * store.commit((commit) => {
302
+ * const todoId = nanoid()
303
+ * if (Math.random() > 0.5) {
304
+ * commit(mutations.todoCreated({ id: todoId, text: 'Make coffee' }))
305
+ * } else {
306
+ * commit(mutations.todoCompleted({ id: todoId }))
307
+ * }
308
+ * })
309
+ * ```
310
+ *
311
+ * When committing a large batch of mutations, you can also skip the database refresh to improve performance
312
+ * and call `store.manualRefresh()` after all mutations have been committed.
313
+ *
314
+ * @example
315
+ * ```ts
316
+ * const todos = [
317
+ * { id: nanoid(), text: 'Make coffee' },
318
+ * { id: nanoid(), text: 'Buy groceries' },
319
+ * // ... 1000 more todos
320
+ * ]
321
+ * for (const todo of todos) {
322
+ * store.commit({ skipRefresh: true }, mutations.todoCreated({ id: todo.id, text: todo.text }))
323
+ * }
324
+ * store.manualRefresh()
325
+ * ```
326
+ */
327
+ commit = (firstMutationOrTxnFnOrOptions, ...restMutations) => {
277
328
  const { mutationsEvents, options } = this.getMutateArgs(firstMutationOrTxnFnOrOptions, restMutations);
278
329
  for (const mutationEvent of mutationsEvents) {
279
330
  replaceSessionIdSymbol(mutationEvent.args, this.clientSession.sessionId);
@@ -282,16 +333,16 @@ export class Store extends Inspectable.Class {
282
333
  return;
283
334
  const skipRefresh = options?.skipRefresh ?? false;
284
335
  const mutationsSpan = otel.trace.getSpan(this.otel.mutationsSpanContext);
285
- mutationsSpan.addEvent('mutate');
286
- // console.group('LiveStore.mutate', { skipRefresh, wasSyncMessage, label })
336
+ mutationsSpan.addEvent('commit');
337
+ // console.group('LiveStore.commit', { skipRefresh, wasSyncMessage, label })
287
338
  // mutationsEvents.forEach((_) => console.debug(_.mutation, _.id, _.args))
288
339
  // console.groupEnd()
289
340
  let durationMs;
290
- return this.otel.tracer.startActiveSpan('LiveStore:mutate', {
341
+ return this.otel.tracer.startActiveSpan('LiveStore:commit', {
291
342
  attributes: {
292
343
  'livestore.mutationEventsCount': mutationsEvents.length,
293
344
  'livestore.mutationEventTags': mutationsEvents.map((_) => _.mutation),
294
- 'livestore.mutateLabel': options?.label,
345
+ 'livestore.commitLabel': options?.label,
295
346
  },
296
347
  links: options?.spanLinks,
297
348
  }, options?.otelContext ?? this.otel.mutationsSpanContext, (span) => {
@@ -324,7 +375,7 @@ export class Store extends Inspectable.Class {
324
375
  tablesToUpdate.push([tableRef, null]);
325
376
  }
326
377
  const debugRefreshReason = {
327
- _tag: 'mutate',
378
+ _tag: 'commit',
328
379
  mutations: mutationsEvents,
329
380
  writeTables: Array.from(writeTables),
330
381
  };
@@ -343,7 +394,7 @@ export class Store extends Inspectable.Class {
343
394
  return { durationMs };
344
395
  });
345
396
  };
346
- // #endregion mutate
397
+ // #endregion commit
347
398
  /**
348
399
  * This can be used in combination with `skipRefresh` when applying mutations.
349
400
  * We might need a better solution for this. Let's see.
@@ -417,7 +468,7 @@ export class Store extends Inspectable.Class {
417
468
  mutationsEvents = restMutations;
418
469
  }
419
470
  else if (firstMutationOrTxnFnOrOptions === undefined) {
420
- // When `mutate` is called with no arguments (which sometimes happens when dynamically filtering mutations)
471
+ // When `commit` is called with no arguments (which sometimes happens when dynamically filtering mutations)
421
472
  mutationsEvents = [];
422
473
  }
423
474
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/livestore",
3
- "version": "0.0.0-snapshot-2da03812fc739d068b0e57f612c11fe4c4b28b0c",
3
+ "version": "0.0.0-snapshot-45e7be0768e111270f54796993520a5cbfc2e41c",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@opentelemetry/api": "1.9.0",
40
- "@livestore/common": "0.0.0-snapshot-2da03812fc739d068b0e57f612c11fe4c4b28b0c",
41
- "@livestore/utils": "0.0.0-snapshot-2da03812fc739d068b0e57f612c11fe4c4b28b0c"
40
+ "@livestore/utils": "0.0.0-snapshot-45e7be0768e111270f54796993520a5cbfc2e41c",
41
+ "@livestore/common": "0.0.0-snapshot-45e7be0768e111270f54796993520a5cbfc2e41c"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@opentelemetry/sdk-trace-base": "^1.30.1",
@@ -46,7 +46,7 @@
46
46
  "typescript": "^5.8.2",
47
47
  "vite": "^6.2.1",
48
48
  "vitest": "^3.0.8",
49
- "@livestore/adapter-web": "0.0.0-snapshot-2da03812fc739d068b0e57f612c11fe4c4b28b0c"
49
+ "@livestore/adapter-web": "0.0.0-snapshot-45e7be0768e111270f54796993520a5cbfc2e41c"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
@@ -35,7 +35,7 @@ exports[`otel > otel 3`] = `
35
35
  "_name": "LiveStore:mutations",
36
36
  "children": [
37
37
  {
38
- "_name": "LiveStore:mutate",
38
+ "_name": "LiveStore:commit",
39
39
  "attributes": {
40
40
  "livestore.mutationEventTags": [
41
41
  "livestore.RawSql",
@@ -303,7 +303,7 @@ exports[`otel > with thunks 7`] = `
303
303
  "_name": "LiveStore:mutations",
304
304
  "children": [
305
305
  {
306
- "_name": "LiveStore:mutate",
306
+ "_name": "LiveStore:commit",
307
307
  "attributes": {
308
308
  "livestore.mutationEventTags": [
309
309
  "livestore.RawSql",
@@ -405,7 +405,7 @@ exports[`otel > with thunks with query builder and without labels 3`] = `
405
405
  "_name": "LiveStore:mutations",
406
406
  "children": [
407
407
  {
408
- "_name": "LiveStore:mutate",
408
+ "_name": "LiveStore:commit",
409
409
  "attributes": {
410
410
  "livestore.mutationEventTags": [
411
411
  "livestore.RawSql",
@@ -69,7 +69,7 @@ Vitest.describe('otel', () => {
69
69
  })
70
70
  expect(store.query(query$)).toMatchInlineSnapshot('[]')
71
71
 
72
- store.mutate(rawSqlMutation({ sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }))
72
+ store.commit(rawSqlMutation({ sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }))
73
73
 
74
74
  expect(store.query(query$)).toMatchInlineSnapshot(`
75
75
  [
@@ -117,7 +117,7 @@ Vitest.describe('otel', () => {
117
117
 
118
118
  expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
119
119
 
120
- store.mutate(rawSqlMutation({ sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }))
120
+ store.commit(rawSqlMutation({ sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }))
121
121
 
122
122
  expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
123
123
 
@@ -157,7 +157,7 @@ Vitest.describe('otel', () => {
157
157
  }
158
158
  `)
159
159
 
160
- store.mutate(rawSqlMutation({ sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }))
160
+ store.commit(rawSqlMutation({ sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)` }))
161
161
 
162
162
  expect(store.query(query$)).toMatchInlineSnapshot(`
163
163
  {
package/src/reactive.ts CHANGED
@@ -102,7 +102,7 @@ export type DebugThunkInfo<T extends string = string> = {
102
102
  }
103
103
 
104
104
  export type DebugRefreshReasonBase =
105
- /** Usually in response to some `mutate` calls with `skipRefresh: true` */
105
+ /** Usually in response to some `commit` calls with `skipRefresh: true` */
106
106
  | {
107
107
  _tag: 'runDeferredEffects'
108
108
  originalRefreshReasons?: ReadonlyArray<DebugRefreshReasonBase>
@@ -66,9 +66,9 @@ export const makeExecBeforeFirstRun =
66
66
  )
67
67
  }
68
68
 
69
- // It's important that we only mutate and don't refresh here, as this function might be called during a render
69
+ // It's important that we only commit and don't refresh here, as this function might be called during a render
70
70
  // and otherwise we might end up in a "reactive loop"
71
- store.mutate(
71
+ store.commit(
72
72
  { otelContext, skipRefresh: true, label: `rowQuery:${table.sqliteDef.name}:${idVal}` },
73
73
  table.insert({ id, ...insertValues }),
74
74
  )
@@ -51,7 +51,7 @@ export type StoreOptions<TSchema extends LiveStoreSchema = LiveStoreSchema, TCon
51
51
  export type RefreshReason =
52
52
  | DebugRefreshReasonBase
53
53
  | {
54
- _tag: 'mutate'
54
+ _tag: 'commit'
55
55
  /** The mutations that were applied */
56
56
  mutations: ReadonlyArray<MutationEvent.AnyDecoded | MutationEvent.PartialAnyDecoded>
57
57
 
@@ -440,8 +440,59 @@ export class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext =
440
440
  ref.deref()
441
441
  }
442
442
 
443
- // #region mutate
444
- mutate: {
443
+ // #region commit
444
+ /**
445
+ * Commit a list of mutations to the store which will immediately update the local database
446
+ * and sync the mutations across other clients (similar to a `git commit`).
447
+ *
448
+ * @example
449
+ * ```ts
450
+ * store.commit(mutations.todoCreated({ id: nanoid(), text: 'Make coffee' }))
451
+ * ```
452
+ *
453
+ * You can call `commit` with multiple mutations to apply them in a single database transaction.
454
+ *
455
+ * @example
456
+ * ```ts
457
+ * const todoId = nanoid()
458
+ * store.commit(
459
+ * mutations.todoCreated({ id: todoId, text: 'Make coffee' }),
460
+ * mutations.todoCompleted({ id: todoId }))
461
+ * ```
462
+ *
463
+ * For more advanced transaction scenarios, you can pass a synchronous function to `commit` which will receive a callback
464
+ * to which you can pass multiple mutations to be committed in the same database transaction.
465
+ * Under the hood this will simply collect all mutations and apply them in a single database transaction.
466
+ *
467
+ * @example
468
+ * ```ts
469
+ * store.commit((commit) => {
470
+ * const todoId = nanoid()
471
+ * if (Math.random() > 0.5) {
472
+ * commit(mutations.todoCreated({ id: todoId, text: 'Make coffee' }))
473
+ * } else {
474
+ * commit(mutations.todoCompleted({ id: todoId }))
475
+ * }
476
+ * })
477
+ * ```
478
+ *
479
+ * When committing a large batch of mutations, you can also skip the database refresh to improve performance
480
+ * and call `store.manualRefresh()` after all mutations have been committed.
481
+ *
482
+ * @example
483
+ * ```ts
484
+ * const todos = [
485
+ * { id: nanoid(), text: 'Make coffee' },
486
+ * { id: nanoid(), text: 'Buy groceries' },
487
+ * // ... 1000 more todos
488
+ * ]
489
+ * for (const todo of todos) {
490
+ * store.commit({ skipRefresh: true }, mutations.todoCreated({ id: todo.id, text: todo.text }))
491
+ * }
492
+ * store.manualRefresh()
493
+ * ```
494
+ */
495
+ commit: {
445
496
  <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg): void
446
497
  (
447
498
  txn: <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(
@@ -470,21 +521,21 @@ export class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext =
470
521
  const skipRefresh = options?.skipRefresh ?? false
471
522
 
472
523
  const mutationsSpan = otel.trace.getSpan(this.otel.mutationsSpanContext)!
473
- mutationsSpan.addEvent('mutate')
524
+ mutationsSpan.addEvent('commit')
474
525
 
475
- // console.group('LiveStore.mutate', { skipRefresh, wasSyncMessage, label })
526
+ // console.group('LiveStore.commit', { skipRefresh, wasSyncMessage, label })
476
527
  // mutationsEvents.forEach((_) => console.debug(_.mutation, _.id, _.args))
477
528
  // console.groupEnd()
478
529
 
479
530
  let durationMs: number
480
531
 
481
532
  return this.otel.tracer.startActiveSpan(
482
- 'LiveStore:mutate',
533
+ 'LiveStore:commit',
483
534
  {
484
535
  attributes: {
485
536
  'livestore.mutationEventsCount': mutationsEvents.length,
486
537
  'livestore.mutationEventTags': mutationsEvents.map((_) => _.mutation),
487
- 'livestore.mutateLabel': options?.label,
538
+ 'livestore.commitLabel': options?.label,
488
539
  },
489
540
  links: options?.spanLinks,
490
541
  },
@@ -520,7 +571,7 @@ export class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext =
520
571
  }
521
572
 
522
573
  const debugRefreshReason = {
523
- _tag: 'mutate' as const,
574
+ _tag: 'commit' as const,
524
575
  mutations: mutationsEvents,
525
576
  writeTables: Array.from(writeTables),
526
577
  }
@@ -541,7 +592,7 @@ export class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext =
541
592
  },
542
593
  )
543
594
  }
544
- // #endregion mutate
595
+ // #endregion commit
545
596
 
546
597
  /**
547
598
  * This can be used in combination with `skipRefresh` when applying mutations.
@@ -643,7 +694,7 @@ export class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext =
643
694
  options = firstMutationOrTxnFnOrOptions
644
695
  mutationsEvents = restMutations
645
696
  } else if (firstMutationOrTxnFnOrOptions === undefined) {
646
- // When `mutate` is called with no arguments (which sometimes happens when dynamically filtering mutations)
697
+ // When `commit` is called with no arguments (which sometimes happens when dynamically filtering mutations)
647
698
  mutationsEvents = []
648
699
  } else {
649
700
  mutationsEvents = [firstMutationOrTxnFnOrOptions, ...restMutations]