over-zero 0.0.36 → 0.0.38
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/cli.cjs +16 -10
- package/dist/cjs/cli.js +15 -8
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli.native.js +18 -10
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/createPermissions.cjs +7 -6
- package/dist/cjs/createPermissions.js +6 -6
- package/dist/cjs/createPermissions.js.map +1 -1
- package/dist/cjs/createPermissions.native.js +8 -6
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +18 -27
- package/dist/cjs/createUseQuery.js +18 -19
- package/dist/cjs/createUseQuery.js.map +1 -1
- package/dist/cjs/createUseQuery.native.js +19 -32
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +38 -16
- package/dist/cjs/createZeroClient.js +40 -28
- package/dist/cjs/createZeroClient.js.map +2 -2
- package/dist/cjs/createZeroClient.native.js +45 -21
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +16 -16
- package/dist/cjs/createZeroServer.js +15 -19
- package/dist/cjs/createZeroServer.js.map +2 -2
- package/dist/cjs/createZeroServer.native.js +19 -50
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.cjs +1 -1
- package/dist/cjs/helpers/batchQuery.js +1 -1
- package/dist/cjs/helpers/batchQuery.native.js +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +1 -1
- package/dist/cjs/helpers/createMutators.js +1 -1
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.js +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.cjs +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.js +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js +1 -1
- package/dist/cjs/helpers/mutatorContext.cjs +1 -1
- package/dist/cjs/helpers/mutatorContext.js +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.js +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.cjs +3 -3
- package/dist/cjs/helpers/useZeroDebug.js +2 -2
- package/dist/cjs/helpers/useZeroDebug.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js +5 -3
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/where.cjs +1 -1
- package/dist/cjs/where.js +1 -1
- package/dist/cjs/where.js.map +1 -1
- package/dist/cjs/where.native.js +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/esm/cli.js +15 -8
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +16 -10
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +18 -10
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/createPermissions.js +5 -4
- package/dist/esm/createPermissions.js.map +1 -1
- package/dist/esm/createPermissions.mjs +5 -4
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +6 -4
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createUseQuery.js +17 -19
- package/dist/esm/createUseQuery.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +17 -26
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +18 -31
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createZeroClient.js +55 -30
- package/dist/esm/createZeroClient.js.map +2 -2
- package/dist/esm/createZeroClient.mjs +39 -17
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +47 -23
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +18 -20
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +16 -16
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +19 -50
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.js +1 -1
- package/dist/esm/helpers/batchQuery.mjs +1 -1
- package/dist/esm/helpers/batchQuery.native.js +1 -1
- package/dist/esm/helpers/createMutators.js +1 -1
- package/dist/esm/helpers/createMutators.mjs +1 -1
- package/dist/esm/helpers/createMutators.native.js +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.js +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.mjs +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.native.js +1 -1
- package/dist/esm/helpers/ensureLoggedIn.js +1 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +1 -1
- package/dist/esm/helpers/mutatorContext.js +1 -1
- package/dist/esm/helpers/mutatorContext.mjs +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.js +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +1 -1
- package/dist/esm/helpers/useZeroDebug.js +2 -2
- package/dist/esm/helpers/useZeroDebug.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs +3 -3
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +5 -3
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/where.js +1 -1
- package/dist/esm/where.mjs +1 -1
- package/dist/esm/where.native.js +1 -1
- package/package.json +2 -2
- package/readme.md +20 -6
- package/src/cli.ts +23 -22
- package/src/createPermissions.ts +6 -4
- package/src/createUseQuery.tsx +34 -69
- package/src/createZeroClient.tsx +81 -33
- package/src/createZeroServer.ts +27 -35
- package/src/helpers/batchQuery.ts +1 -1
- package/src/helpers/createMutators.ts +1 -1
- package/src/helpers/didRunPermissionCheck.ts +1 -1
- package/src/helpers/ensureLoggedIn.ts +1 -1
- package/src/helpers/mutatorContext.ts +1 -1
- package/src/helpers/prettyFormatZeroQuery.ts +1 -1
- package/src/helpers/useZeroDebug.ts +3 -3
- package/src/types.ts +2 -2
- package/src/where.ts +1 -1
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createUseQuery.d.ts +7 -9
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +5 -6
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +69 -18
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/types.d.ts +2 -2
- package/types/types.d.ts.map +1 -1
|
@@ -1,45 +1,36 @@
|
|
|
1
|
-
import { syncedQuery } from "@rocicorp/zero";
|
|
2
1
|
import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
3
2
|
import { use, useMemo } from "react";
|
|
4
3
|
import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
|
|
5
4
|
import { getQueryName } from "./queryRegistry.mjs";
|
|
6
5
|
function createUseQuery({
|
|
7
6
|
DisabledContext,
|
|
8
|
-
|
|
7
|
+
customQueries
|
|
9
8
|
}) {
|
|
10
|
-
const queryCache = /* @__PURE__ */new Map(),
|
|
11
|
-
parseAny = x => [x[0]];
|
|
12
9
|
function useQuery(...args) {
|
|
13
10
|
const disabled = use(DisabledContext),
|
|
14
|
-
[
|
|
15
|
-
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
11
|
+
[fn, paramsOrOptions, optionsArg] = args,
|
|
16
12
|
{
|
|
17
|
-
|
|
13
|
+
queryRequest,
|
|
18
14
|
options
|
|
19
15
|
} = useMemo(() => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
queryName = getQueryName(fn);
|
|
26
|
-
if (!queryName) throw new Error("No query name?");
|
|
16
|
+
const queryName = getQueryName(fn);
|
|
17
|
+
if (!queryName) {
|
|
18
|
+
const fnName = fn?.name || "anonymous";
|
|
19
|
+
throw new Error(`Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`);
|
|
20
|
+
}
|
|
27
21
|
const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions == "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
|
|
28
22
|
params = hasParams ? paramsOrOptions : void 0,
|
|
29
|
-
opts = hasParams ? optionsArg : paramsOrOptions
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
opts = hasParams ? optionsArg : paramsOrOptions,
|
|
24
|
+
[namespace, name] = queryName.split(".", 2),
|
|
25
|
+
customQuery = customQueries[namespace]?.[name];
|
|
26
|
+
if (!customQuery) throw new Error(`CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`);
|
|
27
|
+
return {
|
|
28
|
+
queryRequest: params !== void 0 ? customQuery(params) : customQuery(),
|
|
33
29
|
options: opts
|
|
34
30
|
};
|
|
35
|
-
}, [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
options,
|
|
39
|
-
queryOrFn
|
|
40
|
-
});
|
|
41
|
-
const out = zeroUseQuery(actualQuery, options);
|
|
42
|
-
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, {
|
|
31
|
+
}, [fn, paramsOrOptions, optionsArg]),
|
|
32
|
+
out = zeroUseQuery(queryRequest, options);
|
|
33
|
+
return process.env.NODE_ENV === "development" && useZeroDebug(queryRequest, options, out), disabled ? [null, {
|
|
43
34
|
type: "unknown"
|
|
44
35
|
}] : out;
|
|
45
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useQuery","zeroUseQuery","use","useMemo","useZeroDebug","getQueryName","createUseQuery","DisabledContext","customQueries","args","disabled","fn","paramsOrOptions","optionsArg","queryRequest","options","queryName","fnName","name","Error","hasParams","params","opts","namespace","split","customQuery","out","process","env","NODE_ENV","type"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,GAAA,EAAKC,OAAA,QAA6B;AAE3C,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAoB;AAqCtB,SAASC,eAA0C;EACxDC,eAAA;EACAC;AACF,GAGyB;EACvB,SAASR,SAAA,GAAYS,IAAA,EAAkB;IACrC,MAAMC,QAAA,GAAWR,GAAA,CAAIK,eAAe;MAC9B,CAACI,EAAA,EAAIC,eAAA,EAAiBC,UAAU,IAAIJ,IAAA;MAEpC;QAAEK,YAAA;QAAcC;MAAQ,IAAIZ,OAAA,CAAQ,MAAM;QAC9C,MAAMa,SAAA,GAAYX,YAAA,CAAaM,EAAE;QACjC,IAAI,CAACK,SAAA,EAAW;UACd,MAAMC,MAAA,GAASN,EAAA,EAAIO,IAAA,IAAQ;UAC3B,MAAM,IAAIC,KAAA,CACR,mBAAmBF,MAAM,gHAE3B;QACF;QAGA,MAAMG,SAAA,GACJP,UAAA,KAAe,UACdD,eAAA,IACC,OAAOA,eAAA,IAAoB,YAC3B,EAAE,aAAaA,eAAA,KACf,EAAE,SAASA,eAAA;UAETS,MAAA,GAASD,SAAA,GAAYR,eAAA,GAAkB;UACvCU,IAAA,GAAOF,SAAA,GAAYP,UAAA,GAAaD,eAAA;UAIhC,CAACW,SAAA,EAAWL,IAAI,IAAIF,SAAA,CAAUQ,KAAA,CAAM,KAAK,CAAC;UAC1CC,WAAA,GAAejB,aAAA,CAAsBe,SAAS,IAAIL,IAAI;QAE5D,IAAI,CAACO,WAAA,EACH,MAAM,IAAIN,KAAA,CACR,gBAAgBH,SAAS,+EAE3B;QAKF,OAAO;UAAEF,YAAA,EAFYO,MAAA,KAAW,SAAYI,WAAA,CAAYJ,MAAM,IAAII,WAAA,CAAY;UAEvDV,OAAA,EAASO;QAAK;MACvC,GAAG,CAACX,EAAA,EAAIC,eAAA,EAAiBC,UAAU,CAAC;MAE9Ba,GAAA,GAAMzB,YAAA,CAAaa,YAAA,EAAqBC,OAAO;IAOrD,OALIY,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAE3BzB,YAAA,CAAaU,YAAA,EAAqBC,OAAA,EAASW,GAAG,GAG5ChB,QAAA,GACK,CAAC,MAAM;MAAEoB,IAAA,EAAM;IAAU,CAAC,IAG5BJ,GAAA;EACT;EAEA,OAAO1B,QAAA;AACT","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { syncedQuery } from "@rocicorp/zero";
|
|
2
1
|
import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
3
2
|
import { use, useMemo } from "react";
|
|
4
3
|
import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
|
|
@@ -10,49 +9,37 @@ function _type_of(obj) {
|
|
|
10
9
|
}
|
|
11
10
|
function createUseQuery(param) {
|
|
12
11
|
var {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
queryCache = /* @__PURE__ */new Map(),
|
|
17
|
-
parseAny = function (x) {
|
|
18
|
-
return [x[0]];
|
|
19
|
-
};
|
|
12
|
+
DisabledContext,
|
|
13
|
+
customQueries
|
|
14
|
+
} = param;
|
|
20
15
|
function useQuery() {
|
|
21
16
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
22
17
|
var disabled = use(DisabledContext),
|
|
23
|
-
[
|
|
24
|
-
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
18
|
+
[fn, paramsOrOptions, optionsArg] = args,
|
|
25
19
|
{
|
|
26
|
-
|
|
20
|
+
queryRequest,
|
|
27
21
|
options
|
|
28
22
|
} = useMemo(function () {
|
|
29
|
-
|
|
30
|
-
actualQuery: queryOrFn,
|
|
31
|
-
options: paramsOrOptions
|
|
32
|
-
};
|
|
33
|
-
var fn = queryOrFn,
|
|
23
|
+
var _customQueries_namespace,
|
|
34
24
|
queryName = getQueryName(fn);
|
|
35
|
-
if (!queryName)
|
|
25
|
+
if (!queryName) {
|
|
26
|
+
var fnName = fn?.name || "anonymous";
|
|
27
|
+
throw new Error(`Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`);
|
|
28
|
+
}
|
|
36
29
|
var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions > "u" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
|
|
37
30
|
params = hasParams ? paramsOrOptions : void 0,
|
|
38
31
|
opts = hasParams ? optionsArg : paramsOrOptions,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var query = params !== void 0 ? synced(params) : synced;
|
|
32
|
+
[namespace, name] = queryName.split(".", 2),
|
|
33
|
+
customQuery = (_customQueries_namespace = customQueries[namespace]) === null || _customQueries_namespace === void 0 ? void 0 : _customQueries_namespace[name];
|
|
34
|
+
if (!customQuery) throw new Error(`CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`);
|
|
35
|
+
var queryRequest2 = params !== void 0 ? customQuery(params) : customQuery();
|
|
44
36
|
return {
|
|
45
|
-
|
|
37
|
+
queryRequest: queryRequest2,
|
|
46
38
|
options: opts
|
|
47
39
|
};
|
|
48
|
-
}, [
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
options,
|
|
52
|
-
queryOrFn
|
|
53
|
-
});
|
|
54
|
-
var out = zeroUseQuery(actualQuery, options);
|
|
55
|
-
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, {
|
|
40
|
+
}, [fn, paramsOrOptions, optionsArg]),
|
|
41
|
+
out = zeroUseQuery(queryRequest, options);
|
|
42
|
+
return process.env.NODE_ENV === "development" && useZeroDebug(queryRequest, options, out), disabled ? [null, {
|
|
56
43
|
type: "unknown"
|
|
57
44
|
}] : out;
|
|
58
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useQuery","zeroUseQuery","use","useMemo","useZeroDebug","getQueryName","_type_of","obj","Symbol","constructor","createUseQuery","param","DisabledContext","customQueries","_len","arguments","length","args","Array","_key","disabled","fn","paramsOrOptions","optionsArg","queryRequest","options","_customQueries_namespace","queryName","fnName","name","Error","hasParams","params","opts","namespace","split","customQuery","queryRequest2"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,GAAA,EAAKC,OAAA,QAA6B;AAE3C,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAoB;AAqCtB,SAASC,SAAAC,GAAA;EACd;;EACA,OAAAA,GAAA,WAAAC,MAAA,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACF;AAIE,SAAAG,cAAqBA,CAAAC,KAAkB;EACrC;IAAAC,eAAiB;IAAIC;EAAA,CAAe,GAC9BF,KAAK;EAGT,SAAAX,QAAMA,CAAA;IACN,SAAKc,IAAA,GAAAC,SAAW,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,IACdF,IAAA,CAAAE,IAAM,IAAAJ,SAAa,CAAAI,IAAA;IACnB,IAAAC,QAAM,GAAIlB,GAAA,CAAAU,eAAA;MAAA,CAAAS,EAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAN,IAAA;MAAA;QAAAO,YAAA;QAAAC;MAAA,IAAAtB,OAAA;QAAA,IACRuB,wBAAmB;UAAMC,SAAA,GAAAtB,YAAA,CAAAgB,EAAA;QAAA,IAE3B,CAAAM,SAAA;UACF,IAAAC,MAAA,GAAAP,EAAA,EAAAQ,IAAA;UAGA,MAAM,IAAAC,KAAA,CACJ,mBAAeF,MACd,gHAGY;QAUf;QACE,IAAAG,SAAU,GAAAR,UAAA,eAAAD,eAAA,YAAAA,eAAA,uBAAAhB,QAAA,CAAAgB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAU,MAAA,GAAAD,SAAA,GAAAT,eAAA;UAAAW,IAAA,GAAAF,SAAA,GAAAR,UAAA,GAAAD,eAAA;UAAA,CAAAY,SAAA,EAAAL,IAAA,IAAAF,SAAA,CAAAQ,KAAA;UAAAC,WAAA,IAAAV,wBAAA,GAAAb,aAAA,CAAAqB,SAAA,eAAAR,wBAAA,uBAAAA,wBAAA,CAAAG,IAAA;QAAA,IACR,CAAAO,WAAA,EAEF,UAAAN,KAAA,iBAAAH,SAAA;QAKF,IAAAU,aAAS,GAAAL,MAFY,UAAW,IAAAI,WAAY,CAAAJ,MAAY,IAAMI,WAAI;QAGpE,OAAQ;UASRZ,YALY,EAAAa,aAAI;UAUlBZ,OAAA,EAAAQ;QAEA;MACF,I","ignoreList":[]}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { defineQueries, defineQuery } from "@rocicorp/zero";
|
|
2
|
+
import {
|
|
3
|
+
useConnectionState,
|
|
4
|
+
useZero,
|
|
5
|
+
ZeroProvider,
|
|
6
|
+
useQuery as zeroUseQuery
|
|
7
|
+
} from "@rocicorp/zero/react";
|
|
8
|
+
import { createEmitter, mapObject } from "@take-out/helpers";
|
|
9
|
+
import {
|
|
10
|
+
createContext,
|
|
11
|
+
memo,
|
|
12
|
+
use,
|
|
13
|
+
useEffect,
|
|
14
|
+
useMemo,
|
|
15
|
+
useRef
|
|
16
|
+
} from "react";
|
|
4
17
|
import { createPermissions } from "./createPermissions";
|
|
5
18
|
import { createUseQuery } from "./createUseQuery";
|
|
6
19
|
import { createMutators } from "./helpers/createMutators";
|
|
@@ -11,17 +24,25 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
11
24
|
function createZeroClient({
|
|
12
25
|
schema,
|
|
13
26
|
models,
|
|
14
|
-
groupedQueries
|
|
15
|
-
disableInlineQueries = !1
|
|
27
|
+
groupedQueries
|
|
16
28
|
}) {
|
|
17
29
|
setSchema(schema);
|
|
18
|
-
|
|
30
|
+
const wrappedNamespaces = {};
|
|
31
|
+
for (const [namespace, queries] of Object.entries(groupedQueries)) {
|
|
32
|
+
wrappedNamespaces[namespace] = {};
|
|
19
33
|
for (const [name, fn] of Object.entries(queries))
|
|
20
|
-
registerQuery(fn, `${namespace}.${name}`)
|
|
21
|
-
|
|
34
|
+
registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(
|
|
35
|
+
({ args }) => fn(args)
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
const customQueries = defineQueries(wrappedNamespaces), DisabledContext = createContext(!1), modelWritePermissions = mapObject(models, (val) => val.permissions);
|
|
22
39
|
let latestZeroInstance = null;
|
|
23
40
|
const zero = new Proxy({}, {
|
|
24
41
|
get(_, key) {
|
|
42
|
+
if (latestZeroInstance === null)
|
|
43
|
+
throw new Error(
|
|
44
|
+
"Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'."
|
|
45
|
+
);
|
|
25
46
|
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
26
47
|
}
|
|
27
48
|
}), permissionsHelpers = createPermissions({
|
|
@@ -29,7 +50,7 @@ function createZeroClient({
|
|
|
29
50
|
environment: "client"
|
|
30
51
|
}), zeroEvents = createEmitter("zero", null), AuthDataContext = createContext({}), useAuthData = () => use(AuthDataContext), useQuery = createUseQuery({
|
|
31
52
|
DisabledContext,
|
|
32
|
-
|
|
53
|
+
customQueries
|
|
33
54
|
});
|
|
34
55
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
35
56
|
const disabled = use(DisabledContext), authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
|
|
@@ -40,7 +61,7 @@ function createZeroClient({
|
|
|
40
61
|
permission,
|
|
41
62
|
objOrId
|
|
42
63
|
));
|
|
43
|
-
})(), [data, status] =
|
|
64
|
+
})(), [data, status] = zeroUseQuery(query, {
|
|
44
65
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
45
66
|
});
|
|
46
67
|
debug && console.info(
|
|
@@ -63,29 +84,33 @@ function createZeroClient({
|
|
|
63
84
|
authData,
|
|
64
85
|
can: permissionsHelpers.can
|
|
65
86
|
})), [models, authData]);
|
|
66
|
-
return disable ? children : /* @__PURE__ */ jsx(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ jsxs(
|
|
67
|
-
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
onError: (error) => {
|
|
72
|
-
console.error("Zero Error:", error), zeroEvents.emit({
|
|
73
|
-
type: "error",
|
|
74
|
-
message: error
|
|
75
|
-
});
|
|
76
|
-
},
|
|
77
|
-
mutators,
|
|
78
|
-
...props,
|
|
79
|
-
children: [
|
|
80
|
-
/* @__PURE__ */ jsx(SetZeroInstance, {}),
|
|
81
|
-
children
|
|
82
|
-
]
|
|
83
|
-
}
|
|
84
|
-
) });
|
|
87
|
+
return disable ? children : /* @__PURE__ */ jsx(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ jsxs(ZeroProvider, { schema, kvStore: "mem", mutators, ...props, children: [
|
|
88
|
+
/* @__PURE__ */ jsx(SetZeroInstance, {}),
|
|
89
|
+
/* @__PURE__ */ jsx(ConnectionMonitor, { zeroEvents }),
|
|
90
|
+
children
|
|
91
|
+
] }) });
|
|
85
92
|
}, SetZeroInstance = () => {
|
|
86
93
|
const zero2 = useZero();
|
|
87
94
|
return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
|
|
88
|
-
}
|
|
95
|
+
}, ConnectionMonitor = memo(
|
|
96
|
+
({
|
|
97
|
+
zeroEvents: zeroEvents2
|
|
98
|
+
}) => {
|
|
99
|
+
const state = useConnectionState(), prevState = useRef(state.name);
|
|
100
|
+
return useEffect(() => {
|
|
101
|
+
if (state.name !== prevState.current) {
|
|
102
|
+
const reason = "reason" in state ? state.reason : "";
|
|
103
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
104
|
+
const message = typeof reason == "string" ? reason : state.name;
|
|
105
|
+
zeroEvents2.emit({
|
|
106
|
+
type: "error",
|
|
107
|
+
message
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}, [state, zeroEvents2]), null;
|
|
112
|
+
}
|
|
113
|
+
);
|
|
89
114
|
return {
|
|
90
115
|
zeroEvents,
|
|
91
116
|
ProvideZero,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,
|
|
5
|
-
"names": ["zero"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["zero", "zeroEvents"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { defineQueries, defineQuery } from "@rocicorp/zero";
|
|
2
|
+
import { useConnectionState, useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
3
|
+
import { createEmitter, mapObject } from "@take-out/helpers";
|
|
4
|
+
import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
|
|
4
5
|
import { createPermissions } from "./createPermissions.mjs";
|
|
5
6
|
import { createUseQuery } from "./createUseQuery.mjs";
|
|
6
7
|
import { createMutators } from "./helpers/createMutators.mjs";
|
|
@@ -11,16 +12,23 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
11
12
|
function createZeroClient({
|
|
12
13
|
schema,
|
|
13
14
|
models,
|
|
14
|
-
groupedQueries
|
|
15
|
-
disableInlineQueries = !1
|
|
15
|
+
groupedQueries
|
|
16
16
|
}) {
|
|
17
17
|
setSchema(schema);
|
|
18
|
-
|
|
19
|
-
const
|
|
18
|
+
const wrappedNamespaces = {};
|
|
19
|
+
for (const [namespace, queries] of Object.entries(groupedQueries)) {
|
|
20
|
+
wrappedNamespaces[namespace] = {};
|
|
21
|
+
for (const [name, fn] of Object.entries(queries)) registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(({
|
|
22
|
+
args
|
|
23
|
+
}) => fn(args));
|
|
24
|
+
}
|
|
25
|
+
const customQueries = defineQueries(wrappedNamespaces),
|
|
26
|
+
DisabledContext = createContext(!1),
|
|
20
27
|
modelWritePermissions = mapObject(models, val => val.permissions);
|
|
21
28
|
let latestZeroInstance = null;
|
|
22
29
|
const zero = new Proxy({}, {
|
|
23
30
|
get(_, key) {
|
|
31
|
+
if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
|
|
24
32
|
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
25
33
|
}
|
|
26
34
|
}),
|
|
@@ -33,7 +41,7 @@ function createZeroClient({
|
|
|
33
41
|
useAuthData = () => use(AuthDataContext),
|
|
34
42
|
useQuery = createUseQuery({
|
|
35
43
|
DisabledContext,
|
|
36
|
-
|
|
44
|
+
customQueries
|
|
37
45
|
});
|
|
38
46
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
39
47
|
const disabled = use(DisabledContext),
|
|
@@ -43,7 +51,7 @@ function createZeroClient({
|
|
|
43
51
|
let baseQuery = zero.query[table].one();
|
|
44
52
|
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
|
|
45
53
|
})(),
|
|
46
|
-
[data, status] =
|
|
54
|
+
[data, status] = zeroUseQuery(query, {
|
|
47
55
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
48
56
|
});
|
|
49
57
|
debug && console.info("usePermission()", {
|
|
@@ -73,22 +81,36 @@ function createZeroClient({
|
|
|
73
81
|
children: /* @__PURE__ */jsxs(ZeroProvider, {
|
|
74
82
|
schema,
|
|
75
83
|
kvStore: "mem",
|
|
76
|
-
onError: error => {
|
|
77
|
-
console.error("Zero Error:", error), zeroEvents.emit({
|
|
78
|
-
type: "error",
|
|
79
|
-
message: error
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
84
|
mutators,
|
|
83
85
|
...props,
|
|
84
|
-
children: [/* @__PURE__ */jsx(SetZeroInstance, {}),
|
|
86
|
+
children: [/* @__PURE__ */jsx(SetZeroInstance, {}), /* @__PURE__ */jsx(ConnectionMonitor, {
|
|
87
|
+
zeroEvents
|
|
88
|
+
}), children]
|
|
85
89
|
})
|
|
86
90
|
});
|
|
87
91
|
},
|
|
88
92
|
SetZeroInstance = () => {
|
|
89
93
|
const zero2 = useZero();
|
|
90
94
|
return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
|
|
91
|
-
}
|
|
95
|
+
},
|
|
96
|
+
ConnectionMonitor = memo(({
|
|
97
|
+
zeroEvents: zeroEvents2
|
|
98
|
+
}) => {
|
|
99
|
+
const state = useConnectionState(),
|
|
100
|
+
prevState = useRef(state.name);
|
|
101
|
+
return useEffect(() => {
|
|
102
|
+
if (state.name !== prevState.current) {
|
|
103
|
+
const reason = "reason" in state ? state.reason : "";
|
|
104
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
105
|
+
const message = typeof reason == "string" ? reason : state.name;
|
|
106
|
+
zeroEvents2.emit({
|
|
107
|
+
type: "error",
|
|
108
|
+
message
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}, [state, zeroEvents2]), null;
|
|
113
|
+
});
|
|
92
114
|
return {
|
|
93
115
|
zeroEvents,
|
|
94
116
|
ProvideZero,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useZero","ZeroProvider","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","groupedQueries","
|
|
1
|
+
{"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","groupedQueries","wrappedNamespaces","namespace","queries","Object","entries","name","fn","args","customQueries","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","value","kvStore","SetZeroInstance","ConnectionMonitor","zero2","zeroEvents2","state","prevState","current","reason","message","emit","type"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { defineQueries, defineQuery } from "@rocicorp/zero";
|
|
3
|
+
import { useConnectionState, useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
4
|
+
import { createEmitter, mapObject } from "@take-out/helpers";
|
|
5
|
+
import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
|
|
5
6
|
import { createPermissions } from "./createPermissions.native.js";
|
|
6
7
|
import { createUseQuery } from "./createUseQuery.native.js";
|
|
7
8
|
import { createMutators } from "./helpers/createMutators.native.js";
|
|
@@ -12,24 +13,30 @@ function createZeroClient(param) {
|
|
|
12
13
|
var {
|
|
13
14
|
schema,
|
|
14
15
|
models,
|
|
15
|
-
groupedQueries
|
|
16
|
-
disableInlineQueries = !1
|
|
16
|
+
groupedQueries
|
|
17
17
|
} = param;
|
|
18
18
|
setSchema(schema);
|
|
19
|
-
var
|
|
19
|
+
var wrappedNamespaces = {},
|
|
20
|
+
_iteratorNormalCompletion = !0,
|
|
20
21
|
_didIteratorError = !1,
|
|
21
22
|
_iteratorError = void 0;
|
|
22
23
|
try {
|
|
23
24
|
for (var _iterator = Object.entries(groupedQueries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
24
|
-
var [namespace, queries] = _step.value
|
|
25
|
-
|
|
25
|
+
var [namespace, queries] = _step.value;
|
|
26
|
+
wrappedNamespaces[namespace] = {};
|
|
27
|
+
var _iteratorNormalCompletion1 = !0,
|
|
26
28
|
_didIteratorError1 = !1,
|
|
27
29
|
_iteratorError1 = void 0;
|
|
28
30
|
try {
|
|
29
|
-
for (var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
for (var _loop = function () {
|
|
32
|
+
var [name, fn] = _step1.value;
|
|
33
|
+
registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(function (param2) {
|
|
34
|
+
var {
|
|
35
|
+
args
|
|
36
|
+
} = param2;
|
|
37
|
+
return fn(args);
|
|
38
|
+
});
|
|
39
|
+
}, _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop();
|
|
33
40
|
} catch (err) {
|
|
34
41
|
_didIteratorError1 = !0, _iteratorError1 = err;
|
|
35
42
|
} finally {
|
|
@@ -49,13 +56,15 @@ function createZeroClient(param) {
|
|
|
49
56
|
if (_didIteratorError) throw _iteratorError;
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
|
-
var
|
|
59
|
+
var customQueries = defineQueries(wrappedNamespaces),
|
|
60
|
+
DisabledContext = /* @__PURE__ */createContext(!1),
|
|
53
61
|
modelWritePermissions = mapObject(models, function (val) {
|
|
54
62
|
return val.permissions;
|
|
55
63
|
}),
|
|
56
64
|
latestZeroInstance = null,
|
|
57
65
|
zero = new Proxy({}, {
|
|
58
66
|
get(_, key) {
|
|
67
|
+
if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
|
|
59
68
|
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
60
69
|
}
|
|
61
70
|
}),
|
|
@@ -70,7 +79,7 @@ function createZeroClient(param) {
|
|
|
70
79
|
},
|
|
71
80
|
useQuery = createUseQuery({
|
|
72
81
|
DisabledContext,
|
|
73
|
-
|
|
82
|
+
customQueries
|
|
74
83
|
});
|
|
75
84
|
function usePermission(table, objOrId) {
|
|
76
85
|
var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
|
|
@@ -84,7 +93,7 @@ function createZeroClient(param) {
|
|
|
84
93
|
return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
|
|
85
94
|
});
|
|
86
95
|
}(),
|
|
87
|
-
[data, status] =
|
|
96
|
+
[data, status] = zeroUseQuery(query, {
|
|
88
97
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
89
98
|
});
|
|
90
99
|
debug && console.info("usePermission()", {
|
|
@@ -118,22 +127,37 @@ function createZeroClient(param) {
|
|
|
118
127
|
children: /* @__PURE__ */_jsxs(ZeroProvider, {
|
|
119
128
|
schema,
|
|
120
129
|
kvStore: "mem",
|
|
121
|
-
onError: function (error) {
|
|
122
|
-
console.error("Zero Error:", error), zeroEvents.emit({
|
|
123
|
-
type: "error",
|
|
124
|
-
message: error
|
|
125
|
-
});
|
|
126
|
-
},
|
|
127
130
|
mutators,
|
|
128
131
|
...props,
|
|
129
|
-
children: [/* @__PURE__ */_jsx(SetZeroInstance, {}),
|
|
132
|
+
children: [/* @__PURE__ */_jsx(SetZeroInstance, {}), /* @__PURE__ */_jsx(ConnectionMonitor, {
|
|
133
|
+
zeroEvents
|
|
134
|
+
}), children]
|
|
130
135
|
})
|
|
131
136
|
});
|
|
132
137
|
},
|
|
133
138
|
SetZeroInstance = function () {
|
|
134
139
|
var zero2 = useZero();
|
|
135
140
|
return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
|
|
136
|
-
}
|
|
141
|
+
},
|
|
142
|
+
ConnectionMonitor = /* @__PURE__ */memo(function (param2) {
|
|
143
|
+
var {
|
|
144
|
+
zeroEvents: zeroEvents2
|
|
145
|
+
} = param2,
|
|
146
|
+
state = useConnectionState(),
|
|
147
|
+
prevState = useRef(state.name);
|
|
148
|
+
return useEffect(function () {
|
|
149
|
+
if (state.name !== prevState.current) {
|
|
150
|
+
var reason = "reason" in state ? state.reason : "";
|
|
151
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
152
|
+
var message = typeof reason == "string" ? reason : state.name;
|
|
153
|
+
zeroEvents2.emit({
|
|
154
|
+
type: "error",
|
|
155
|
+
message
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}, [state, zeroEvents2]), null;
|
|
160
|
+
});
|
|
137
161
|
return {
|
|
138
162
|
zeroEvents,
|
|
139
163
|
ProvideZero,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useZero","ZeroProvider","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","createZeroClient","param","schema","models","groupedQueries","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","createZeroClient","param","schema","models","groupedQueries","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","customQueries","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zero2","zeroEvents2","state","prevState","current","reason"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|