on-zero 0.16.19 → 0.16.20
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/cjs/createUseQuery.cjs +2 -1
- package/dist/cjs/createUseQuery.native.js +2 -1
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +2 -1
- package/dist/cjs/createUseQueryDirect.native.js +2 -1
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +75 -9
- package/dist/cjs/createZeroClient.native.js +151 -81
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +351 -10
- package/dist/cjs/createZeroClient.recovery.test.native.js +412 -12
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +16 -11
- package/dist/cjs/generate.native.js +16 -11
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +22 -0
- package/dist/cjs/generate.test.native.js +22 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +542 -52
- package/dist/cjs/helpers/recoverZeroClient.native.js +721 -59
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +318 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +361 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/kvStore.cjs +30 -0
- package/dist/cjs/kvStore.native.js +34 -0
- package/dist/cjs/kvStore.native.js.map +1 -0
- package/dist/cjs/queryJson.cjs +58 -0
- package/dist/cjs/queryJson.native.js +86 -0
- package/dist/cjs/queryJson.native.js.map +1 -0
- package/dist/cjs/resolveQuery.cjs +2 -0
- package/dist/cjs/resolveQuery.native.js +2 -0
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.cjs +11 -1
- package/dist/cjs/useQuery.empty.test.native.js +23 -1
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.cjs +22 -1
- package/dist/cjs/useQuery.ssr.test.native.js +30 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +2 -1
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +2 -1
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +2 -1
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +2 -1
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +76 -10
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +152 -82
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +352 -11
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +413 -13
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +16 -11
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +16 -11
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +22 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +22 -0
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +542 -54
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +721 -61
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +319 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +362 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/kvStore.mjs +5 -0
- package/dist/esm/kvStore.mjs.map +1 -0
- package/dist/esm/kvStore.native.js +6 -0
- package/dist/esm/kvStore.native.js.map +1 -0
- package/dist/esm/queryJson.mjs +32 -0
- package/dist/esm/queryJson.mjs.map +1 -0
- package/dist/esm/queryJson.native.js +57 -0
- package/dist/esm/queryJson.native.js.map +1 -0
- package/dist/esm/resolveQuery.mjs +2 -0
- package/dist/esm/resolveQuery.mjs.map +1 -1
- package/dist/esm/resolveQuery.native.js +2 -0
- package/dist/esm/resolveQuery.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.mjs +12 -2
- package/dist/esm/useQuery.empty.test.mjs.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +24 -2
- package/dist/esm/useQuery.empty.test.native.js.map +1 -1
- package/dist/esm/useQuery.ssr.test.mjs +23 -2
- package/dist/esm/useQuery.ssr.test.mjs.map +1 -1
- package/dist/esm/useQuery.ssr.test.native.js +31 -2
- package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
- package/package.json +11 -3
- package/src/createUseQuery.tsx +2 -1
- package/src/createUseQueryDirect.tsx +2 -1
- package/src/createZeroClient.recovery.test.tsx +370 -7
- package/src/createZeroClient.tsx +100 -10
- package/src/generate.test.ts +31 -0
- package/src/generate.ts +22 -10
- package/src/helpers/recoverZeroClient.test.ts +323 -0
- package/src/helpers/recoverZeroClient.ts +896 -78
- package/src/kvStore.native.ts +7 -0
- package/src/kvStore.ts +7 -0
- package/src/queryJson.ts +46 -0
- package/src/resolveQuery.ts +2 -0
- package/src/useQuery.empty.test.tsx +16 -2
- package/src/useQuery.ssr.test.ts +23 -2
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroClient.recovery.test.d.ts.map +1 -1
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/recoverZeroClient.d.ts +6 -0
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/kvStore.d.ts +2 -0
- package/types/kvStore.d.ts.map +1 -0
- package/types/kvStore.native.d.ts +3 -0
- package/types/kvStore.native.d.ts.map +1 -0
- package/types/queryJson.d.ts +3 -0
- package/types/queryJson.d.ts.map +1 -0
- package/types/resolveQuery.d.ts.map +1 -1
|
@@ -4,7 +4,7 @@ import { act, Suspense, useLayoutEffect } from "react";
|
|
|
4
4
|
import { createRoot } from "react-dom/client";
|
|
5
5
|
import { afterEach, beforeEach, expect, test, vi } from "vitest";
|
|
6
6
|
import { createZeroClient } from "./createZeroClient.native.js";
|
|
7
|
-
import { resetRecoveryStateForTests } from "./helpers/recoverZeroClient.native.js";
|
|
7
|
+
import { isGroupTransitionOpen, resetRecoveryStateForTests } from "./helpers/recoverZeroClient.native.js";
|
|
8
8
|
function _class_call_check(instance, Constructor) {
|
|
9
9
|
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
|
|
10
10
|
}
|
|
@@ -20,6 +20,9 @@ function _define_property(obj, key, value) {
|
|
|
20
20
|
return obj;
|
|
21
21
|
}
|
|
22
22
|
var fakeZero = vi.hoisted(function () {
|
|
23
|
+
var group = {
|
|
24
|
+
current: "g1"
|
|
25
|
+
};
|
|
23
26
|
var FakeZero = function FakeZero2(options) {
|
|
24
27
|
"use strict";
|
|
25
28
|
|
|
@@ -30,20 +33,11 @@ var fakeZero = vi.hoisted(function () {
|
|
|
30
33
|
_define_property(this, "delete", void 0);
|
|
31
34
|
_define_property(this, "close", void 0);
|
|
32
35
|
_define_property(this, "run", void 0);
|
|
36
|
+
_define_property(this, "mutate", void 0);
|
|
33
37
|
_define_property(this, "preload", void 0);
|
|
38
|
+
_define_property(this, "clientGroupID", void 0);
|
|
34
39
|
this.options = options;
|
|
35
40
|
this.context = {};
|
|
36
|
-
this.connection = {
|
|
37
|
-
state: {
|
|
38
|
-
current: {
|
|
39
|
-
name: "closed"
|
|
40
|
-
},
|
|
41
|
-
subscribe: function subscribe() {
|
|
42
|
-
return function () {};
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
connect: vi.fn()
|
|
46
|
-
};
|
|
47
41
|
this.delete = vi.fn(async function () {
|
|
48
42
|
return {
|
|
49
43
|
errors: []
|
|
@@ -53,6 +47,16 @@ var fakeZero = vi.hoisted(function () {
|
|
|
53
47
|
this.run = vi.fn(async function () {
|
|
54
48
|
return [];
|
|
55
49
|
});
|
|
50
|
+
this.mutate = {
|
|
51
|
+
note: {
|
|
52
|
+
insert: vi.fn(function () {
|
|
53
|
+
return {
|
|
54
|
+
client: Promise.resolve({}),
|
|
55
|
+
server: Promise.resolve({})
|
|
56
|
+
};
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
};
|
|
56
60
|
this.preload = vi.fn(function () {
|
|
57
61
|
return {
|
|
58
62
|
cleanup: function cleanup() {},
|
|
@@ -60,11 +64,38 @@ var fakeZero = vi.hoisted(function () {
|
|
|
60
64
|
};
|
|
61
65
|
});
|
|
62
66
|
instances.push(this);
|
|
67
|
+
this.clientGroupID = Promise.resolve(group.current);
|
|
68
|
+
var listeners = /* @__PURE__ */new Set();
|
|
69
|
+
this.connection = {
|
|
70
|
+
state: {
|
|
71
|
+
current: {
|
|
72
|
+
name: "closed"
|
|
73
|
+
},
|
|
74
|
+
subscribe: function subscribe(listener) {
|
|
75
|
+
listeners.add(listener);
|
|
76
|
+
return function () {
|
|
77
|
+
listeners.delete(listener);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
connect: vi.fn()
|
|
82
|
+
};
|
|
83
|
+
this.__connectionListeners = listeners;
|
|
63
84
|
};
|
|
64
85
|
var instances = [];
|
|
86
|
+
function setConnectionState(instance, name) {
|
|
87
|
+
instance.connection.state.current.name = name;
|
|
88
|
+
var listeners = instance.__connectionListeners;
|
|
89
|
+
for (var _i = 0, _iter = [...listeners]; _i < _iter.length; _i++) {
|
|
90
|
+
var listener = _iter[_i];
|
|
91
|
+
listener();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
65
94
|
return {
|
|
66
95
|
FakeZero,
|
|
67
|
-
instances
|
|
96
|
+
instances,
|
|
97
|
+
group,
|
|
98
|
+
setConnectionState
|
|
68
99
|
};
|
|
69
100
|
});
|
|
70
101
|
vi.mock("@rocicorp/zero", async function (importOriginal) {
|
|
@@ -94,6 +125,7 @@ beforeEach(function () {
|
|
|
94
125
|
window.sessionStorage.clear();
|
|
95
126
|
resetRecoveryStateForTests();
|
|
96
127
|
fakeZero.instances.length = 0;
|
|
128
|
+
fakeZero.group.current = "g1";
|
|
97
129
|
container = document.createElement("div");
|
|
98
130
|
root = null;
|
|
99
131
|
});
|
|
@@ -464,4 +496,372 @@ test("headless NewClientGroup recovery reconstructs its client without a provide
|
|
|
464
496
|
expect(first.close).toHaveBeenCalledOnce();
|
|
465
497
|
await connection.close();
|
|
466
498
|
});
|
|
499
|
+
function makeTransitionClient(instanceName) {
|
|
500
|
+
return createZeroClient({
|
|
501
|
+
schema,
|
|
502
|
+
models: {},
|
|
503
|
+
groupedQueries: {},
|
|
504
|
+
instanceName
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
function collectClientEvents(client2) {
|
|
508
|
+
var events = [];
|
|
509
|
+
var off = client2.zeroEvents.listen(function (event) {
|
|
510
|
+
if (event) events.push(event);
|
|
511
|
+
});
|
|
512
|
+
return {
|
|
513
|
+
events,
|
|
514
|
+
off
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
async function mountTransitionClient(client2, userID) {
|
|
518
|
+
var el = document.createElement("div");
|
|
519
|
+
var mountedRoot = createRoot(el);
|
|
520
|
+
await act(async function () {
|
|
521
|
+
mountedRoot.render(/* @__PURE__ */_jsx(client2.ProvideZero, {
|
|
522
|
+
cacheURL: "http://127.0.0.1:7777/zero",
|
|
523
|
+
userID,
|
|
524
|
+
children: /* @__PURE__ */_jsx("span", {
|
|
525
|
+
children: "ok"
|
|
526
|
+
})
|
|
527
|
+
}));
|
|
528
|
+
await Promise.resolve();
|
|
529
|
+
});
|
|
530
|
+
return {
|
|
531
|
+
el,
|
|
532
|
+
root: mountedRoot,
|
|
533
|
+
instance: fakeZero.instances.at(-1)
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
async function unmountTransitionClient(mounted) {
|
|
537
|
+
await act(async function () {
|
|
538
|
+
mounted.root.unmount();
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
function withoutPageReload() {
|
|
542
|
+
var originalLocation = globalThis.location;
|
|
543
|
+
Object.defineProperty(globalThis, "location", {
|
|
544
|
+
configurable: true,
|
|
545
|
+
value: void 0
|
|
546
|
+
});
|
|
547
|
+
return function () {
|
|
548
|
+
Object.defineProperty(globalThis, "location", {
|
|
549
|
+
configurable: true,
|
|
550
|
+
value: originalLocation
|
|
551
|
+
});
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
test("two providers ride one group transition and keep querying and mutating", async function () {
|
|
555
|
+
var restoreLocation = withoutPageReload();
|
|
556
|
+
var clientA = makeTransitionClient("transition-two-a");
|
|
557
|
+
var clientB = makeTransitionClient("transition-two-b");
|
|
558
|
+
var collectedA = collectClientEvents(clientA);
|
|
559
|
+
var collectedB = collectClientEvents(clientB);
|
|
560
|
+
var mountedA = await mountTransitionClient(clientA, "transition-user");
|
|
561
|
+
var mountedB = await mountTransitionClient(clientB, "transition-user");
|
|
562
|
+
var firstA = mountedA.instance;
|
|
563
|
+
var firstB = mountedB.instance;
|
|
564
|
+
var countBefore = fakeZero.instances.length;
|
|
565
|
+
try {
|
|
566
|
+
firstA.options.onUpdateNeeded({
|
|
567
|
+
type: "NewClientGroup"
|
|
568
|
+
});
|
|
569
|
+
firstB.options.onUpdateNeeded({
|
|
570
|
+
type: "NewClientGroup"
|
|
571
|
+
});
|
|
572
|
+
await act(async function () {
|
|
573
|
+
await new Promise(function (resolve) {
|
|
574
|
+
return setTimeout(resolve, 0);
|
|
575
|
+
});
|
|
576
|
+
});
|
|
577
|
+
expect(fakeZero.instances).toHaveLength(countBefore + 2);
|
|
578
|
+
var secondA = fakeZero.instances[countBefore];
|
|
579
|
+
var secondB = fakeZero.instances[countBefore + 1];
|
|
580
|
+
expect(secondA).not.toBe(firstA);
|
|
581
|
+
expect(secondB).not.toBe(firstB);
|
|
582
|
+
expect(firstA.close).toHaveBeenCalledTimes(1);
|
|
583
|
+
expect(firstB.close).toHaveBeenCalledTimes(1);
|
|
584
|
+
expect(isGroupTransitionOpen()).toBe(true);
|
|
585
|
+
await act(async function () {
|
|
586
|
+
fakeZero.setConnectionState(secondA, "connected");
|
|
587
|
+
fakeZero.setConnectionState(secondB, "connected");
|
|
588
|
+
await Promise.resolve();
|
|
589
|
+
});
|
|
590
|
+
await vi.waitFor(function () {
|
|
591
|
+
return expect(isGroupTransitionOpen()).toBe(false);
|
|
592
|
+
});
|
|
593
|
+
var allEvents = [...collectedA.events, ...collectedB.events];
|
|
594
|
+
expect(allEvents.filter(function (event) {
|
|
595
|
+
return event.type === "recovering";
|
|
596
|
+
})).toHaveLength(1);
|
|
597
|
+
expect(allEvents.filter(function (event) {
|
|
598
|
+
return event.type === "fatal";
|
|
599
|
+
})).toHaveLength(0);
|
|
600
|
+
expect(firstA.delete).not.toHaveBeenCalled();
|
|
601
|
+
expect(firstB.delete).not.toHaveBeenCalled();
|
|
602
|
+
await clientA.zero.run({});
|
|
603
|
+
await clientB.zero.run({});
|
|
604
|
+
expect(secondA.run).toHaveBeenCalled();
|
|
605
|
+
expect(secondB.run).toHaveBeenCalled();
|
|
606
|
+
clientA.zero.mutate.note.insert({
|
|
607
|
+
id: "a1"
|
|
608
|
+
});
|
|
609
|
+
clientB.zero.mutate.note.insert({
|
|
610
|
+
id: "b1"
|
|
611
|
+
});
|
|
612
|
+
expect(secondA.mutate.note.insert).toHaveBeenCalledTimes(1);
|
|
613
|
+
expect(secondB.mutate.note.insert).toHaveBeenCalledTimes(1);
|
|
614
|
+
} finally {
|
|
615
|
+
collectedA.off();
|
|
616
|
+
collectedB.off();
|
|
617
|
+
await unmountTransitionClient(mountedA);
|
|
618
|
+
await unmountTransitionClient(mountedB);
|
|
619
|
+
restoreLocation();
|
|
620
|
+
}
|
|
621
|
+
});
|
|
622
|
+
test("a second registry change after recovery remints again without fatal", async function () {
|
|
623
|
+
var restoreLocation = withoutPageReload();
|
|
624
|
+
var clientA = makeTransitionClient("transition-second-a");
|
|
625
|
+
var clientB = makeTransitionClient("transition-second-b");
|
|
626
|
+
var collectedA = collectClientEvents(clientA);
|
|
627
|
+
var collectedB = collectClientEvents(clientB);
|
|
628
|
+
var mountedA = await mountTransitionClient(clientA, "transition-second-user");
|
|
629
|
+
var mountedB = await mountTransitionClient(clientB, "transition-second-user");
|
|
630
|
+
try {
|
|
631
|
+
var fireBoth = function fireBoth2(instances) {
|
|
632
|
+
instances[0].options.onUpdateNeeded({
|
|
633
|
+
type: "NewClientGroup"
|
|
634
|
+
});
|
|
635
|
+
instances[1].options.onUpdateNeeded({
|
|
636
|
+
type: "NewClientGroup"
|
|
637
|
+
});
|
|
638
|
+
};
|
|
639
|
+
var settleRemints = async function settleRemints2(countBefore2) {
|
|
640
|
+
await act(async function () {
|
|
641
|
+
await new Promise(function (resolve) {
|
|
642
|
+
return setTimeout(resolve, 0);
|
|
643
|
+
});
|
|
644
|
+
});
|
|
645
|
+
expect(fakeZero.instances).toHaveLength(countBefore2 + 2);
|
|
646
|
+
var next = fakeZero.instances.slice(countBefore2);
|
|
647
|
+
await act(async function () {
|
|
648
|
+
var _iteratorNormalCompletion = true,
|
|
649
|
+
_didIteratorError = false,
|
|
650
|
+
_iteratorError = void 0;
|
|
651
|
+
try {
|
|
652
|
+
for (var _iterator = next[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
653
|
+
var instance = _step.value;
|
|
654
|
+
fakeZero.setConnectionState(instance, "connected");
|
|
655
|
+
}
|
|
656
|
+
} catch (err) {
|
|
657
|
+
_didIteratorError = true;
|
|
658
|
+
_iteratorError = err;
|
|
659
|
+
} finally {
|
|
660
|
+
try {
|
|
661
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
662
|
+
_iterator.return();
|
|
663
|
+
}
|
|
664
|
+
} finally {
|
|
665
|
+
if (_didIteratorError) {
|
|
666
|
+
throw _iteratorError;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
await Promise.resolve();
|
|
671
|
+
});
|
|
672
|
+
await vi.waitFor(function () {
|
|
673
|
+
return expect(isGroupTransitionOpen()).toBe(false);
|
|
674
|
+
});
|
|
675
|
+
return next;
|
|
676
|
+
};
|
|
677
|
+
var countBeforeFirst = fakeZero.instances.length;
|
|
678
|
+
fireBoth(fakeZero.instances.slice(-2));
|
|
679
|
+
await settleRemints(countBeforeFirst);
|
|
680
|
+
fakeZero.group.current = "g2";
|
|
681
|
+
var countBefore = fakeZero.instances.length;
|
|
682
|
+
fireBoth(fakeZero.instances.slice(-2));
|
|
683
|
+
var third = await settleRemints(countBefore);
|
|
684
|
+
var allEvents = [...collectedA.events, ...collectedB.events];
|
|
685
|
+
expect(allEvents.filter(function (event) {
|
|
686
|
+
return event.type === "recovering";
|
|
687
|
+
})).toHaveLength(2);
|
|
688
|
+
expect(allEvents.filter(function (event) {
|
|
689
|
+
return event.type === "fatal";
|
|
690
|
+
})).toHaveLength(0);
|
|
691
|
+
await clientA.zero.run({});
|
|
692
|
+
await clientB.zero.run({});
|
|
693
|
+
expect(third[0].run).toHaveBeenCalled();
|
|
694
|
+
expect(third[1].run).toHaveBeenCalled();
|
|
695
|
+
} finally {
|
|
696
|
+
collectedA.off();
|
|
697
|
+
collectedB.off();
|
|
698
|
+
await unmountTransitionClient(mountedA);
|
|
699
|
+
await unmountTransitionClient(mountedB);
|
|
700
|
+
restoreLocation();
|
|
701
|
+
}
|
|
702
|
+
});
|
|
703
|
+
test("negative control: an incompatible schema emits exactly one terminal error, never a loop", async function () {
|
|
704
|
+
var restoreLocation = withoutPageReload();
|
|
705
|
+
var consoleError = vi.spyOn(console, "error").mockImplementation(function () {});
|
|
706
|
+
var clientA = makeTransitionClient("transition-negative-a");
|
|
707
|
+
var clientB = makeTransitionClient("transition-negative-b");
|
|
708
|
+
var collectedA = collectClientEvents(clientA);
|
|
709
|
+
var collectedB = collectClientEvents(clientB);
|
|
710
|
+
var mountedA = await mountTransitionClient(clientA, "transition-negative-user");
|
|
711
|
+
var mountedB = await mountTransitionClient(clientB, "transition-negative-user");
|
|
712
|
+
var firstA = mountedA.instance;
|
|
713
|
+
var firstB = mountedB.instance;
|
|
714
|
+
var countBefore = fakeZero.instances.length;
|
|
715
|
+
try {
|
|
716
|
+
firstA.options.onUpdateNeeded({
|
|
717
|
+
type: "SchemaVersionNotSupported"
|
|
718
|
+
});
|
|
719
|
+
firstB.options.onUpdateNeeded({
|
|
720
|
+
type: "SchemaVersionNotSupported"
|
|
721
|
+
});
|
|
722
|
+
await act(async function () {
|
|
723
|
+
await new Promise(function (resolve) {
|
|
724
|
+
return setTimeout(resolve, 0);
|
|
725
|
+
});
|
|
726
|
+
});
|
|
727
|
+
expect(firstA.delete).toHaveBeenCalledTimes(1);
|
|
728
|
+
expect(firstB.delete).toHaveBeenCalledTimes(1);
|
|
729
|
+
expect(fakeZero.instances).toHaveLength(countBefore + 2);
|
|
730
|
+
var secondA = fakeZero.instances[countBefore];
|
|
731
|
+
var secondB = fakeZero.instances[countBefore + 1];
|
|
732
|
+
expect(isGroupTransitionOpen()).toBe(true);
|
|
733
|
+
secondA.options.onUpdateNeeded({
|
|
734
|
+
type: "SchemaVersionNotSupported"
|
|
735
|
+
});
|
|
736
|
+
await act(async function () {
|
|
737
|
+
await new Promise(function (resolve) {
|
|
738
|
+
return setTimeout(resolve, 0);
|
|
739
|
+
});
|
|
740
|
+
});
|
|
741
|
+
var allEvents = function allEvents2() {
|
|
742
|
+
return [...collectedA.events, ...collectedB.events];
|
|
743
|
+
};
|
|
744
|
+
expect(allEvents().filter(function (event) {
|
|
745
|
+
return event.type === "fatal";
|
|
746
|
+
})).toHaveLength(1);
|
|
747
|
+
var [fatal] = allEvents().filter(function (event) {
|
|
748
|
+
return event.type === "fatal";
|
|
749
|
+
});
|
|
750
|
+
expect(fatal).toMatchObject({
|
|
751
|
+
reasonKey: "SchemaVersionNotSupported",
|
|
752
|
+
reason: expect.stringContaining("g1")
|
|
753
|
+
});
|
|
754
|
+
expect(consoleError).toHaveBeenCalledTimes(1);
|
|
755
|
+
expect(consoleError.mock.calls[0][0]).toContain("g1");
|
|
756
|
+
secondB.options.onUpdateNeeded({
|
|
757
|
+
type: "SchemaVersionNotSupported"
|
|
758
|
+
});
|
|
759
|
+
secondA.options.onUpdateNeeded({
|
|
760
|
+
type: "SchemaVersionNotSupported"
|
|
761
|
+
});
|
|
762
|
+
await act(async function () {
|
|
763
|
+
await new Promise(function (resolve) {
|
|
764
|
+
return setTimeout(resolve, 0);
|
|
765
|
+
});
|
|
766
|
+
});
|
|
767
|
+
expect(allEvents().filter(function (event) {
|
|
768
|
+
return event.type === "fatal";
|
|
769
|
+
})).toHaveLength(1);
|
|
770
|
+
expect(consoleError).toHaveBeenCalledTimes(1);
|
|
771
|
+
expect(fakeZero.instances).toHaveLength(countBefore + 2);
|
|
772
|
+
} finally {
|
|
773
|
+
collectedA.off();
|
|
774
|
+
collectedB.off();
|
|
775
|
+
await unmountTransitionClient(mountedA);
|
|
776
|
+
await unmountTransitionClient(mountedB);
|
|
777
|
+
restoreLocation();
|
|
778
|
+
consoleError.mockRestore();
|
|
779
|
+
}
|
|
780
|
+
});
|
|
781
|
+
test("concurrent update signals across providers schedule a single reload", async function () {
|
|
782
|
+
var reloadPage = vi.fn();
|
|
783
|
+
var originalLocation = globalThis.location;
|
|
784
|
+
Object.defineProperty(globalThis, "location", {
|
|
785
|
+
configurable: true,
|
|
786
|
+
value: {
|
|
787
|
+
href: "http://localhost/reload-test",
|
|
788
|
+
reload: reloadPage
|
|
789
|
+
}
|
|
790
|
+
});
|
|
791
|
+
var scheduleA = vi.fn();
|
|
792
|
+
var scheduleB = vi.fn();
|
|
793
|
+
var clientA = makeTransitionClient("transition-reload-a");
|
|
794
|
+
var clientB = makeTransitionClient("transition-reload-b");
|
|
795
|
+
var collectedA = collectClientEvents(clientA);
|
|
796
|
+
var collectedB = collectClientEvents(clientB);
|
|
797
|
+
var elA = document.createElement("div");
|
|
798
|
+
var elB = document.createElement("div");
|
|
799
|
+
var rootA = createRoot(elA);
|
|
800
|
+
var rootB = createRoot(elB);
|
|
801
|
+
try {
|
|
802
|
+
var _scheduleA_mock_calls_;
|
|
803
|
+
await act(async function () {
|
|
804
|
+
rootA.render(/* @__PURE__ */_jsx(clientA.ProvideZero, {
|
|
805
|
+
cacheURL: "http://127.0.0.1:7777/zero",
|
|
806
|
+
userID: "transition-reload-user",
|
|
807
|
+
scheduleReload: scheduleA,
|
|
808
|
+
children: /* @__PURE__ */_jsx("span", {
|
|
809
|
+
children: "ok"
|
|
810
|
+
})
|
|
811
|
+
}));
|
|
812
|
+
await Promise.resolve();
|
|
813
|
+
});
|
|
814
|
+
await act(async function () {
|
|
815
|
+
rootB.render(/* @__PURE__ */_jsx(clientB.ProvideZero, {
|
|
816
|
+
cacheURL: "http://127.0.0.1:7777/zero",
|
|
817
|
+
userID: "transition-reload-user",
|
|
818
|
+
scheduleReload: scheduleB,
|
|
819
|
+
children: /* @__PURE__ */_jsx("span", {
|
|
820
|
+
children: "ok"
|
|
821
|
+
})
|
|
822
|
+
}));
|
|
823
|
+
await Promise.resolve();
|
|
824
|
+
});
|
|
825
|
+
var firstA = fakeZero.instances.at(-2);
|
|
826
|
+
var firstB = fakeZero.instances.at(-1);
|
|
827
|
+
firstA.options.onUpdateNeeded({
|
|
828
|
+
type: "NewClientGroup"
|
|
829
|
+
});
|
|
830
|
+
firstB.options.onUpdateNeeded({
|
|
831
|
+
type: "NewClientGroup"
|
|
832
|
+
});
|
|
833
|
+
await act(async function () {
|
|
834
|
+
await new Promise(function (resolve) {
|
|
835
|
+
return setTimeout(resolve, 0);
|
|
836
|
+
});
|
|
837
|
+
});
|
|
838
|
+
expect(scheduleA.mock.calls.length + scheduleB.mock.calls.length).toBe(1);
|
|
839
|
+
expect(reloadPage).not.toHaveBeenCalled();
|
|
840
|
+
var allEvents = [...collectedA.events, ...collectedB.events];
|
|
841
|
+
expect(allEvents.filter(function (event) {
|
|
842
|
+
return event.type === "fatal";
|
|
843
|
+
})).toHaveLength(0);
|
|
844
|
+
var ctx = ((_scheduleA_mock_calls_ = scheduleA.mock.calls[0]) !== null && _scheduleA_mock_calls_ !== void 0 ? _scheduleA_mock_calls_ : scheduleB.mock.calls[0])[0];
|
|
845
|
+
await act(async function () {
|
|
846
|
+
await ctx.performReload();
|
|
847
|
+
});
|
|
848
|
+
expect(reloadPage).toHaveBeenCalledTimes(1);
|
|
849
|
+
expect(isGroupTransitionOpen()).toBe(false);
|
|
850
|
+
var marker = window.sessionStorage.getItem("on-zero-recover-http://localhost/reload-test-NewClientGroup");
|
|
851
|
+
expect(marker).toContain("g1");
|
|
852
|
+
} finally {
|
|
853
|
+
collectedA.off();
|
|
854
|
+
collectedB.off();
|
|
855
|
+
await act(async function () {
|
|
856
|
+
rootA.unmount();
|
|
857
|
+
});
|
|
858
|
+
await act(async function () {
|
|
859
|
+
rootB.unmount();
|
|
860
|
+
});
|
|
861
|
+
Object.defineProperty(globalThis, "location", {
|
|
862
|
+
configurable: true,
|
|
863
|
+
value: originalLocation
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
});
|
|
467
867
|
//# sourceMappingURL=createZeroClient.recovery.test.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","createSchema","string","table","UpdateNeededReasonType","act","Suspense","useLayoutEffect","createRoot","afterEach","beforeEach","expect","test","vi","createZeroClient","resetRecoveryStateForTests","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","fakeZero","hoisted","FakeZero","FakeZero2","options","context","connection","state","current","name","subscribe","connect","fn","delete","errors","close","run","preload","cleanup","complete","Promise","resolve","instances","push","mock","importOriginal","actual","Zero","globalThis","IS_REACT_ACT_ENVIRONMENT","noteTable","columns","id","body","primaryKey","schema","tables","client","models","groupedQueries","instanceName","container","root","window","sessionStorage","clear","length","document","createElement","unmount","mount","render","ProvideZero","cacheURL","userID","children","first","toBeDefined","deleteZero","zero","toHaveBeenCalledTimes","toHaveLength","not","toBe","at","countBefore","result","remint","isolated","connectHeadless","kvStore","storageKey","consoleError","spyOn","console","mockImplementation","onUpdateNeeded","type","NewClientGroup","setTimeout","toHaveBeenCalledWith","mockRestore","_generations_","_generations_1","generationClient","generations","GenerationProbe","generation","useZeroProviderGeneration","firstGeneration","isCurrent","dropLocalState","hidden","hiddenUntil","MaybeHidden","App","fallback","settleServer","settleServer2","server","settled","acknowledgement","awaitMutationServer","finally","textContent","toContain","resolves","useFakeTimers","_fakeZero_instances_","scheduleReload","events","off","zeroEvents","listen","event","timeout","timeout2","label","timedOut","rejects","toMatchObject","phase","advanceTimersByTimeAsync","toEqual","toContainEqual","status","reasonKey","reason","toHaveBeenCalled","useRealTimers","install","transport","logClassifications","benign","benignLogPatterns"],"sources":["../../src/createZeroClient.recovery.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","createSchema","string","table","UpdateNeededReasonType","act","Suspense","useLayoutEffect","createRoot","afterEach","beforeEach","expect","test","vi","createZeroClient","isGroupTransitionOpen","resetRecoveryStateForTests","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","fakeZero","hoisted","group","current","FakeZero","FakeZero2","options","context","delete","fn","errors","close","run","mutate","note","insert","client","Promise","resolve","server","preload","cleanup","complete","instances","push","clientGroupID","listeners","Set","connection","state","name","subscribe","listener","add","connect","__connectionListeners","setConnectionState","_i","_iter","length","mock","importOriginal","actual","Zero","globalThis","IS_REACT_ACT_ENVIRONMENT","noteTable","columns","id","body","primaryKey","schema","tables","models","groupedQueries","instanceName","container","root","window","sessionStorage","clear","document","createElement","unmount","mount","render","ProvideZero","cacheURL","userID","children","first","toBeDefined","deleteZero","zero","toHaveBeenCalledTimes","toHaveLength","not","toBe","at","countBefore","result","remint","isolated","connectHeadless","kvStore","storageKey","consoleError","spyOn","console","mockImplementation","onUpdateNeeded","type","NewClientGroup","setTimeout","toHaveBeenCalledWith","mockRestore","_generations_","_generations_1","generationClient","generations","GenerationProbe","generation","useZeroProviderGeneration","firstGeneration","isCurrent","dropLocalState","hidden","hiddenUntil","MaybeHidden","App","fallback","settleServer","settleServer2","settled","acknowledgement","awaitMutationServer","finally","textContent","toContain","resolves","useFakeTimers","_fakeZero_instances_","scheduleReload","events","off","zeroEvents","listen","event","timeout","timeout2","label","timedOut","rejects","toMatchObject","phase","advanceTimersByTimeAsync","toEqual","toContainEqual","status","reasonKey","reason","toHaveBeenCalled","useRealTimers","install","transport","logClassifications","benign","benignLogPatterns","logSink","log","toHaveBeenCalledOnce","retire","second","waitFor","waitForZero","makeTransitionClient","collectClientEvents","client2","mountTransitionClient","el","mountedRoot","unmountTransitionClient","mounted","withoutPageReload","originalLocation","location","restoreLocation","clientA","clientB","collectedA","collectedB","mountedA","mountedB","firstA","firstB","secondA","secondB","allEvents","filter","fireBoth","fireBoth2","settleRemints","settleRemints2","countBefore2","next","slice","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","err","return","countBeforeFirst","third"],"sources":["../../src/createZeroClient.recovery.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/generate.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import { CRUD_MUTATION_NAMES, formatObjectKey, generateAggregatesFile, generateG
|
|
|
7
7
|
import { discoverDataLayout, namespaceImportPath } from "./generate-layout.mjs";
|
|
8
8
|
import { collectTypeScriptSourcePaths, createNativeTypeScriptProject } from "./native-typescript.mjs";
|
|
9
9
|
const hash = s => createHash("sha256").update(s).digest("hex");
|
|
10
|
-
const GENERATOR_CACHE_VERSION = "
|
|
10
|
+
const GENERATOR_CACHE_VERSION = "8";
|
|
11
11
|
const isGeneratorSourceFile = name => name.endsWith(".ts") && !name.endsWith(".d.ts") && !name.endsWith(".test.ts") && !name.endsWith(".spec.ts");
|
|
12
12
|
function hashInputTree(sourceRoots, generatedDir) {
|
|
13
13
|
const parts = [];
|
|
@@ -577,8 +577,11 @@ async function generateWithProject(options, project) {
|
|
|
577
577
|
const layout = discoverDataLayout(project, baseDir, config ? resolve(config) : void 0);
|
|
578
578
|
const metadataHash = hash(layout.metadataPaths.map(path => `${path}\0${readFileSync(path, "utf8")}`).join("\0"));
|
|
579
579
|
const databaseSchemaPath = resolve(dirname(baseDir), "database/schema.ts");
|
|
580
|
-
const
|
|
581
|
-
const
|
|
580
|
+
const needsDrizzleSchema = existsSync(databaseSchemaPath);
|
|
581
|
+
const externalZeroConfigPath = resolve(dirname(databaseSchemaPath), "drizzle-zero.config.ts");
|
|
582
|
+
const externalZeroConfig = existsSync(externalZeroConfigPath) ? readFileSync(externalZeroConfigPath, "utf8") : null;
|
|
583
|
+
const needsSqliteZeroSchema = needsDrizzleSchema && externalZeroConfig === null;
|
|
584
|
+
const inputHash = hash(`${hashInputTree(layout.sourceRoots, generatedDir)}\0${metadataHash}\0${externalZeroConfig}`);
|
|
582
585
|
if (!force && generateCache.__generatorVersion === GENERATOR_CACHE_VERSION && generateCache.__inputHash === inputHash &&
|
|
583
586
|
// the input hash deliberately skips the generated directory, so it cannot
|
|
584
587
|
// notice that the outputs themselves moved. existence is not correctness
|
|
@@ -608,7 +611,7 @@ async function generateWithProject(options, project) {
|
|
|
608
611
|
} catch {
|
|
609
612
|
return false;
|
|
610
613
|
}
|
|
611
|
-
}) && existsSync(resolve(generatedDir, "models.ts")) && (!needsSqliteZeroSchema || existsSync(resolve(generatedDir, "schema.ts")))) {
|
|
614
|
+
}) && existsSync(resolve(generatedDir, "models.ts")) && (!needsDrizzleSchema || existsSync(resolve(generatedDir, "drizzleSchema.ts"))) && (!needsSqliteZeroSchema || existsSync(resolve(generatedDir, "schema.ts")))) {
|
|
612
615
|
let counts = {};
|
|
613
616
|
try {
|
|
614
617
|
counts = JSON.parse(generateCache.__counts || "{}");
|
|
@@ -637,22 +640,24 @@ async function generateWithProject(options, project) {
|
|
|
637
640
|
// managed externally and should not be overwritten.
|
|
638
641
|
...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModules.map(module => module.name))), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModules))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())];
|
|
639
642
|
let filesChanged = writeResults.filter(Boolean).length;
|
|
640
|
-
if (
|
|
643
|
+
if (needsDrizzleSchema) {
|
|
641
644
|
const membership = dataMembershipFromLayout(layout);
|
|
642
645
|
const drizzleSchema = await generateDrizzleSchemaInputFileWithProject({
|
|
643
646
|
dir: baseDir,
|
|
644
647
|
schemaImportPath: "../../database/schema",
|
|
645
648
|
config
|
|
646
649
|
}, project);
|
|
647
|
-
const sqliteSchema = renderDrizzleZeroSqliteSchemaModule({
|
|
648
|
-
importPath: "./drizzleSchema",
|
|
649
|
-
tableNames: membership.allTables
|
|
650
|
-
});
|
|
651
650
|
if (writeFileIfChanged(resolve(generatedDir, "drizzleSchema.ts"), drizzleSchema)) {
|
|
652
651
|
filesChanged++;
|
|
653
652
|
}
|
|
654
|
-
if (
|
|
655
|
-
|
|
653
|
+
if (needsSqliteZeroSchema) {
|
|
654
|
+
const sqliteSchema = renderDrizzleZeroSqliteSchemaModule({
|
|
655
|
+
importPath: "./drizzleSchema",
|
|
656
|
+
tableNames: membership.allTables
|
|
657
|
+
});
|
|
658
|
+
if (writeFileIfChanged(resolve(generatedDir, "schema.ts"), sqliteSchema)) {
|
|
659
|
+
filesChanged++;
|
|
660
|
+
}
|
|
656
661
|
}
|
|
657
662
|
}
|
|
658
663
|
let queryCount = 0;
|