on-zero 0.4.38 → 0.4.41
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 +24 -5
- package/dist/cjs/createUseQuery.native.js +26 -5
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +17 -17
- package/dist/cjs/createUseQueryDirect.native.js +25 -19
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +34 -30
- package/dist/cjs/createZeroClient.native.js +5 -1
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.cjs +1 -0
- package/dist/cjs/multiInstanceNested.test.native.js +1 -0
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.cjs +70 -0
- package/dist/cjs/useQuery.empty.test.native.js +87 -0
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -0
- package/dist/esm/createUseQuery.mjs +24 -6
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +26 -6
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +18 -18
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +26 -20
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +34 -30
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +5 -1
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/multiInstanceNested.test.mjs +1 -0
- package/dist/esm/multiInstanceNested.test.mjs.map +1 -1
- package/dist/esm/multiInstanceNested.test.native.js +1 -0
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.mjs +71 -0
- package/dist/esm/useQuery.empty.test.mjs.map +1 -0
- package/dist/esm/useQuery.empty.test.native.js +85 -0
- package/dist/esm/useQuery.empty.test.native.js.map +1 -0
- package/package.json +2 -2
- package/src/createUseQuery.tsx +49 -10
- package/src/createUseQueryDirect.tsx +30 -15
- package/src/createZeroClient.tsx +14 -4
- package/src/multiInstanceNested.test.tsx +3 -0
- package/src/useQuery.empty.test.tsx +98 -0
- package/types/createUseQuery.d.ts +3 -0
- 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/useQuery.empty.test.d.ts +5 -0
- package/types/useQuery.empty.test.d.ts.map +1 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var import_zero = require("@rocicorp/zero");
|
|
2
|
+
var import_react = require("react");
|
|
3
|
+
var import_client = require("react-dom/client");
|
|
4
|
+
var import_vitest = require("vitest");
|
|
5
|
+
var import_createZeroClient = require("./createZeroClient.cjs");
|
|
6
|
+
var import_zql = require("./zql.cjs");
|
|
7
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
9
|
+
const todoTable = (0, import_zero.table)("todo").columns({
|
|
10
|
+
id: (0, import_zero.string)(),
|
|
11
|
+
title: (0, import_zero.string)(),
|
|
12
|
+
createdAt: (0, import_zero.number)()
|
|
13
|
+
}).primaryKey("id");
|
|
14
|
+
const schema = (0, import_zero.createSchema)({
|
|
15
|
+
tables: [todoTable]
|
|
16
|
+
});
|
|
17
|
+
const allTodos = _args => import_zql.zql.todo.orderBy("createdAt", "desc");
|
|
18
|
+
const oneTodo = args => import_zql.zql.todo.where("id", args.id).one();
|
|
19
|
+
const client = (0, import_createZeroClient.createZeroClient)({
|
|
20
|
+
schema,
|
|
21
|
+
models: {},
|
|
22
|
+
groupedQueries: {
|
|
23
|
+
todo: {
|
|
24
|
+
allTodos,
|
|
25
|
+
oneTodo
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
instanceName: "empty-shape-test"
|
|
29
|
+
});
|
|
30
|
+
let container;
|
|
31
|
+
let root;
|
|
32
|
+
(0, import_vitest.beforeEach)(() => {
|
|
33
|
+
container = document.createElement("div");
|
|
34
|
+
root = (0, import_client.createRoot)(container);
|
|
35
|
+
});
|
|
36
|
+
(0, import_vitest.afterEach)(() => {
|
|
37
|
+
(0, import_react.act)(() => root.unmount());
|
|
38
|
+
});
|
|
39
|
+
function renderWithDisabled(useHook) {
|
|
40
|
+
let captured;
|
|
41
|
+
const Probe = () => {
|
|
42
|
+
captured = useHook();
|
|
43
|
+
return null;
|
|
44
|
+
};
|
|
45
|
+
(0, import_react.act)(() => {
|
|
46
|
+
root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
|
|
47
|
+
authData: {},
|
|
48
|
+
userID: "anon",
|
|
49
|
+
disable: true,
|
|
50
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Probe, {})
|
|
51
|
+
}));
|
|
52
|
+
});
|
|
53
|
+
if (captured === void 0) throw new Error("Probe did not render");
|
|
54
|
+
return captured;
|
|
55
|
+
}
|
|
56
|
+
(0, import_vitest.test)("useQuery returns [] (not null) for plural queries under DisabledContext", () => {
|
|
57
|
+
const [data, info] = renderWithDisabled(() => client.useQuery(allTodos));
|
|
58
|
+
(0, import_vitest.expect)(Array.isArray(data)).toBe(true);
|
|
59
|
+
(0, import_vitest.expect)(data.length).toBe(0);
|
|
60
|
+
(0, import_vitest.expect)(data.filter(() => true)).toEqual([]);
|
|
61
|
+
(0, import_vitest.expect)(data.find(() => true)).toBeUndefined();
|
|
62
|
+
(0, import_vitest.expect)(info?.type).toBe("unknown");
|
|
63
|
+
});
|
|
64
|
+
(0, import_vitest.test)("useQuery returns undefined (not null) for singular queries under DisabledContext", () => {
|
|
65
|
+
const [data, info] = renderWithDisabled(() => client.useQuery(oneTodo, {
|
|
66
|
+
id: "x"
|
|
67
|
+
}));
|
|
68
|
+
(0, import_vitest.expect)(data).toBeUndefined();
|
|
69
|
+
(0, import_vitest.expect)(info?.type).toBe("unknown");
|
|
70
|
+
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
var import_zero = require("@rocicorp/zero");
|
|
5
|
+
var import_react = require("react");
|
|
6
|
+
var import_client = require("react-dom/client");
|
|
7
|
+
var import_vitest = require("vitest");
|
|
8
|
+
var import_createZeroClient = require("./createZeroClient.native.js");
|
|
9
|
+
var import_zql = require("./zql.native.js");
|
|
10
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
11
|
+
var todoTable = (0, import_zero.table)("todo").columns({
|
|
12
|
+
id: (0, import_zero.string)(),
|
|
13
|
+
title: (0, import_zero.string)(),
|
|
14
|
+
createdAt: (0, import_zero.number)()
|
|
15
|
+
}).primaryKey("id");
|
|
16
|
+
var schema = (0, import_zero.createSchema)({
|
|
17
|
+
tables: [todoTable]
|
|
18
|
+
});
|
|
19
|
+
var allTodos = function (_args) {
|
|
20
|
+
return import_zql.zql.todo.orderBy("createdAt", "desc");
|
|
21
|
+
};
|
|
22
|
+
var oneTodo = function (args) {
|
|
23
|
+
return import_zql.zql.todo.where("id", args.id).one();
|
|
24
|
+
};
|
|
25
|
+
var client = (0, import_createZeroClient.createZeroClient)({
|
|
26
|
+
schema,
|
|
27
|
+
models: {},
|
|
28
|
+
groupedQueries: {
|
|
29
|
+
todo: {
|
|
30
|
+
allTodos,
|
|
31
|
+
oneTodo
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
instanceName: "empty-shape-test"
|
|
35
|
+
});
|
|
36
|
+
var container;
|
|
37
|
+
var root;
|
|
38
|
+
(0, import_vitest.beforeEach)(function () {
|
|
39
|
+
container = document.createElement("div");
|
|
40
|
+
root = (0, import_client.createRoot)(container);
|
|
41
|
+
});
|
|
42
|
+
(0, import_vitest.afterEach)(function () {
|
|
43
|
+
(0, import_react.act)(function () {
|
|
44
|
+
return root.unmount();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
function renderWithDisabled(useHook) {
|
|
48
|
+
var captured;
|
|
49
|
+
var Probe = function () {
|
|
50
|
+
captured = useHook();
|
|
51
|
+
return null;
|
|
52
|
+
};
|
|
53
|
+
(0, import_react.act)(function () {
|
|
54
|
+
root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
|
|
55
|
+
authData: {},
|
|
56
|
+
userID: "anon",
|
|
57
|
+
disable: true,
|
|
58
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Probe, {})
|
|
59
|
+
}));
|
|
60
|
+
});
|
|
61
|
+
if (captured === void 0) throw new Error("Probe did not render");
|
|
62
|
+
return captured;
|
|
63
|
+
}
|
|
64
|
+
(0, import_vitest.test)("useQuery returns [] (not null) for plural queries under DisabledContext", function () {
|
|
65
|
+
var [data, info] = renderWithDisabled(function () {
|
|
66
|
+
return client.useQuery(allTodos);
|
|
67
|
+
});
|
|
68
|
+
(0, import_vitest.expect)(Array.isArray(data)).toBe(true);
|
|
69
|
+
(0, import_vitest.expect)(data.length).toBe(0);
|
|
70
|
+
(0, import_vitest.expect)(data.filter(function () {
|
|
71
|
+
return true;
|
|
72
|
+
})).toEqual([]);
|
|
73
|
+
(0, import_vitest.expect)(data.find(function () {
|
|
74
|
+
return true;
|
|
75
|
+
})).toBeUndefined();
|
|
76
|
+
(0, import_vitest.expect)(info === null || info === void 0 ? void 0 : info.type).toBe("unknown");
|
|
77
|
+
});
|
|
78
|
+
(0, import_vitest.test)("useQuery returns undefined (not null) for singular queries under DisabledContext", function () {
|
|
79
|
+
var [data, info] = renderWithDisabled(function () {
|
|
80
|
+
return client.useQuery(oneTodo, {
|
|
81
|
+
id: "x"
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
(0, import_vitest.expect)(data).toBeUndefined();
|
|
85
|
+
(0, import_vitest.expect)(info === null || info === void 0 ? void 0 : info.type).toBe("unknown");
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=useQuery.empty.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_jsx_runtime","require","import_zero","import_react","import_client","import_vitest","import_createZeroClient","import_zql","globalThis","IS_REACT_ACT_ENVIRONMENT","todoTable","table","columns","id","string","title","createdAt","number","primaryKey","schema","createSchema","tables","allTodos","_args","zql","todo","orderBy","oneTodo","args","where","one","client","createZeroClient","models","groupedQueries","instanceName","container","root","beforeEach","document","createElement","createRoot","afterEach","act","unmount","renderWithDisabled","useHook","captured","Probe","render","jsx","ProvideZero","authData","userID","disable","children"],"sources":["../../src/useQuery.empty.test.tsx"],"sourcesContent":[null],"mappings":"AAQA;;AACA,IAAAA,kBAAoB,GAAAC,OAAA;AACpB,IAAAC,WAAA,GAAAD,OAAsC;AACtC,IAAAE,YAAA,GAAAF,OAAoD;AAEpD,IAAAG,aAAA,GAAAH,OAAA,mBAAiC;AACjC,IAAAI,aAAoB,GAAAJ,OAAA;AA0DZ,IAAAK,uBAAA,GAAAL,OAAA;AApDR,IAAAM,UAAW,GAAAN,OAAA;AAEXO,UAAM,CAAAC,wBAAY,OAAM;AAGxB,IAAAC,SAAM,OAASR,WAAA,CAAAS,KAAA,QAAa,EAAEC,OAAA,CAAQ;EAItCC,EAAA,EAAM,IAAAX,WAAY,CAAAY,MACf;EACCC,KAAA,MAAAb,WAAA,CAAAY,MAAA;EACAE,SAAA,MAAAd,WAAA,CAAAe,MAAA;AACF,GAAAC,UAAA;AACF,IAAAC,MAAM,OAAWjB,WACd,CAAAkB,YAAsE;EAIzEC,MAAM,GACJX,SAAA;AACS,EACT;AAAgB,IACdY,QAAQ,YAAAA,CAAUC,KAAA,EAAQ;EAC5B,OAAAhB,UAAA,CAAAiB,GAAA,CAAAC,IAAA,CAAAC,OAAA;AAAA;AAEF,IAACC,OAAA,YAAAA,CAAAC,IAAA;EAED,OAAIrB,UAAA,CAAAiB,GAAA,CAAAC,IAAA,CAAAI,KAAA,OAAAD,IAAA,CAAAf,EAAA,EAAAiB,GAAA;AACJ;AAAI,IAEJC,MAAA,OAAAzB,uBAAiB,CAAA0B,gBAAA;EACfb,MAAA;EACAc,MAAA;EACDC,cAAA;IAEDT,IAAA;MACEH,QAAA;MACDK;IAED;EACE;EACAQ,YAAM,EAAQ;AACZ;AACA,IAAAC,SAAO;AAAA,IACTC,IAAA;AACA,IAAAhC,aAAA,CAAAiC,UAAI,EAAM;EAIRF,SAAK,GAAAG,QAAA,CAAAC,aAAA;EAAAH,IACH,OAAAjC,aAAA,CAAAqC,UAAA,EAAAL,SAAA;AAEA;AACF,EACF,EAAC/B,aAAA,CAAAqC,SAAA;EACD,IAAIvC,YAAA,CAAawC,GAAA,cAAiB;IAClC,OAAON,IAAA,CAAAO,OAAA;EACT;AAAA;AAKE,SAAOC,kBAAcA,CAAAC,OAAA;EACrB,IAAAC,QAAA;EACA,IAAAC,KAAA,YAAAA,CAAA;IAEAD,QAAA,GAAAD,OAAA;IACA;EACA;EACD,IAAA3C,YAAA,CAAAwC,GAAA;IAEDN,IAAA,CAAAY,MAAA,gBAAK,IAAAjD,kBAAA,CAAAkD,GAAA,EAAAnB,MAAA,CAAAoB,WAAA;MACHC,QAAO,EAAM;MAEbC,MAAA;MACAC,OAAA;MACDC,QAAA,qBAAAvD,kBAAA,CAAAkD,GAAA,EAAAF,KAAA","ignoreList":[]}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
2
|
+
import { addContextToQuery, asQueryInternals } from "@rocicorp/zero/bindings";
|
|
2
3
|
import { useContext, useMemo, useRef } from "react";
|
|
3
4
|
import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
|
|
4
5
|
import { resolveQuery } from "./resolveQuery.mjs";
|
|
5
|
-
const
|
|
6
|
+
const EMPTY_PLURAL = Object.freeze([]);
|
|
7
|
+
const RESULT_UNKNOWN = Object.freeze({
|
|
6
8
|
type: "unknown"
|
|
7
|
-
}
|
|
9
|
+
});
|
|
10
|
+
const EMPTY_RESPONSE_PLURAL = Object.freeze([EMPTY_PLURAL, RESULT_UNKNOWN]);
|
|
11
|
+
const EMPTY_RESPONSE_SINGULAR = Object.freeze([void 0, RESULT_UNKNOWN]);
|
|
12
|
+
function emptyResponseFor(queryRequest) {
|
|
13
|
+
try {
|
|
14
|
+
const query = addContextToQuery(queryRequest, {});
|
|
15
|
+
const internals = asQueryInternals(query);
|
|
16
|
+
return internals.format.singular ? EMPTY_RESPONSE_SINGULAR : EMPTY_RESPONSE_PLURAL;
|
|
17
|
+
} catch {
|
|
18
|
+
return EMPTY_RESPONSE_PLURAL;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
8
21
|
function parseUseQueryArgs(paramsOrOptions, optionsArg) {
|
|
9
22
|
const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
|
|
10
23
|
return {
|
|
@@ -16,10 +29,12 @@ function createUseQuery({
|
|
|
16
29
|
DisabledContext,
|
|
17
30
|
customQueries
|
|
18
31
|
}) {
|
|
32
|
+
if (typeof window === "undefined") {
|
|
33
|
+
return () => EMPTY_RESPONSE_PLURAL;
|
|
34
|
+
}
|
|
19
35
|
function useQuery(...args) {
|
|
20
|
-
if (typeof window === "undefined") return EMPTY_RESPONSE;
|
|
21
36
|
const disableMode = useContext(DisabledContext);
|
|
22
|
-
const lastRef = useRef(
|
|
37
|
+
const lastRef = useRef(EMPTY_RESPONSE_PLURAL);
|
|
23
38
|
const [fn, paramsOrOptions, optionsArg] = args;
|
|
24
39
|
const {
|
|
25
40
|
queryRequest,
|
|
@@ -52,11 +67,14 @@ function createUseQuery({
|
|
|
52
67
|
return out;
|
|
53
68
|
}
|
|
54
69
|
if (disableMode === "last-value") {
|
|
70
|
+
if (lastRef.current === EMPTY_RESPONSE_PLURAL) {
|
|
71
|
+
return emptyResponseFor(queryRequest);
|
|
72
|
+
}
|
|
55
73
|
return lastRef.current;
|
|
56
74
|
}
|
|
57
|
-
return
|
|
75
|
+
return emptyResponseFor(queryRequest);
|
|
58
76
|
}
|
|
59
77
|
return useQuery;
|
|
60
78
|
}
|
|
61
|
-
export { createUseQuery, parseUseQueryArgs };
|
|
79
|
+
export { createUseQuery, emptyResponseFor, parseUseQueryArgs };
|
|
62
80
|
//# sourceMappingURL=createUseQuery.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","zeroUseQuery","useContext","useMemo","useRef","useZeroDebug","resolveQuery","
|
|
1
|
+
{"version":3,"names":["useQuery","zeroUseQuery","addContextToQuery","asQueryInternals","useContext","useMemo","useRef","useZeroDebug","resolveQuery","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","emptyResponseFor","queryRequest","query","internals","format","singular","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","createUseQuery","DisabledContext","customQueries","window","args","disableMode","lastRef","fn","opts","queryRequest2","effectiveOptions","enabled","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","current"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,iBAAA,EAAmBC,gBAAA,QAAwB;AACpD,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;AAyChD,MAAMC,YAAA,GAAeC,MAAA,CAAOC,MAAA,CAAO,EAAE;AACrC,MAAMC,cAAA,GAAiBF,MAAA,CAAOC,MAAA,CAAO;EAAEE,IAAA,EAAM;AAAmB,CAAC;AACjE,MAAMC,qBAAA,GAAwBJ,MAAA,CAAOC,MAAA,CAAO,CAACF,YAAA,EAAcG,cAAc,CAAC;AAC1E,MAAMG,uBAAA,GAA0BL,MAAA,CAAOC,MAAA,CAAO,CAAC,QAAWC,cAAc,CAAC;AAQlE,SAASI,iBAAiBC,YAAA,EAA6D;EAC5F,IAAI;IACF,MAAMC,KAAA,GAAQhB,iBAAA,CAAkBe,YAAA,EAAqB,CAAC,CAAU;IAChE,MAAME,SAAA,GAAYhB,gBAAA,CAAiBe,KAAK;IACxC,OAAOC,SAAA,CAAUC,MAAA,CAAOC,QAAA,GAAWN,uBAAA,GAA0BD,qBAAA;EAC/D,QAAQ;IAGN,OAAOA,qBAAA;EACT;AACF;AAGO,SAASQ,kBAAkBC,eAAA,EAAsBC,UAAA,EAAiB;EACvE,MAAMC,SAAA,GACJD,UAAA,KAAe,UACdD,eAAA,IACC,OAAOA,eAAA,KAAoB,YAC3B,EAAE,aAAaA,eAAA,KACf,EAAE,SAASA,eAAA;EAEf,OAAO;IACLG,MAAA,EAAQD,SAAA,GAAYF,eAAA,GAAkB;IACtCI,OAAA,EAASF,SAAA,GAAYD,UAAA,GAAaD;EACpC;AACF;AAEO,SAASK,eAA0C;EACxDC,eAAA;EACAC;AACF,GAGyB;EAUvB,IAAI,OAAOC,MAAA,KAAW,aAAa;IACjC,OAAQ,MAAMjB,qBAAA;EAChB;EAEA,SAASd,SAAA,GAAYgC,IAAA,EAAkB;IACrC,MAAMC,WAAA,GAAc7B,UAAA,CAAWyB,eAAe;IAC9C,MAAMK,OAAA,GAAU5B,MAAA,CAAYQ,qBAAqB;IACjD,MAAM,CAACqB,EAAA,EAAIZ,eAAA,EAAiBC,UAAU,IAAIQ,IAAA;IAE1C,MAAM;MAAEf,YAAA;MAAcU;IAAQ,IAAItB,OAAA,CAAQ,MAAM;MAC9C,MAAM;QAAEqB,MAAA;QAAQC,OAAA,EAASS;MAAK,IAAId,iBAAA,CAAkBC,eAAA,EAAiBC,UAAU;MAC/E,MAAMa,aAAA,GAAe7B,YAAA,CAAa;QAAEsB,aAAA;QAAeK,EAAA;QAAIT;MAAO,CAAC;MAE/D,OAAO;QAAET,YAAA,EAAAoB,aAAA;QAAcV,OAAA,EAASS;MAAK;IACvC,GAAG,CAACD,EAAA,EAAIZ,eAAA,EAAiBC,UAAU,CAAC;IAQpC,MAAMc,gBAAA,GAAmBL,WAAA,GACrB,OAAON,OAAA,KAAY,YACjB,QACA;MAAE,IAAIA,OAAA,IAAW,CAAC;MAAIY,OAAA,EAAS;IAAM,IACvCZ,OAAA;IACJ,MAAMa,GAAA,GAAMvC,YAAA,CAAagB,YAAA,EAAcqB,gBAAgB;IAEvD,IAAIG,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIF,OAAA,CAAQC,GAAA,CAAIE,kBAAA,KAAuB,KAErCrC,YAAA,CAAaU,YAAA,EAAcU,OAAA,EAASa,GAAG;IAC3C;IAEA,IAAI,CAACP,WAAA,EAAa;MAChBC,OAAA,CAAQW,OAAA,GAAUL,GAAA;MAClB,OAAOA,GAAA;IACT;IAEA,IAAIP,WAAA,KAAgB,cAAc;MAIhC,IAAIC,OAAA,CAAQW,OAAA,KAAY/B,qBAAA,EAAuB;QAC7C,OAAOE,gBAAA,CAAiBC,YAAY;MACtC;MACA,OAAOiB,OAAA,CAAQW,OAAA;IACjB;IAEA,OAAO7B,gBAAA,CAAiBC,YAAY;EACtC;EAEA,OAAOjB,QAAA;AACT","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
2
|
+
import { addContextToQuery, asQueryInternals } from "@rocicorp/zero/bindings";
|
|
2
3
|
import { useContext, useMemo, useRef } from "react";
|
|
3
4
|
import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
|
|
4
5
|
import { resolveQuery } from "./resolveQuery.native.js";
|
|
@@ -7,9 +8,21 @@ function _type_of(obj) {
|
|
|
7
8
|
|
|
8
9
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
9
10
|
}
|
|
10
|
-
var
|
|
11
|
+
var EMPTY_PLURAL = Object.freeze([]);
|
|
12
|
+
var RESULT_UNKNOWN = Object.freeze({
|
|
11
13
|
type: "unknown"
|
|
12
|
-
}
|
|
14
|
+
});
|
|
15
|
+
var EMPTY_RESPONSE_PLURAL = Object.freeze([EMPTY_PLURAL, RESULT_UNKNOWN]);
|
|
16
|
+
var EMPTY_RESPONSE_SINGULAR = Object.freeze([void 0, RESULT_UNKNOWN]);
|
|
17
|
+
function emptyResponseFor(queryRequest) {
|
|
18
|
+
try {
|
|
19
|
+
var query = addContextToQuery(queryRequest, {});
|
|
20
|
+
var internals = asQueryInternals(query);
|
|
21
|
+
return internals.format.singular ? EMPTY_RESPONSE_SINGULAR : EMPTY_RESPONSE_PLURAL;
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return EMPTY_RESPONSE_PLURAL;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
13
26
|
function parseUseQueryArgs(paramsOrOptions, optionsArg) {
|
|
14
27
|
var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions === "undefined" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
|
|
15
28
|
return {
|
|
@@ -22,13 +35,17 @@ function createUseQuery(param) {
|
|
|
22
35
|
DisabledContext,
|
|
23
36
|
customQueries
|
|
24
37
|
} = param;
|
|
38
|
+
if (typeof window === "undefined") {
|
|
39
|
+
return function () {
|
|
40
|
+
return EMPTY_RESPONSE_PLURAL;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
25
43
|
function useQuery() {
|
|
26
44
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
27
45
|
args[_key] = arguments[_key];
|
|
28
46
|
}
|
|
29
|
-
if (typeof window === "undefined") return EMPTY_RESPONSE;
|
|
30
47
|
var disableMode = useContext(DisabledContext);
|
|
31
|
-
var lastRef = useRef(
|
|
48
|
+
var lastRef = useRef(EMPTY_RESPONSE_PLURAL);
|
|
32
49
|
var [fn, paramsOrOptions, optionsArg] = args;
|
|
33
50
|
var {
|
|
34
51
|
queryRequest,
|
|
@@ -61,11 +78,14 @@ function createUseQuery(param) {
|
|
|
61
78
|
return out;
|
|
62
79
|
}
|
|
63
80
|
if (disableMode === "last-value") {
|
|
81
|
+
if (lastRef.current === EMPTY_RESPONSE_PLURAL) {
|
|
82
|
+
return emptyResponseFor(queryRequest);
|
|
83
|
+
}
|
|
64
84
|
return lastRef.current;
|
|
65
85
|
}
|
|
66
|
-
return
|
|
86
|
+
return emptyResponseFor(queryRequest);
|
|
67
87
|
}
|
|
68
88
|
return useQuery;
|
|
69
89
|
}
|
|
70
|
-
export { createUseQuery, parseUseQueryArgs };
|
|
90
|
+
export { createUseQuery, emptyResponseFor, parseUseQueryArgs };
|
|
71
91
|
//# sourceMappingURL=createUseQuery.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","zeroUseQuery","useContext","useMemo","useRef","useZeroDebug","resolveQuery","_type_of","obj","Symbol","constructor","
|
|
1
|
+
{"version":3,"names":["useQuery","zeroUseQuery","addContextToQuery","asQueryInternals","useContext","useMemo","useRef","useZeroDebug","resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","emptyResponseFor","queryRequest","query","internals","format","singular","e","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","createUseQuery","param","DisabledContext","customQueries","window","_len","arguments","length","args","Array","_key","disableMode","lastRef","fn","opts","queryRequest2"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,iBAAA,EAAmBC,gBAAA,QAAwB;AACpD,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;AAyChD,SAAMC,SAAAC,GAAe;EACrB,uBAAuB;;EACvB,OAAMA,GAAA,WAAAC,MAAA,KAAwB,WAAe,IAAAD,GAAA,CAAAE,WAAc,KAAAD,MAAe,qBAAAD,GAAA;AAC1E;AAQO,IAAAG,YAAS,GAAAC,MAAA,CAAiBC,MAAA;AAC/B,IAAAC,cAAI,GAAAF,MAAA,CAAAC,MAAA;EACFE,IAAA;AACA;AACA,IAAAC,qBAAiB,GAAOJ,MAAA,CAAAC,MAAW,EACrCF,YAAQ,EAGNG,cAAO,EACT;AACF,IAAAG,uBAAA,GAAAL,MAAA,CAAAC,MAAA,EAGO,QACLC,cAAM,CAON;AAAO,SACLI,gBAAoBA,CAAAC,YAAA;EAAkB,IACtC;IACF,IAAAC,KAAA,GAAApB,iBAAA,CAAAmB,YAAA;IACF,IAAAE,SAAA,GAAApB,gBAAA,CAAAmB,KAAA;IAEO,OAASC,SAAA,CAAAC,MAA0C,CAAAC,QAAA,GAAAN,uBAAA,GAAAD,qBAAA;EACxD,SAAAQ,CAAA;IACA,OAAAR,qBAAA;EACF;AAaE;AACE,SAAAS,iBAAcA,CAAAC,eAAA,EAAAC,UAAA;EAChB,IAAAC,SAAA,GAAAD,UAAA,eAAAD,eAAA,YAAAA,eAAA,iCAAAnB,QAAA,CAAAmB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;EAEA;IACEG,MAAM,EAAAD,SAAA,GAAcF,eAAW;IAC/BI,OAAM,EAAAF,SAAU,GAAAD,UAAY,GAAAD;EAC5B;AAEA;AACE,SAAAK,cAAgBA,CAAAC,KAAA,EAAS;EACzB;IAAAC,eAAM;IAAAC;EAAe,IAAeF,KAAA;EAEpC,WAAOG,MAAE;IACX,OAAI,YAAI;MAQR,OAAMnB,qBAAmB;IAKzB;EAEA;EACE,SAAIlB,QAAQA,CAAA,EAAI;IAEd,SAAAsC,IAAA,GAAAC,SAAa,CAAAC,MAAc,EAAAC,IAAA,GAAS,IAAGC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAC3CF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAEA;IACE,IAAAC,WAAQ,GAAAxC,UAAU,CAAA+B,eAAA;IAClB,IAAAU,OAAO,GAAAvC,MAAA,CAAAY,qBAAA;IACT,KAAA4B,EAAA,EAAAlB,eAAA,EAAAC,UAAA,IAAAY,IAAA;IAEA,IAAI;MAAApB,YAAA;MAAgBW;IAAA,IAAA3B,OAAc;MAIhC,IAAI;QAAA0B,MAAQ;QAAAC,OAAA,EAAAe;MAAY,IAAApB,iBAAuB,CAAAC,eAAA,EAAAC,UAAA;MAC7C,IAAAmB,aAAO,GAAAxC,YAAiB;QAC1B4B,aAAA;QACAU,EAAA;QACFf;MAEA;MACF;QAEAV,YAAO,EAAA2B,aAAA;QACThB,OAAA,EAAAe","ignoreList":[]}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import { addContextToQuery, asQueryInternals, DEFAULT_TTL_MS, deepClone } from "@rocicorp/zero/bindings";
|
|
2
2
|
import { useEmitterValue } from "@take-out/helpers";
|
|
3
3
|
import { useContext, useMemo, useRef, useSyncExternalStore } from "react";
|
|
4
|
-
import { parseUseQueryArgs } from "./createUseQuery.mjs";
|
|
4
|
+
import { emptyResponseFor, parseUseQueryArgs } from "./createUseQuery.mjs";
|
|
5
5
|
import { resolveQuery } from "./resolveQuery.mjs";
|
|
6
|
-
const EMPTY_RESPONSE = [null, {
|
|
7
|
-
type: "unknown"
|
|
8
|
-
}];
|
|
9
6
|
const DISABLED_SUBSCRIBE = () => () => {};
|
|
10
|
-
const DISABLED_SNAPSHOT = [void 0, {
|
|
11
|
-
type: "unknown"
|
|
12
|
-
}];
|
|
13
|
-
const getDisabledSnapshot = () => DISABLED_SNAPSHOT;
|
|
14
7
|
const emptyArray = [];
|
|
15
8
|
const resultTypeUnknown = {
|
|
16
9
|
type: "unknown"
|
|
@@ -158,11 +151,12 @@ function createUseQueryDirect({
|
|
|
158
151
|
getZero,
|
|
159
152
|
zeroVersion
|
|
160
153
|
}) {
|
|
154
|
+
if (typeof window === "undefined") {
|
|
155
|
+
return _fn => emptyResponseFor(void 0);
|
|
156
|
+
}
|
|
161
157
|
const directViewStore = new DirectViewStore();
|
|
162
158
|
function useQueryDirect(...args) {
|
|
163
|
-
if (typeof window === "undefined") return EMPTY_RESPONSE;
|
|
164
159
|
const disableMode = useContext(DisabledContext);
|
|
165
|
-
const lastRef = useRef(EMPTY_RESPONSE);
|
|
166
160
|
const [fn, paramsOrOptions, optionsArg] = args;
|
|
167
161
|
const version = useEmitterValue(zeroVersion);
|
|
168
162
|
const {
|
|
@@ -178,17 +172,23 @@ function createUseQueryDirect({
|
|
|
178
172
|
ttl = options.ttl ?? DEFAULT_TTL_MS;
|
|
179
173
|
}
|
|
180
174
|
const paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
175
|
+
const queryRequest = useMemo(() => resolveQuery({
|
|
176
|
+
customQueries,
|
|
177
|
+
fn,
|
|
178
|
+
params
|
|
179
|
+
}),
|
|
180
|
+
// params is keyed by paramsKey
|
|
181
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
182
|
+
[fn, paramsKey]);
|
|
183
|
+
const emptyForQuery = useMemo(() => emptyResponseFor(queryRequest), [queryRequest]);
|
|
184
|
+
const lastRef = useRef(emptyForQuery);
|
|
181
185
|
const view = useMemo(() => {
|
|
182
186
|
const zero = getZero();
|
|
183
187
|
if (!zero) return null;
|
|
184
|
-
const queryRequest = resolveQuery({
|
|
185
|
-
customQueries,
|
|
186
|
-
fn,
|
|
187
|
-
params
|
|
188
|
-
});
|
|
189
188
|
return directViewStore.getView(zero, queryRequest, enabled, ttl);
|
|
190
|
-
}, [
|
|
191
|
-
const
|
|
189
|
+
}, [queryRequest, enabled, ttl, version]);
|
|
190
|
+
const getEmpty = () => emptyForQuery;
|
|
191
|
+
const out = useSyncExternalStore(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
192
192
|
if (!disableMode) {
|
|
193
193
|
lastRef.current = out;
|
|
194
194
|
return out;
|
|
@@ -196,7 +196,7 @@ function createUseQueryDirect({
|
|
|
196
196
|
if (disableMode === "last-value") {
|
|
197
197
|
return lastRef.current;
|
|
198
198
|
}
|
|
199
|
-
return
|
|
199
|
+
return emptyForQuery;
|
|
200
200
|
}
|
|
201
201
|
return useQueryDirect;
|
|
202
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","
|
|
1
|
+
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","emptyResponseFor","parseUseQueryArgs","resolveQuery","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","message","refetch","details","getSnapshot","data","resultType","Array","isArray","length","DirectViewWrapper","constructor","query","zero","ttl","onDematerialized","snapshot","materializeIfNeeded","view","listeners","Set","destroyTimer","onData","cloned","listener","destroyView","materialize","addListener","current","destroy","updateTTL","subscribe","notify","add","clearTimeout","delete","size","setTimeout","DirectViewStore","views","Map","getView","queryRequest","enabled","context","queryInternals","format","hash","clientID","get","dematerialized","set","createUseQueryDirect","DisabledContext","customQueries","getZero","zeroVersion","window","_fn","directViewStore","useQueryDirect","args","disableMode","fn","paramsOrOptions","optionsArg","version","params","options","paramsKey","JSON","stringify","emptyForQuery","lastRef","getEmpty","out"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { addContextToQuery, asQueryInternals, DEFAULT_TTL_MS, deepClone } from "@rocicorp/zero/bindings";
|
|
2
2
|
import { useEmitterValue } from "@take-out/helpers";
|
|
3
3
|
import { useContext, useMemo, useRef, useSyncExternalStore } from "react";
|
|
4
|
-
import { parseUseQueryArgs } from "./createUseQuery.native.js";
|
|
4
|
+
import { emptyResponseFor, parseUseQueryArgs } from "./createUseQuery.native.js";
|
|
5
5
|
import { resolveQuery } from "./resolveQuery.native.js";
|
|
6
6
|
function _class_call_check(instance, Constructor) {
|
|
7
7
|
if (!(instance instanceof Constructor)) {
|
|
@@ -35,18 +35,9 @@ function _define_property(obj, key, value) {
|
|
|
35
35
|
}
|
|
36
36
|
return obj;
|
|
37
37
|
}
|
|
38
|
-
var EMPTY_RESPONSE = [null, {
|
|
39
|
-
type: "unknown"
|
|
40
|
-
}];
|
|
41
38
|
var DISABLED_SUBSCRIBE = function () {
|
|
42
39
|
return function () {};
|
|
43
40
|
};
|
|
44
|
-
var DISABLED_SNAPSHOT = [void 0, {
|
|
45
|
-
type: "unknown"
|
|
46
|
-
}];
|
|
47
|
-
var getDisabledSnapshot = function () {
|
|
48
|
-
return DISABLED_SNAPSHOT;
|
|
49
|
-
};
|
|
50
41
|
var emptyArray = [];
|
|
51
42
|
var resultTypeUnknown = {
|
|
52
43
|
type: "unknown"
|
|
@@ -254,14 +245,17 @@ function createUseQueryDirect(param) {
|
|
|
254
245
|
getZero,
|
|
255
246
|
zeroVersion
|
|
256
247
|
} = param;
|
|
248
|
+
if (typeof window === "undefined") {
|
|
249
|
+
return function (_fn) {
|
|
250
|
+
return emptyResponseFor(void 0);
|
|
251
|
+
};
|
|
252
|
+
}
|
|
257
253
|
var directViewStore = new DirectViewStore();
|
|
258
254
|
function useQueryDirect() {
|
|
259
255
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
260
256
|
args[_key] = arguments[_key];
|
|
261
257
|
}
|
|
262
|
-
if (typeof window === "undefined") return EMPTY_RESPONSE;
|
|
263
258
|
var disableMode = useContext(DisabledContext);
|
|
264
|
-
var lastRef = useRef(EMPTY_RESPONSE);
|
|
265
259
|
var [fn, paramsOrOptions, optionsArg] = args;
|
|
266
260
|
var version = useEmitterValue(zeroVersion);
|
|
267
261
|
var {
|
|
@@ -278,20 +272,32 @@ function createUseQueryDirect(param) {
|
|
|
278
272
|
ttl = (_options_ttl = options.ttl) !== null && _options_ttl !== void 0 ? _options_ttl : DEFAULT_TTL_MS;
|
|
279
273
|
}
|
|
280
274
|
var paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
281
|
-
var
|
|
282
|
-
|
|
283
|
-
if (!zero) return null;
|
|
284
|
-
var queryRequest = resolveQuery({
|
|
275
|
+
var queryRequest = useMemo(function () {
|
|
276
|
+
return resolveQuery({
|
|
285
277
|
customQueries,
|
|
286
278
|
fn,
|
|
287
279
|
params
|
|
288
280
|
});
|
|
281
|
+
},
|
|
282
|
+
// params is keyed by paramsKey
|
|
283
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
284
|
+
[fn, paramsKey]);
|
|
285
|
+
var emptyForQuery = useMemo(function () {
|
|
286
|
+
return emptyResponseFor(queryRequest);
|
|
287
|
+
}, [queryRequest]);
|
|
288
|
+
var lastRef = useRef(emptyForQuery);
|
|
289
|
+
var view = useMemo(function () {
|
|
290
|
+
var zero = getZero();
|
|
291
|
+
if (!zero) return null;
|
|
289
292
|
return directViewStore.getView(zero, queryRequest, enabled, ttl);
|
|
290
293
|
},
|
|
291
|
-
//
|
|
294
|
+
// version re-materializes on a new zero
|
|
292
295
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
293
|
-
[
|
|
294
|
-
var
|
|
296
|
+
[queryRequest, enabled, ttl, version]);
|
|
297
|
+
var getEmpty = function () {
|
|
298
|
+
return emptyForQuery;
|
|
299
|
+
};
|
|
300
|
+
var out = useSyncExternalStore(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
295
301
|
if (!disableMode) {
|
|
296
302
|
lastRef.current = out;
|
|
297
303
|
return out;
|
|
@@ -299,7 +305,7 @@ function createUseQueryDirect(param) {
|
|
|
299
305
|
if (disableMode === "last-value") {
|
|
300
306
|
return lastRef.current;
|
|
301
307
|
}
|
|
302
|
-
return
|
|
308
|
+
return emptyForQuery;
|
|
303
309
|
}
|
|
304
310
|
return useQueryDirect;
|
|
305
311
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","parseUseQueryArgs","resolveQuery","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","
|
|
1
|
+
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","emptyResponseFor","parseUseQueryArgs","resolveQuery","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","_error_message","message","_error_error","refetch","details","getSnapshot","data","resultType","Array","isArray","DirectViewWrapper","DirectViewWrapper2","query","zero","ttl","onDematerialized","_this","listeners","Set","onData","cloned","snapshot","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","listener","err","return","destroyView","materializeIfNeeded","subscribe","notify","add","destroyTimer","clearTimeout","delete","size","setTimeout","view","materialize","addListener"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|