on-zero 0.4.22 → 0.4.24
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/combineZeroClients.cjs +101 -0
- package/dist/cjs/combineZeroClients.native.js +150 -0
- package/dist/cjs/combineZeroClients.native.js.map +1 -0
- package/dist/cjs/createUseQuery.cjs +92 -4
- package/dist/cjs/createUseQuery.native.js +130 -4
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +89 -12
- package/dist/cjs/createZeroClient.native.js +134 -43
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.cjs +65 -0
- package/dist/cjs/instanceRegistry.native.js +111 -0
- package/dist/cjs/instanceRegistry.native.js.map +1 -0
- package/dist/cjs/multiInstance.test.cjs +322 -0
- package/dist/cjs/multiInstance.test.native.js +387 -0
- package/dist/cjs/multiInstance.test.native.js.map +1 -0
- package/dist/cjs/multiInstanceNested.test.cjs +206 -0
- package/dist/cjs/multiInstanceNested.test.native.js +254 -0
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -0
- package/dist/cjs/run.cjs +5 -5
- package/dist/cjs/run.native.js +6 -5
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/zeroRunner.cjs +4 -1
- package/dist/cjs/zeroRunner.native.js +4 -1
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/esm/combineZeroClients.mjs +76 -0
- package/dist/esm/combineZeroClients.mjs.map +1 -0
- package/dist/esm/combineZeroClients.native.js +122 -0
- package/dist/esm/combineZeroClients.native.js.map +1 -0
- package/dist/esm/createUseQuery.mjs +92 -5
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +130 -5
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +93 -16
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +138 -47
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/instanceRegistry.mjs +38 -0
- package/dist/esm/instanceRegistry.mjs.map +1 -0
- package/dist/esm/instanceRegistry.native.js +81 -0
- package/dist/esm/instanceRegistry.native.js.map +1 -0
- package/dist/esm/multiInstance.test.mjs +323 -0
- package/dist/esm/multiInstance.test.mjs.map +1 -0
- package/dist/esm/multiInstance.test.native.js +385 -0
- package/dist/esm/multiInstance.test.native.js.map +1 -0
- package/dist/esm/multiInstanceNested.test.mjs +207 -0
- package/dist/esm/multiInstanceNested.test.mjs.map +1 -0
- package/dist/esm/multiInstanceNested.test.native.js +252 -0
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -0
- package/dist/esm/run.mjs +5 -5
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +6 -5
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/zeroRunner.mjs +4 -1
- package/dist/esm/zeroRunner.mjs.map +1 -1
- package/dist/esm/zeroRunner.native.js +4 -1
- package/dist/esm/zeroRunner.native.js.map +1 -1
- package/package.json +5 -3
- package/readme.md +59 -0
- package/src/combineZeroClients.tsx +186 -0
- package/src/createUseQuery.tsx +175 -12
- package/src/createZeroClient.tsx +227 -54
- package/src/index.ts +1 -0
- package/src/instanceRegistry.ts +75 -0
- package/src/multiInstance.test.tsx +284 -0
- package/src/multiInstanceNested.test.tsx +205 -0
- package/src/run.ts +7 -6
- package/src/zeroRunner.ts +7 -1
- package/types/combineZeroClients.d.ts +38 -0
- package/types/combineZeroClients.d.ts.map +1 -0
- package/types/createUseQuery.d.ts +15 -0
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +10 -4
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/instanceRegistry.d.ts +15 -0
- package/types/instanceRegistry.d.ts.map +1 -0
- package/types/multiInstance.test.d.ts +2 -0
- package/types/multiInstance.test.d.ts.map +1 -0
- package/types/multiInstanceNested.test.d.ts +5 -0
- package/types/multiInstanceNested.test.d.ts.map +1 -0
- package/types/run.d.ts.map +1 -1
- package/types/zeroRunner.d.ts +3 -1
- package/types/zeroRunner.d.ts.map +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var combineZeroClients_exports = {};
|
|
24
|
+
__export(combineZeroClients_exports, {
|
|
25
|
+
combineZeroClients: () => combineZeroClients
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(combineZeroClients_exports);
|
|
28
|
+
var import_helpers = require("@take-out/helpers");
|
|
29
|
+
var import_instanceRegistry = require("./instanceRegistry.cjs");
|
|
30
|
+
var import_run = require("./run.cjs");
|
|
31
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
+
function combineZeroClients(...clientsAndOptions) {
|
|
33
|
+
const last = clientsAndOptions[clientsAndOptions.length - 1];
|
|
34
|
+
const hasOptions = typeof last.instanceName !== "string";
|
|
35
|
+
const clients = hasOptions ? clientsAndOptions.slice(0, -1) : clientsAndOptions;
|
|
36
|
+
const options = hasOptions ? last : {};
|
|
37
|
+
const primary = clients[0];
|
|
38
|
+
const innerName = options.inner ?? clients[clients.length - 1].instanceName;
|
|
39
|
+
const clientsByName = new Map(clients.map(client => [client.instanceName, client]));
|
|
40
|
+
if (!clientsByName.has(innerName)) {
|
|
41
|
+
throw new Error(`[on-zero] combineZeroClients inner instance '${innerName}' is not one of the passed clients`);
|
|
42
|
+
}
|
|
43
|
+
const ownerOfNamespace = namespace => {
|
|
44
|
+
const owner = (0, import_instanceRegistry.getInstanceForNamespace)(namespace);
|
|
45
|
+
return owner && clientsByName.get(owner.name) || primary;
|
|
46
|
+
};
|
|
47
|
+
const ownerOfQueryFn = fn => {
|
|
48
|
+
const owner = (0, import_instanceRegistry.getInstanceForQueryFn)(fn);
|
|
49
|
+
return owner && clientsByName.get(owner.name) || primary;
|
|
50
|
+
};
|
|
51
|
+
function useQuery(...args) {
|
|
52
|
+
const owner = ownerOfQueryFn(args[0]);
|
|
53
|
+
return owner.instanceName === innerName ? owner.useQuery(...args) : owner.useQueryDirect(...args);
|
|
54
|
+
}
|
|
55
|
+
function usePermission(...args) {
|
|
56
|
+
const owner = ownerOfNamespace(String(args[0]));
|
|
57
|
+
return owner.instanceName === innerName ? owner.usePermission(...args) : owner.usePermissionDirect(...args);
|
|
58
|
+
}
|
|
59
|
+
const mutate = new Proxy({}, {
|
|
60
|
+
get(_, key) {
|
|
61
|
+
if (typeof key !== "string") return void 0;
|
|
62
|
+
return ownerOfNamespace(key).zero.mutate[key];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const zero = new Proxy({}, {
|
|
66
|
+
get(_, key) {
|
|
67
|
+
if (key === "mutate") {
|
|
68
|
+
return mutate;
|
|
69
|
+
}
|
|
70
|
+
return primary.zero[key];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
function preload(...args) {
|
|
74
|
+
return ownerOfQueryFn(args[0]).preload(...args);
|
|
75
|
+
}
|
|
76
|
+
function getQuery(...args) {
|
|
77
|
+
return ownerOfQueryFn(args[0]).getQuery(...args);
|
|
78
|
+
}
|
|
79
|
+
const zeroEvents = (0, import_helpers.createEmitter)(`zero:combined(${clients.map(client => client.instanceName).join("+")})`, null);
|
|
80
|
+
for (const client of clients) {
|
|
81
|
+
client.zeroEvents.listen(event => zeroEvents.emit(event));
|
|
82
|
+
}
|
|
83
|
+
const ControlQueries = ({
|
|
84
|
+
children,
|
|
85
|
+
...props
|
|
86
|
+
}) => clients.reduceRight((inner, client) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ControlQueries, {
|
|
87
|
+
...props,
|
|
88
|
+
children: inner
|
|
89
|
+
}), children);
|
|
90
|
+
const combined = {
|
|
91
|
+
useQuery,
|
|
92
|
+
usePermission,
|
|
93
|
+
zero,
|
|
94
|
+
preload,
|
|
95
|
+
getQuery,
|
|
96
|
+
run: import_run.run,
|
|
97
|
+
zeroEvents,
|
|
98
|
+
ControlQueries
|
|
99
|
+
};
|
|
100
|
+
return combined;
|
|
101
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var combineZeroClients_exports = {};
|
|
26
|
+
__export(combineZeroClients_exports, {
|
|
27
|
+
combineZeroClients: () => combineZeroClients
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(combineZeroClients_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var import_helpers = require("@take-out/helpers");
|
|
32
|
+
var import_instanceRegistry = require("./instanceRegistry.native.js");
|
|
33
|
+
var import_run = require("./run.native.js");
|
|
34
|
+
function combineZeroClients() {
|
|
35
|
+
for (var _len = arguments.length, clientsAndOptions = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
36
|
+
clientsAndOptions[_key] = arguments[_key];
|
|
37
|
+
}
|
|
38
|
+
var last = clientsAndOptions[clientsAndOptions.length - 1];
|
|
39
|
+
var hasOptions = typeof last.instanceName !== "string";
|
|
40
|
+
var clients = hasOptions ? clientsAndOptions.slice(0, -1) : clientsAndOptions;
|
|
41
|
+
var options = hasOptions ? last : {};
|
|
42
|
+
var primary = clients[0];
|
|
43
|
+
var _options_inner;
|
|
44
|
+
var innerName = (_options_inner = options.inner) !== null && _options_inner !== void 0 ? _options_inner : clients[clients.length - 1].instanceName;
|
|
45
|
+
var clientsByName = new Map(clients.map(function (client2) {
|
|
46
|
+
return [client2.instanceName, client2];
|
|
47
|
+
}));
|
|
48
|
+
if (!clientsByName.has(innerName)) {
|
|
49
|
+
throw new Error(`[on-zero] combineZeroClients inner instance '${innerName}' is not one of the passed clients`);
|
|
50
|
+
}
|
|
51
|
+
var ownerOfNamespace = function (namespace) {
|
|
52
|
+
var owner = (0, import_instanceRegistry.getInstanceForNamespace)(namespace);
|
|
53
|
+
return owner && clientsByName.get(owner.name) || primary;
|
|
54
|
+
};
|
|
55
|
+
var ownerOfQueryFn = function (fn) {
|
|
56
|
+
var owner = (0, import_instanceRegistry.getInstanceForQueryFn)(fn);
|
|
57
|
+
return owner && clientsByName.get(owner.name) || primary;
|
|
58
|
+
};
|
|
59
|
+
function useQuery() {
|
|
60
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
61
|
+
args[_key2] = arguments[_key2];
|
|
62
|
+
}
|
|
63
|
+
var owner = ownerOfQueryFn(args[0]);
|
|
64
|
+
return owner.instanceName === innerName ? owner.useQuery(...args) : owner.useQueryDirect(...args);
|
|
65
|
+
}
|
|
66
|
+
function usePermission() {
|
|
67
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
68
|
+
args[_key2] = arguments[_key2];
|
|
69
|
+
}
|
|
70
|
+
var owner = ownerOfNamespace(String(args[0]));
|
|
71
|
+
return owner.instanceName === innerName ? owner.usePermission(...args) : owner.usePermissionDirect(...args);
|
|
72
|
+
}
|
|
73
|
+
var mutate = new Proxy({}, {
|
|
74
|
+
get(_, key) {
|
|
75
|
+
if (typeof key !== "string") return void 0;
|
|
76
|
+
return ownerOfNamespace(key).zero.mutate[key];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
var zero = new Proxy({}, {
|
|
80
|
+
get(_, key) {
|
|
81
|
+
if (key === "mutate") {
|
|
82
|
+
return mutate;
|
|
83
|
+
}
|
|
84
|
+
return primary.zero[key];
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
function preload() {
|
|
88
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
89
|
+
args[_key2] = arguments[_key2];
|
|
90
|
+
}
|
|
91
|
+
return ownerOfQueryFn(args[0]).preload(...args);
|
|
92
|
+
}
|
|
93
|
+
function getQuery() {
|
|
94
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
95
|
+
args[_key2] = arguments[_key2];
|
|
96
|
+
}
|
|
97
|
+
return ownerOfQueryFn(args[0]).getQuery(...args);
|
|
98
|
+
}
|
|
99
|
+
var zeroEvents = (0, import_helpers.createEmitter)(`zero:combined(${clients.map(function (client2) {
|
|
100
|
+
return client2.instanceName;
|
|
101
|
+
}).join("+")})`, null);
|
|
102
|
+
var _iteratorNormalCompletion = true,
|
|
103
|
+
_didIteratorError = false,
|
|
104
|
+
_iteratorError = void 0;
|
|
105
|
+
try {
|
|
106
|
+
for (var _iterator = clients[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
107
|
+
var client = _step.value;
|
|
108
|
+
client.zeroEvents.listen(function (event) {
|
|
109
|
+
return zeroEvents.emit(event);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
} catch (err) {
|
|
113
|
+
_didIteratorError = true;
|
|
114
|
+
_iteratorError = err;
|
|
115
|
+
} finally {
|
|
116
|
+
try {
|
|
117
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
118
|
+
_iterator.return();
|
|
119
|
+
}
|
|
120
|
+
} finally {
|
|
121
|
+
if (_didIteratorError) {
|
|
122
|
+
throw _iteratorError;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
var ControlQueries = function (param) {
|
|
127
|
+
var {
|
|
128
|
+
children,
|
|
129
|
+
...props
|
|
130
|
+
} = param;
|
|
131
|
+
return clients.reduceRight(function (inner, client2) {
|
|
132
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(client2.ControlQueries, {
|
|
133
|
+
...props,
|
|
134
|
+
children: inner
|
|
135
|
+
});
|
|
136
|
+
}, children);
|
|
137
|
+
};
|
|
138
|
+
var combined = {
|
|
139
|
+
useQuery,
|
|
140
|
+
usePermission,
|
|
141
|
+
zero,
|
|
142
|
+
preload,
|
|
143
|
+
getQuery,
|
|
144
|
+
run: import_run.run,
|
|
145
|
+
zeroEvents,
|
|
146
|
+
ControlQueries
|
|
147
|
+
};
|
|
148
|
+
return combined;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=combineZeroClients.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","combineZeroClients_exports","__export","combineZeroClients","module","exports","import_jsx_runtime","require","import_helpers","import_instanceRegistry","import_run","_len","arguments","length","clientsAndOptions","Array","_key","last","hasOptions","instanceName","clients","slice","options","primary","_options_inner","innerName","inner","clientsByName","Map","map","client2","has","Error","ownerOfNamespace","namespace","owner","getInstanceForNamespace","get","name","ownerOfQueryFn","fn","getInstanceForQueryFn","useQuery","_len2","args","_key2","useQueryDirect","usePermission","String","usePermissionDirect","mutate","Proxy","_","key","zero","preload","getQuery","zeroEvents","createEmitter","join"],"sources":["../../src/combineZeroClients.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -22,16 +22,25 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
22
22
|
}), mod);
|
|
23
23
|
var createUseQuery_exports = {};
|
|
24
24
|
__export(createUseQuery_exports, {
|
|
25
|
-
createUseQuery: () => createUseQuery
|
|
25
|
+
createUseQuery: () => createUseQuery,
|
|
26
|
+
createUseQueryDirect: () => createUseQueryDirect
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(createUseQuery_exports);
|
|
28
29
|
var import_react = require("@rocicorp/zero/react");
|
|
30
|
+
var import_helpers = require("@take-out/helpers");
|
|
29
31
|
var import_react2 = require("react");
|
|
30
32
|
var import_useZeroDebug = require("./helpers/useZeroDebug.cjs");
|
|
31
33
|
var import_resolveQuery = require("./resolveQuery.cjs");
|
|
32
34
|
const EMPTY_RESPONSE = [null, {
|
|
33
35
|
type: "unknown"
|
|
34
36
|
}];
|
|
37
|
+
function parseUseQueryArgs(paramsOrOptions, optionsArg) {
|
|
38
|
+
const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
|
|
39
|
+
return {
|
|
40
|
+
params: hasParams ? paramsOrOptions : void 0,
|
|
41
|
+
options: hasParams ? optionsArg : paramsOrOptions
|
|
42
|
+
};
|
|
43
|
+
}
|
|
35
44
|
function createUseQuery({
|
|
36
45
|
DisabledContext,
|
|
37
46
|
customQueries
|
|
@@ -44,9 +53,10 @@ function createUseQuery({
|
|
|
44
53
|
queryRequest,
|
|
45
54
|
options
|
|
46
55
|
} = (0, import_react2.useMemo)(() => {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
const {
|
|
57
|
+
params,
|
|
58
|
+
options: opts
|
|
59
|
+
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
50
60
|
const queryRequest2 = (0, import_resolveQuery.resolveQuery)({
|
|
51
61
|
customQueries,
|
|
52
62
|
fn,
|
|
@@ -71,4 +81,82 @@ function createUseQuery({
|
|
|
71
81
|
return EMPTY_RESPONSE;
|
|
72
82
|
}
|
|
73
83
|
return useQuery;
|
|
84
|
+
}
|
|
85
|
+
const DISABLED_SUBSCRIBE = () => () => {};
|
|
86
|
+
const DISABLED_SNAPSHOT = [void 0, {
|
|
87
|
+
type: "unknown"
|
|
88
|
+
}];
|
|
89
|
+
const getDisabledSnapshot = () => DISABLED_SNAPSHOT;
|
|
90
|
+
function createDirectView(zero, queryRequest, ttl) {
|
|
91
|
+
let snapshot = DISABLED_SNAPSHOT;
|
|
92
|
+
const listeners = /* @__PURE__ */new Set();
|
|
93
|
+
const view = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
|
|
94
|
+
ttl
|
|
95
|
+
});
|
|
96
|
+
view.addListener((data, resultType) => {
|
|
97
|
+
snapshot = [data === void 0 ? void 0 : structuredClone(data), {
|
|
98
|
+
type: resultType
|
|
99
|
+
}];
|
|
100
|
+
for (const listener of listeners) {
|
|
101
|
+
listener();
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
subscribe: notify => {
|
|
106
|
+
listeners.add(notify);
|
|
107
|
+
return () => listeners.delete(notify);
|
|
108
|
+
},
|
|
109
|
+
getSnapshot: () => snapshot,
|
|
110
|
+
destroy: () => view.destroy()
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function createUseQueryDirect({
|
|
114
|
+
DisabledContext,
|
|
115
|
+
customQueries,
|
|
116
|
+
getZero,
|
|
117
|
+
zeroVersion
|
|
118
|
+
}) {
|
|
119
|
+
function useQueryDirect(...args) {
|
|
120
|
+
const disableMode = (0, import_react2.useContext)(DisabledContext);
|
|
121
|
+
const lastRef = (0, import_react2.useRef)(EMPTY_RESPONSE);
|
|
122
|
+
const [fn, paramsOrOptions, optionsArg] = args;
|
|
123
|
+
const version = (0, import_helpers.useEmitterValue)(zeroVersion);
|
|
124
|
+
const {
|
|
125
|
+
params,
|
|
126
|
+
options
|
|
127
|
+
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
128
|
+
let enabled = true;
|
|
129
|
+
let ttl;
|
|
130
|
+
if (typeof options === "boolean") {
|
|
131
|
+
enabled = options;
|
|
132
|
+
} else if (options) {
|
|
133
|
+
enabled = options.enabled !== false;
|
|
134
|
+
ttl = options.ttl;
|
|
135
|
+
}
|
|
136
|
+
const paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
137
|
+
const view = (0, import_react2.useMemo)(() => {
|
|
138
|
+
const zero = getZero();
|
|
139
|
+
if (!enabled || !zero) return null;
|
|
140
|
+
const queryRequest = (0, import_resolveQuery.resolveQuery)({
|
|
141
|
+
customQueries,
|
|
142
|
+
fn,
|
|
143
|
+
params
|
|
144
|
+
});
|
|
145
|
+
return createDirectView(zero, queryRequest, ttl);
|
|
146
|
+
}, [fn, paramsKey, enabled, ttl, version]);
|
|
147
|
+
(0, import_react2.useEffect)(() => {
|
|
148
|
+
if (!view) return;
|
|
149
|
+
return () => view.destroy();
|
|
150
|
+
}, [view]);
|
|
151
|
+
const out = (0, import_react2.useSyncExternalStore)(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getDisabledSnapshot, view ? view.getSnapshot : getDisabledSnapshot);
|
|
152
|
+
if (!disableMode) {
|
|
153
|
+
lastRef.current = out;
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
if (disableMode === "last-value") {
|
|
157
|
+
return lastRef.current;
|
|
158
|
+
}
|
|
159
|
+
return EMPTY_RESPONSE;
|
|
160
|
+
}
|
|
161
|
+
return useQueryDirect;
|
|
74
162
|
}
|
|
@@ -24,10 +24,12 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
24
24
|
}), mod);
|
|
25
25
|
var createUseQuery_exports = {};
|
|
26
26
|
__export(createUseQuery_exports, {
|
|
27
|
-
createUseQuery: () => createUseQuery
|
|
27
|
+
createUseQuery: () => createUseQuery,
|
|
28
|
+
createUseQueryDirect: () => createUseQueryDirect
|
|
28
29
|
});
|
|
29
30
|
module.exports = __toCommonJS(createUseQuery_exports);
|
|
30
31
|
var import_react = require("@rocicorp/zero/react");
|
|
32
|
+
var import_helpers = require("@take-out/helpers");
|
|
31
33
|
var import_react2 = require("react");
|
|
32
34
|
var import_useZeroDebug = require("./helpers/useZeroDebug.native.js");
|
|
33
35
|
var import_resolveQuery = require("./resolveQuery.native.js");
|
|
@@ -39,6 +41,13 @@ function _type_of(obj) {
|
|
|
39
41
|
var EMPTY_RESPONSE = [null, {
|
|
40
42
|
type: "unknown"
|
|
41
43
|
}];
|
|
44
|
+
function parseUseQueryArgs(paramsOrOptions, optionsArg) {
|
|
45
|
+
var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions === "undefined" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
|
|
46
|
+
return {
|
|
47
|
+
params: hasParams ? paramsOrOptions : void 0,
|
|
48
|
+
options: hasParams ? optionsArg : paramsOrOptions
|
|
49
|
+
};
|
|
50
|
+
}
|
|
42
51
|
function createUseQuery(param) {
|
|
43
52
|
var {
|
|
44
53
|
DisabledContext,
|
|
@@ -55,9 +64,10 @@ function createUseQuery(param) {
|
|
|
55
64
|
queryRequest,
|
|
56
65
|
options
|
|
57
66
|
} = (0, import_react2.useMemo)(function () {
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
var {
|
|
68
|
+
params,
|
|
69
|
+
options: opts
|
|
70
|
+
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
61
71
|
var queryRequest2 = (0, import_resolveQuery.resolveQuery)({
|
|
62
72
|
customQueries,
|
|
63
73
|
fn,
|
|
@@ -83,4 +93,120 @@ function createUseQuery(param) {
|
|
|
83
93
|
}
|
|
84
94
|
return useQuery;
|
|
85
95
|
}
|
|
96
|
+
var DISABLED_SUBSCRIBE = function () {
|
|
97
|
+
return function () {};
|
|
98
|
+
};
|
|
99
|
+
var DISABLED_SNAPSHOT = [void 0, {
|
|
100
|
+
type: "unknown"
|
|
101
|
+
}];
|
|
102
|
+
var getDisabledSnapshot = function () {
|
|
103
|
+
return DISABLED_SNAPSHOT;
|
|
104
|
+
};
|
|
105
|
+
function createDirectView(zero, queryRequest, ttl) {
|
|
106
|
+
var snapshot = DISABLED_SNAPSHOT;
|
|
107
|
+
var listeners = /* @__PURE__ */new Set();
|
|
108
|
+
var view = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
|
|
109
|
+
ttl
|
|
110
|
+
});
|
|
111
|
+
view.addListener(function (data, resultType) {
|
|
112
|
+
snapshot = [data === void 0 ? void 0 : structuredClone(data), {
|
|
113
|
+
type: resultType
|
|
114
|
+
}];
|
|
115
|
+
var _iteratorNormalCompletion = true,
|
|
116
|
+
_didIteratorError = false,
|
|
117
|
+
_iteratorError = void 0;
|
|
118
|
+
try {
|
|
119
|
+
for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
120
|
+
var listener = _step.value;
|
|
121
|
+
listener();
|
|
122
|
+
}
|
|
123
|
+
} catch (err) {
|
|
124
|
+
_didIteratorError = true;
|
|
125
|
+
_iteratorError = err;
|
|
126
|
+
} finally {
|
|
127
|
+
try {
|
|
128
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
129
|
+
_iterator.return();
|
|
130
|
+
}
|
|
131
|
+
} finally {
|
|
132
|
+
if (_didIteratorError) {
|
|
133
|
+
throw _iteratorError;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
return {
|
|
139
|
+
subscribe: function (notify) {
|
|
140
|
+
listeners.add(notify);
|
|
141
|
+
return function () {
|
|
142
|
+
return listeners.delete(notify);
|
|
143
|
+
};
|
|
144
|
+
},
|
|
145
|
+
getSnapshot: function () {
|
|
146
|
+
return snapshot;
|
|
147
|
+
},
|
|
148
|
+
destroy: function () {
|
|
149
|
+
return view.destroy();
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function createUseQueryDirect(param) {
|
|
154
|
+
var {
|
|
155
|
+
DisabledContext,
|
|
156
|
+
customQueries,
|
|
157
|
+
getZero,
|
|
158
|
+
zeroVersion
|
|
159
|
+
} = param;
|
|
160
|
+
function useQueryDirect() {
|
|
161
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
162
|
+
args[_key] = arguments[_key];
|
|
163
|
+
}
|
|
164
|
+
var disableMode = (0, import_react2.useContext)(DisabledContext);
|
|
165
|
+
var lastRef = (0, import_react2.useRef)(EMPTY_RESPONSE);
|
|
166
|
+
var [fn, paramsOrOptions, optionsArg] = args;
|
|
167
|
+
var version = (0, import_helpers.useEmitterValue)(zeroVersion);
|
|
168
|
+
var {
|
|
169
|
+
params,
|
|
170
|
+
options
|
|
171
|
+
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
172
|
+
var enabled = true;
|
|
173
|
+
var ttl;
|
|
174
|
+
if (typeof options === "boolean") {
|
|
175
|
+
enabled = options;
|
|
176
|
+
} else if (options) {
|
|
177
|
+
enabled = options.enabled !== false;
|
|
178
|
+
ttl = options.ttl;
|
|
179
|
+
}
|
|
180
|
+
var paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
181
|
+
var view = (0, import_react2.useMemo)(function () {
|
|
182
|
+
var zero = getZero();
|
|
183
|
+
if (!enabled || !zero) return null;
|
|
184
|
+
var queryRequest = (0, import_resolveQuery.resolveQuery)({
|
|
185
|
+
customQueries,
|
|
186
|
+
fn,
|
|
187
|
+
params
|
|
188
|
+
});
|
|
189
|
+
return createDirectView(zero, queryRequest, ttl);
|
|
190
|
+
},
|
|
191
|
+
// params is keyed by paramsKey; version re-materializes on a new zero
|
|
192
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
193
|
+
[fn, paramsKey, enabled, ttl, version]);
|
|
194
|
+
(0, import_react2.useEffect)(function () {
|
|
195
|
+
if (!view) return;
|
|
196
|
+
return function () {
|
|
197
|
+
return view.destroy();
|
|
198
|
+
};
|
|
199
|
+
}, [view]);
|
|
200
|
+
var out = (0, import_react2.useSyncExternalStore)(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getDisabledSnapshot, view ? view.getSnapshot : getDisabledSnapshot);
|
|
201
|
+
if (!disableMode) {
|
|
202
|
+
lastRef.current = out;
|
|
203
|
+
return out;
|
|
204
|
+
}
|
|
205
|
+
if (disableMode === "last-value") {
|
|
206
|
+
return lastRef.current;
|
|
207
|
+
}
|
|
208
|
+
return EMPTY_RESPONSE;
|
|
209
|
+
}
|
|
210
|
+
return useQueryDirect;
|
|
211
|
+
}
|
|
86
212
|
//# sourceMappingURL=createUseQuery.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","module","exports","import_react","require","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_RESPONSE","type","param","DisabledContext","customQueries","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","fn","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","createUseQueryDirect","module","exports","import_react","require","import_helpers","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_RESPONSE","type","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","param","DisabledContext","customQueries","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","fn","queryRequest","useMemo","opts","queryRequest2","resolveQuery","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","useZeroDebug","current","DISABLED_SUBSCRIBE","DISABLED_SNAPSHOT","getDisabledSnapshot","createDirectView","zero","ttl","snapshot","listeners","Set","view","materialize","addListener","data","resultType","structuredClone","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","listener","err","return","subscribe","notify","add","delete"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|