on-zero 0.4.39 → 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 +22 -5
- package/dist/cjs/createUseQuery.native.js +22 -5
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +15 -17
- package/dist/cjs/createUseQueryDirect.native.js +22 -20
- package/dist/cjs/createUseQueryDirect.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 +22 -6
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +22 -6
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +16 -18
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +23 -21
- package/dist/esm/createUseQueryDirect.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 +41 -6
- package/src/createUseQueryDirect.tsx +27 -15
- 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/useQuery.empty.test.d.ts +5 -0
- package/types/useQuery.empty.test.d.ts.map +1 -0
|
@@ -23,16 +23,30 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
23
23
|
var createUseQuery_exports = {};
|
|
24
24
|
__export(createUseQuery_exports, {
|
|
25
25
|
createUseQuery: () => createUseQuery,
|
|
26
|
+
emptyResponseFor: () => emptyResponseFor,
|
|
26
27
|
parseUseQueryArgs: () => parseUseQueryArgs
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(createUseQuery_exports);
|
|
29
30
|
var import_react = require("@rocicorp/zero/react");
|
|
31
|
+
var import_bindings = require("@rocicorp/zero/bindings");
|
|
30
32
|
var import_react2 = require("react");
|
|
31
33
|
var import_useZeroDebug = require("./helpers/useZeroDebug.cjs");
|
|
32
34
|
var import_resolveQuery = require("./resolveQuery.cjs");
|
|
33
|
-
const
|
|
35
|
+
const EMPTY_PLURAL = Object.freeze([]);
|
|
36
|
+
const RESULT_UNKNOWN = Object.freeze({
|
|
34
37
|
type: "unknown"
|
|
35
|
-
}
|
|
38
|
+
});
|
|
39
|
+
const EMPTY_RESPONSE_PLURAL = Object.freeze([EMPTY_PLURAL, RESULT_UNKNOWN]);
|
|
40
|
+
const EMPTY_RESPONSE_SINGULAR = Object.freeze([void 0, RESULT_UNKNOWN]);
|
|
41
|
+
function emptyResponseFor(queryRequest) {
|
|
42
|
+
try {
|
|
43
|
+
const query = (0, import_bindings.addContextToQuery)(queryRequest, {});
|
|
44
|
+
const internals = (0, import_bindings.asQueryInternals)(query);
|
|
45
|
+
return internals.format.singular ? EMPTY_RESPONSE_SINGULAR : EMPTY_RESPONSE_PLURAL;
|
|
46
|
+
} catch {
|
|
47
|
+
return EMPTY_RESPONSE_PLURAL;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
36
50
|
function parseUseQueryArgs(paramsOrOptions, optionsArg) {
|
|
37
51
|
const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
|
|
38
52
|
return {
|
|
@@ -45,11 +59,11 @@ function createUseQuery({
|
|
|
45
59
|
customQueries
|
|
46
60
|
}) {
|
|
47
61
|
if (typeof window === "undefined") {
|
|
48
|
-
return () =>
|
|
62
|
+
return () => EMPTY_RESPONSE_PLURAL;
|
|
49
63
|
}
|
|
50
64
|
function useQuery(...args) {
|
|
51
65
|
const disableMode = (0, import_react2.useContext)(DisabledContext);
|
|
52
|
-
const lastRef = (0, import_react2.useRef)(
|
|
66
|
+
const lastRef = (0, import_react2.useRef)(EMPTY_RESPONSE_PLURAL);
|
|
53
67
|
const [fn, paramsOrOptions, optionsArg] = args;
|
|
54
68
|
const {
|
|
55
69
|
queryRequest,
|
|
@@ -82,9 +96,12 @@ function createUseQuery({
|
|
|
82
96
|
return out;
|
|
83
97
|
}
|
|
84
98
|
if (disableMode === "last-value") {
|
|
99
|
+
if (lastRef.current === EMPTY_RESPONSE_PLURAL) {
|
|
100
|
+
return emptyResponseFor(queryRequest);
|
|
101
|
+
}
|
|
85
102
|
return lastRef.current;
|
|
86
103
|
}
|
|
87
|
-
return
|
|
104
|
+
return emptyResponseFor(queryRequest);
|
|
88
105
|
}
|
|
89
106
|
return useQuery;
|
|
90
107
|
}
|
|
@@ -25,10 +25,12 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
25
25
|
var createUseQuery_exports = {};
|
|
26
26
|
__export(createUseQuery_exports, {
|
|
27
27
|
createUseQuery: () => createUseQuery,
|
|
28
|
+
emptyResponseFor: () => emptyResponseFor,
|
|
28
29
|
parseUseQueryArgs: () => parseUseQueryArgs
|
|
29
30
|
});
|
|
30
31
|
module.exports = __toCommonJS(createUseQuery_exports);
|
|
31
32
|
var import_react = require("@rocicorp/zero/react");
|
|
33
|
+
var import_bindings = require("@rocicorp/zero/bindings");
|
|
32
34
|
var import_react2 = require("react");
|
|
33
35
|
var import_useZeroDebug = require("./helpers/useZeroDebug.native.js");
|
|
34
36
|
var import_resolveQuery = require("./resolveQuery.native.js");
|
|
@@ -37,9 +39,21 @@ function _type_of(obj) {
|
|
|
37
39
|
|
|
38
40
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
39
41
|
}
|
|
40
|
-
var
|
|
42
|
+
var EMPTY_PLURAL = Object.freeze([]);
|
|
43
|
+
var RESULT_UNKNOWN = Object.freeze({
|
|
41
44
|
type: "unknown"
|
|
42
|
-
}
|
|
45
|
+
});
|
|
46
|
+
var EMPTY_RESPONSE_PLURAL = Object.freeze([EMPTY_PLURAL, RESULT_UNKNOWN]);
|
|
47
|
+
var EMPTY_RESPONSE_SINGULAR = Object.freeze([void 0, RESULT_UNKNOWN]);
|
|
48
|
+
function emptyResponseFor(queryRequest) {
|
|
49
|
+
try {
|
|
50
|
+
var query = (0, import_bindings.addContextToQuery)(queryRequest, {});
|
|
51
|
+
var internals = (0, import_bindings.asQueryInternals)(query);
|
|
52
|
+
return internals.format.singular ? EMPTY_RESPONSE_SINGULAR : EMPTY_RESPONSE_PLURAL;
|
|
53
|
+
} catch (e) {
|
|
54
|
+
return EMPTY_RESPONSE_PLURAL;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
43
57
|
function parseUseQueryArgs(paramsOrOptions, optionsArg) {
|
|
44
58
|
var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions === "undefined" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
|
|
45
59
|
return {
|
|
@@ -54,7 +68,7 @@ function createUseQuery(param) {
|
|
|
54
68
|
} = param;
|
|
55
69
|
if (typeof window === "undefined") {
|
|
56
70
|
return function () {
|
|
57
|
-
return
|
|
71
|
+
return EMPTY_RESPONSE_PLURAL;
|
|
58
72
|
};
|
|
59
73
|
}
|
|
60
74
|
function useQuery() {
|
|
@@ -62,7 +76,7 @@ function createUseQuery(param) {
|
|
|
62
76
|
args[_key] = arguments[_key];
|
|
63
77
|
}
|
|
64
78
|
var disableMode = (0, import_react2.useContext)(DisabledContext);
|
|
65
|
-
var lastRef = (0, import_react2.useRef)(
|
|
79
|
+
var lastRef = (0, import_react2.useRef)(EMPTY_RESPONSE_PLURAL);
|
|
66
80
|
var [fn, paramsOrOptions, optionsArg] = args;
|
|
67
81
|
var {
|
|
68
82
|
queryRequest,
|
|
@@ -95,9 +109,12 @@ function createUseQuery(param) {
|
|
|
95
109
|
return out;
|
|
96
110
|
}
|
|
97
111
|
if (disableMode === "last-value") {
|
|
112
|
+
if (lastRef.current === EMPTY_RESPONSE_PLURAL) {
|
|
113
|
+
return emptyResponseFor(queryRequest);
|
|
114
|
+
}
|
|
98
115
|
return lastRef.current;
|
|
99
116
|
}
|
|
100
|
-
return
|
|
117
|
+
return emptyResponseFor(queryRequest);
|
|
101
118
|
}
|
|
102
119
|
return useQuery;
|
|
103
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","parseUseQueryArgs","module","exports","import_react","require","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","emptyResponseFor","parseUseQueryArgs","module","exports","import_react","require","import_bindings","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","queryRequest","query","addContextToQuery","internals","asQueryInternals","format","singular","e","paramsOrOptions","optionsArg","hasParams","params","options","param","DisabledContext","customQueries","window","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","fn","useMemo","opts","queryRequest2","resolveQuery"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -30,14 +30,7 @@ var import_helpers = require("@take-out/helpers");
|
|
|
30
30
|
var import_react = require("react");
|
|
31
31
|
var import_createUseQuery = require("./createUseQuery.cjs");
|
|
32
32
|
var import_resolveQuery = require("./resolveQuery.cjs");
|
|
33
|
-
const EMPTY_RESPONSE = [null, {
|
|
34
|
-
type: "unknown"
|
|
35
|
-
}];
|
|
36
33
|
const DISABLED_SUBSCRIBE = () => () => {};
|
|
37
|
-
const DISABLED_SNAPSHOT = [void 0, {
|
|
38
|
-
type: "unknown"
|
|
39
|
-
}];
|
|
40
|
-
const getDisabledSnapshot = () => DISABLED_SNAPSHOT;
|
|
41
34
|
const emptyArray = [];
|
|
42
35
|
const resultTypeUnknown = {
|
|
43
36
|
type: "unknown"
|
|
@@ -186,12 +179,11 @@ function createUseQueryDirect({
|
|
|
186
179
|
zeroVersion
|
|
187
180
|
}) {
|
|
188
181
|
if (typeof window === "undefined") {
|
|
189
|
-
return ()
|
|
182
|
+
return _fn => (0, import_createUseQuery.emptyResponseFor)(void 0);
|
|
190
183
|
}
|
|
191
184
|
const directViewStore = new DirectViewStore();
|
|
192
185
|
function useQueryDirect(...args) {
|
|
193
186
|
const disableMode = (0, import_react.useContext)(DisabledContext);
|
|
194
|
-
const lastRef = (0, import_react.useRef)(EMPTY_RESPONSE);
|
|
195
187
|
const [fn, paramsOrOptions, optionsArg] = args;
|
|
196
188
|
const version = (0, import_helpers.useEmitterValue)(zeroVersion);
|
|
197
189
|
const {
|
|
@@ -207,17 +199,23 @@ function createUseQueryDirect({
|
|
|
207
199
|
ttl = options.ttl ?? import_bindings.DEFAULT_TTL_MS;
|
|
208
200
|
}
|
|
209
201
|
const paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
202
|
+
const queryRequest = (0, import_react.useMemo)(() => (0, import_resolveQuery.resolveQuery)({
|
|
203
|
+
customQueries,
|
|
204
|
+
fn,
|
|
205
|
+
params
|
|
206
|
+
}),
|
|
207
|
+
// params is keyed by paramsKey
|
|
208
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
209
|
+
[fn, paramsKey]);
|
|
210
|
+
const emptyForQuery = (0, import_react.useMemo)(() => (0, import_createUseQuery.emptyResponseFor)(queryRequest), [queryRequest]);
|
|
211
|
+
const lastRef = (0, import_react.useRef)(emptyForQuery);
|
|
210
212
|
const view = (0, import_react.useMemo)(() => {
|
|
211
213
|
const zero = getZero();
|
|
212
214
|
if (!zero) return null;
|
|
213
|
-
const queryRequest = (0, import_resolveQuery.resolveQuery)({
|
|
214
|
-
customQueries,
|
|
215
|
-
fn,
|
|
216
|
-
params
|
|
217
|
-
});
|
|
218
215
|
return directViewStore.getView(zero, queryRequest, enabled, ttl);
|
|
219
|
-
}, [
|
|
220
|
-
const
|
|
216
|
+
}, [queryRequest, enabled, ttl, version]);
|
|
217
|
+
const getEmpty = () => emptyForQuery;
|
|
218
|
+
const out = (0, import_react.useSyncExternalStore)(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
221
219
|
if (!disableMode) {
|
|
222
220
|
lastRef.current = out;
|
|
223
221
|
return out;
|
|
@@ -225,7 +223,7 @@ function createUseQueryDirect({
|
|
|
225
223
|
if (disableMode === "last-value") {
|
|
226
224
|
return lastRef.current;
|
|
227
225
|
}
|
|
228
|
-
return
|
|
226
|
+
return emptyForQuery;
|
|
229
227
|
}
|
|
230
228
|
return useQueryDirect;
|
|
231
229
|
}
|
|
@@ -64,18 +64,9 @@ function _define_property(obj, key, value) {
|
|
|
64
64
|
}
|
|
65
65
|
return obj;
|
|
66
66
|
}
|
|
67
|
-
var EMPTY_RESPONSE = [null, {
|
|
68
|
-
type: "unknown"
|
|
69
|
-
}];
|
|
70
67
|
var DISABLED_SUBSCRIBE = function () {
|
|
71
68
|
return function () {};
|
|
72
69
|
};
|
|
73
|
-
var DISABLED_SNAPSHOT = [void 0, {
|
|
74
|
-
type: "unknown"
|
|
75
|
-
}];
|
|
76
|
-
var getDisabledSnapshot = function () {
|
|
77
|
-
return DISABLED_SNAPSHOT;
|
|
78
|
-
};
|
|
79
70
|
var emptyArray = [];
|
|
80
71
|
var resultTypeUnknown = {
|
|
81
72
|
type: "unknown"
|
|
@@ -284,8 +275,8 @@ function createUseQueryDirect(param) {
|
|
|
284
275
|
zeroVersion
|
|
285
276
|
} = param;
|
|
286
277
|
if (typeof window === "undefined") {
|
|
287
|
-
return function () {
|
|
288
|
-
return
|
|
278
|
+
return function (_fn) {
|
|
279
|
+
return (0, import_createUseQuery.emptyResponseFor)(void 0);
|
|
289
280
|
};
|
|
290
281
|
}
|
|
291
282
|
var directViewStore = new DirectViewStore();
|
|
@@ -294,7 +285,6 @@ function createUseQueryDirect(param) {
|
|
|
294
285
|
args[_key] = arguments[_key];
|
|
295
286
|
}
|
|
296
287
|
var disableMode = (0, import_react.useContext)(DisabledContext);
|
|
297
|
-
var lastRef = (0, import_react.useRef)(EMPTY_RESPONSE);
|
|
298
288
|
var [fn, paramsOrOptions, optionsArg] = args;
|
|
299
289
|
var version = (0, import_helpers.useEmitterValue)(zeroVersion);
|
|
300
290
|
var {
|
|
@@ -311,20 +301,32 @@ function createUseQueryDirect(param) {
|
|
|
311
301
|
ttl = (_options_ttl = options.ttl) !== null && _options_ttl !== void 0 ? _options_ttl : import_bindings.DEFAULT_TTL_MS;
|
|
312
302
|
}
|
|
313
303
|
var paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
314
|
-
var
|
|
315
|
-
|
|
316
|
-
if (!zero) return null;
|
|
317
|
-
var queryRequest = (0, import_resolveQuery.resolveQuery)({
|
|
304
|
+
var queryRequest = (0, import_react.useMemo)(function () {
|
|
305
|
+
return (0, import_resolveQuery.resolveQuery)({
|
|
318
306
|
customQueries,
|
|
319
307
|
fn,
|
|
320
308
|
params
|
|
321
309
|
});
|
|
310
|
+
},
|
|
311
|
+
// params is keyed by paramsKey
|
|
312
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
313
|
+
[fn, paramsKey]);
|
|
314
|
+
var emptyForQuery = (0, import_react.useMemo)(function () {
|
|
315
|
+
return (0, import_createUseQuery.emptyResponseFor)(queryRequest);
|
|
316
|
+
}, [queryRequest]);
|
|
317
|
+
var lastRef = (0, import_react.useRef)(emptyForQuery);
|
|
318
|
+
var view = (0, import_react.useMemo)(function () {
|
|
319
|
+
var zero = getZero();
|
|
320
|
+
if (!zero) return null;
|
|
322
321
|
return directViewStore.getView(zero, queryRequest, enabled, ttl);
|
|
323
322
|
},
|
|
324
|
-
//
|
|
323
|
+
// version re-materializes on a new zero
|
|
325
324
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
326
|
-
[
|
|
327
|
-
var
|
|
325
|
+
[queryRequest, enabled, ttl, version]);
|
|
326
|
+
var getEmpty = function () {
|
|
327
|
+
return emptyForQuery;
|
|
328
|
+
};
|
|
329
|
+
var out = (0, import_react.useSyncExternalStore)(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
328
330
|
if (!disableMode) {
|
|
329
331
|
lastRef.current = out;
|
|
330
332
|
return out;
|
|
@@ -332,7 +334,7 @@ function createUseQueryDirect(param) {
|
|
|
332
334
|
if (disableMode === "last-value") {
|
|
333
335
|
return lastRef.current;
|
|
334
336
|
}
|
|
335
|
-
return
|
|
337
|
+
return emptyForQuery;
|
|
336
338
|
}
|
|
337
339
|
return useQueryDirect;
|
|
338
340
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQueryDirect_exports","__export","createUseQueryDirect","module","exports","import_bindings","require","import_helpers","import_react","import_createUseQuery","import_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","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQueryDirect_exports","__export","createUseQueryDirect","module","exports","import_bindings","require","import_helpers","import_react","import_createUseQuery","import_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","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","deepClone","snapshot","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","listener","err","return","destroyView","materializeIfNeeded","subscribe","notify","add","destroyTimer","clearTimeout","delete","size","setTimeout"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -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 {
|
|
@@ -17,11 +30,11 @@ function createUseQuery({
|
|
|
17
30
|
customQueries
|
|
18
31
|
}) {
|
|
19
32
|
if (typeof window === "undefined") {
|
|
20
|
-
return () =>
|
|
33
|
+
return () => EMPTY_RESPONSE_PLURAL;
|
|
21
34
|
}
|
|
22
35
|
function useQuery(...args) {
|
|
23
36
|
const disableMode = useContext(DisabledContext);
|
|
24
|
-
const lastRef = useRef(
|
|
37
|
+
const lastRef = useRef(EMPTY_RESPONSE_PLURAL);
|
|
25
38
|
const [fn, paramsOrOptions, optionsArg] = args;
|
|
26
39
|
const {
|
|
27
40
|
queryRequest,
|
|
@@ -54,11 +67,14 @@ function createUseQuery({
|
|
|
54
67
|
return out;
|
|
55
68
|
}
|
|
56
69
|
if (disableMode === "last-value") {
|
|
70
|
+
if (lastRef.current === EMPTY_RESPONSE_PLURAL) {
|
|
71
|
+
return emptyResponseFor(queryRequest);
|
|
72
|
+
}
|
|
57
73
|
return lastRef.current;
|
|
58
74
|
}
|
|
59
|
-
return
|
|
75
|
+
return emptyResponseFor(queryRequest);
|
|
60
76
|
}
|
|
61
77
|
return useQuery;
|
|
62
78
|
}
|
|
63
|
-
export { createUseQuery, parseUseQueryArgs };
|
|
79
|
+
export { createUseQuery, emptyResponseFor, parseUseQueryArgs };
|
|
64
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":"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","ignoreList":[]}
|