-
Notifications
You must be signed in to change notification settings - Fork 330
Description
well, itt happened :). I run a Preact app, no SSR, plain old SPA. I have a search field that hzdrates the useLiveQuery hook.
versions:
"@electric-sql/pglite": "^0.3.11",
"@electric-sql/pglite-react": "^0.2.29",
"@electric-sql/pglite-sync": "^0.3.15",
small pseudocode:
const userInputSignal = useSignal(MyOwnTypedef);
const params = [userInputSignal?.value?.something, userInputSignal?.value?.somethingElse];
const haveParams = params.every(param => typeof param === 'string');
const queryString = haveParams ? 'SELECT FROM ...' : null;
const items = useLiveQuery(queryString, haveParams ? params : null);
When i load my page, all things inside of my type are undefined, so i wouldn't expect the liveQuery to run at all, yet, as soon as the component renders, i get the following error in my console:
something: undefined undefined
somethingElse: undefined undefined
preact_debug.js?v=1ec0564b:103 Uncaught Error: Should never happen
at Object.__ (@electric-sql_pglite[-react.js?v=1ec0564b:231:13](about:blank))
at B ([chunk-MNOQBK7E.js?v=1ec0564b:141:13](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A141%3A13))
at Array.forEach (<anonymous>)
at j ([chunk-MNOQBK7E.js?v=1ec0564b:84:37](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A84%3A37))
(anonymous) @ @electric-sql_pglite[-react.js?v=1ec0564b:231](about:blank)
B @ [chunk-MNOQBK7E.js?v=1ec0564b:141](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A141)
j @ [chunk-MNOQBK7E.js?v=1ec0564b:84](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A84)
setTimeout
r2 @ [chunk-MNOQBK7E.js?v=1ec0564b:131](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A131)
requestAnimationFrame
w @ [chunk-MNOQBK7E.js?v=1ec0564b:133](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A133)
c.diffed @ [chunk-MNOQBK7E.js?v=1ec0564b:102](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A102)
l.diffed @ @electric-sql_pglite[-react.js?v=1ec0564b:186](about:blank)
(anonymous) @ @preact_signals.js?v=1ec0564b:509
O @ [chunk-XSBY5KNH.js?v=1ec0564b:171](http://chunk-xsby5knh.js/?v=1ec0564b%3A171)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
q @ [chunk-XSBY5KNH.js?v=1ec0564b:214](http://chunk-xsby5knh.js/?v=1ec0564b%3A214)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:170](http://chunk-xsby5knh.js/?v=1ec0564b%3A170)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
q @ [chunk-XSBY5KNH.js?v=1ec0564b:214](http://chunk-xsby5knh.js/?v=1ec0564b%3A214)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:170](http://chunk-xsby5knh.js/?v=1ec0564b%3A170)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
q @ [chunk-XSBY5KNH.js?v=1ec0564b:214](http://chunk-xsby5knh.js/?v=1ec0564b%3A214)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:170](http://chunk-xsby5knh.js/?v=1ec0564b%3A170)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
G @ [chunk-XSBY5KNH.js?v=1ec0564b:247](http://chunk-xsby5knh.js/?v=1ec0564b%3A247)
(anonymous) @ index.tsx:13
Just for clarification, index.tsx:13 is <PGliteProvider db={db} >
The top most link in the call stack goes to this pglite function:
function P3(e, t, n) {
let o = y2(), c = A(t), f = A(void 0), i, T3 = false;
typeof e != "string" && !(e instanceof Promise) && (i = e, T3 = f.current !== i, f.current = i);
let [u2, v] = d(i?.initialResults), d2 = c.current;
return k2(c.current, t) || (c.current = t, d2 = t), y(() => {
let l2 = false, s = (r) => {
l2 || v(r);
};
if (typeof e == "string") {
let r = n !== void 0 ? o.live.incrementalQuery(e, d2, n, s) : o.live.query(e, d2, s);
return () => {
l2 = true, r.then(({ unsubscribe: L }) => L());
};
} else {
if (e instanceof Promise) return e.then((r) => {
l2 || (f.current = r, v(r.initialResults), r.subscribe(s));
}), () => {
l2 = true, f.current?.unsubscribe(s);
};
if (i) return v(i.initialResults), i.subscribe(s), () => {
l2 = true, i.unsubscribe(s);
};
throw new Error("Should never happen");
}
}, [o, n, e, d2, i]), T3 && i ? i.initialResults : u2 && { rows: u2.rows, fields: u2.fields, totalCount: u2.totalCount, offset: u2.offset, limit: u2.limit };
}
more specificly the throw new Error("Should never happen"); - line.
Well, i guess im a magician, that i make the impossible come true.
What could i do wrong? Any help is appreciated.