on-zero 0.4.49 → 0.4.50
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.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +6 -0
- package/dist/cjs/createUseQuery.native.js +6 -0
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +5 -1
- package/dist/cjs/createUseQueryDirect.native.js +5 -1
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/httpPull/auth.test.native.js.map +1 -1
- package/dist/cjs/httpPull/churn.test.native.js.map +1 -1
- package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -1
- package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -1
- package/dist/cjs/httpPull/integration.test.native.js.map +1 -1
- package/dist/cjs/httpPull/rebase.test.native.js.map +1 -1
- package/dist/cjs/httpPull/relations.test.native.js.map +1 -1
- package/dist/cjs/httpPull/testHarness.native.js.map +1 -1
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/testSetup.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/useContentStable.cjs +66 -0
- package/dist/cjs/useContentStable.native.js +93 -0
- package/dist/cjs/useContentStable.native.js.map +1 -0
- package/dist/cjs/useContentStable.test.cjs +105 -0
- package/dist/cjs/useContentStable.test.native.js +108 -0
- package/dist/cjs/useContentStable.test.native.js.map +1 -0
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +6 -0
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +6 -0
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +5 -1
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +5 -1
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/useContentStable.mjs +40 -0
- package/dist/esm/useContentStable.mjs.map +1 -0
- package/dist/esm/useContentStable.native.js +64 -0
- package/dist/esm/useContentStable.native.js.map +1 -0
- package/dist/esm/useContentStable.test.mjs +106 -0
- package/dist/esm/useContentStable.test.mjs.map +1 -0
- package/dist/esm/useContentStable.test.native.js +106 -0
- package/dist/esm/useContentStable.test.native.js.map +1 -0
- package/package.json +2 -2
- package/src/createUseQuery.tsx +13 -0
- package/src/createUseQueryDirect.tsx +10 -1
- package/src/useContentStable.test.ts +61 -0
- package/src/useContentStable.ts +78 -0
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/useContentStable.d.ts +3 -0
- package/types/useContentStable.d.ts.map +1 -0
- package/types/useContentStable.test.d.ts +2 -0
- package/types/useContentStable.test.d.ts.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","zql_exports","__export","zql","module","exports","import_state","require","Proxy","get","_target","prop","b","getZQL"],"sources":["../../src/zql.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,WAAA;AAAAC,QAAA,CAAAD,WAAA;EAAAE,GAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAuB,CAAAK,WAAA;AAIhB,IAAAK,YAAgB,GAAAC,OAA0B;AAAA,IAC/CJ,GAAI,OAAAK,KAAS,EAAM;EACjBC,IAAAC,OAAM,EAAAC,IAAI;IACV,IAAAC,CAAA,GAAQ,CAAU,GAAAN,YAAI,CAAAO,MAAA;IACxB,OAAAD,CAAA,CAAAD,IAAA;EACD","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import { addContextToQuery, asQueryInternals } from "@rocicorp/zero/bindings";
|
|
|
3
3
|
import { useContext, useMemo, useRef } from "react";
|
|
4
4
|
import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
|
|
5
5
|
import { resolveQuery } from "./resolveQuery.mjs";
|
|
6
|
+
import { useContentStable } from "./useContentStable.mjs";
|
|
6
7
|
const EMPTY_PLURAL = Object.freeze([]);
|
|
7
8
|
const RESULT_UNKNOWN = Object.freeze({
|
|
8
9
|
type: "unknown"
|
|
@@ -79,6 +80,11 @@ function createUseQuery({
|
|
|
79
80
|
out = [EMPTY_PLURAL, rawOut[1] ?? RESULT_UNKNOWN];
|
|
80
81
|
}
|
|
81
82
|
}
|
|
83
|
+
const stableData = useContentStable(out?.[0]);
|
|
84
|
+
const stableInfo = useContentStable(out?.[1]);
|
|
85
|
+
if (stableData !== out?.[0] || stableInfo !== out?.[1]) {
|
|
86
|
+
out = [stableData, stableInfo];
|
|
87
|
+
}
|
|
82
88
|
if (process.env.NODE_ENV === "development") {
|
|
83
89
|
if (process.env.DEBUG_ZERO_QUERIES === "1") useZeroDebug(queryRequest, options, out);
|
|
84
90
|
}
|
|
@@ -1 +1 @@
|
|
|
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","fn","args","disableMode","lastRef","paramsKey","JSON","stringify","optionEnabled","optionTTL","enabled","ttl","effectiveEnabled","effectiveOptions","rawOut","out","fallback","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","current"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,iBAAA,EAAmBC,gBAAA,QAAwB;AACpD,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;
|
|
1
|
+
{"version":3,"names":["useQuery","zeroUseQuery","addContextToQuery","asQueryInternals","useContext","useMemo","useRef","useZeroDebug","resolveQuery","useContentStable","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","fn","args","disableMode","lastRef","paramsKey","JSON","stringify","optionEnabled","optionTTL","enabled","ttl","effectiveEnabled","effectiveOptions","rawOut","out","fallback","stableData","stableInfo","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","current"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,iBAAA,EAAmBC,gBAAA,QAAwB;AACpD,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;AAChD,SAASC,gBAAA,QAAwB;AA0CjC,MAAMC,YAAA,GAAeC,MAAA,CAAOC,MAAA,CAAO,EAAE;AACrC,MAAMC,cAAA,GAAiBF,MAAA,CAAOC,MAAA,CAAO;EAAEE,IAAA,EAAM;AAAmB,CAAC;AACjE,MAAMC,qBAAA,GAAwBJ,MAAA,CAAOC,MAAA,CAAO,CAACF,YAAA,EAAcG,cAAc,CAAC;AAC1E,MAAMG,uBAAA,GAA0BL,MAAA,CAAOC,MAAA,CAAO,CAAC,QAAWC,cAAc,CAAC;AAQlE,SAASI,iBAAiBC,YAAA,EAA6D;EAC5F,IAAI;IACF,MAAMC,KAAA,GAAQjB,iBAAA,CAAkBgB,YAAA,EAAqB,CAAC,CAAU;IAChE,MAAME,SAAA,GAAYjB,gBAAA,CAAiBgB,KAAK;IACxC,OAAOC,SAAA,CAAUC,MAAA,CAAOC,QAAA,GAAWN,uBAAA,GAA0BD,qBAAA;EAC/D,QAAQ;IAGN,OAAOA,qBAAA;EACT;AACF;AAGO,SAASQ,kBAAkBC,eAAA,EAAsBC,UAAA,EAAiB;EACvE,MAAMC,SAAA,GACJD,UAAA,KAAe,UACdD,eAAA,IACC,OAAOA,eAAA,KAAoB,YAC3B,EAAE,aAAaA,eAAA,KACf,EAAE,SAASA,eAAA;EAEf,OAAO;IACLG,MAAA,EAAQD,SAAA,GAAYF,eAAA,GAAkB;IACtCI,OAAA,EAASF,SAAA,GAAYD,UAAA,GAAaD;EACpC;AACF;AAEO,SAASK,eAA0C;EACxDC,eAAA;EACAC;AACF,GAGyB;EAavB,IAAI,OAAOC,MAAA,KAAW,aAAa;IACjC,OAAQ,CAACC,EAAA,EAAST,eAAA,EAAsBC,UAAA,KAAoB;MAC1D,MAAM;QAAEE;MAAO,IAAIJ,iBAAA,CAAkBC,eAAA,EAAiBC,UAAU;MAChE,MAAMP,YAAA,GAAeV,YAAA,CAAa;QAAEuB,aAAA;QAAeE,EAAA;QAAIN;MAAO,CAAC;MAC/D,OAAOV,gBAAA,CAAiBC,YAAY;IACtC;EACF;EAEA,SAASlB,SAAA,GAAYkC,IAAA,EAAkB;IACrC,MAAMC,WAAA,GAAc/B,UAAA,CAAW0B,eAAe;IAC9C,MAAMM,OAAA,GAAU9B,MAAA,CAAYS,qBAAqB;IACjD,MAAM,CAACkB,EAAA,EAAIT,eAAA,EAAiBC,UAAU,IAAIS,IAAA;IAE1C,MAAM;MAAEP,MAAA;MAAQC;IAAQ,IAAIL,iBAAA,CAAkBC,eAAA,EAAiBC,UAAU;IAOzE,MAAMY,SAAA,GAAYV,MAAA,KAAW,SAAY,KAAKW,IAAA,CAAKC,SAAA,CAAUZ,MAAM;IACnE,MAAMT,YAAA,GAAeb,OAAA,CACnB,MAAMG,YAAA,CAAa;MAAEuB,aAAA;MAAeE,EAAA;MAAIN;IAAO,CAAC;IAAA;IAEhD,CAACM,EAAA,EAAII,SAAS,CAChB;IAIA,IAAIG,aAAA;IACJ,IAAIC,SAAA;IACJ,IAAI,OAAOb,OAAA,KAAY,WAAW;MAChCY,aAAA,GAAgBZ,OAAA;IAClB,WAAWA,OAAA,EAAS;MAClBY,aAAA,GAAgBZ,OAAA,CAAQc,OAAA;MACxBD,SAAA,GAAYb,OAAA,CAAQe,GAAA;IACtB;IAQA,MAAMC,gBAAA,GAAmBT,WAAA,GAAc,QAAQK,aAAA;IAC/C,MAAMK,gBAAA,GAAmBxC,OAAA,CACvB,OAAO;MAAEqC,OAAA,EAASE,gBAAA;MAAkBD,GAAA,EAAKF;IAAU,IACnD,CAACG,gBAAA,EAAkBH,SAAS,CAC9B;IACA,MAAMK,MAAA,GAAS7C,YAAA,CAAaiB,YAAA,EAAc2B,gBAAgB;IAS1D,IAAIE,GAAA,GAAWD,MAAA;IACf,IAAIA,MAAA,GAAS,CAAC,MAAM,MAAM;MACxB,MAAME,QAAA,GAAW/B,gBAAA,CAAiBC,YAAY;MAC9C,IAAI8B,QAAA,KAAajC,qBAAA,EAAuB;QACtCgC,GAAA,GAAM,CAACrC,YAAA,EAAcoC,MAAA,CAAO,CAAC,KAAKjC,cAAc;MAClD;IACF;IAQA,MAAMoC,UAAA,GAAaxC,gBAAA,CAAiBsC,GAAA,GAAM,CAAC,CAAC;IAC5C,MAAMG,UAAA,GAAazC,gBAAA,CAAiBsC,GAAA,GAAM,CAAC,CAAC;IAC5C,IAAIE,UAAA,KAAeF,GAAA,GAAM,CAAC,KAAKG,UAAA,KAAeH,GAAA,GAAM,CAAC,GAAG;MACtDA,GAAA,GAAM,CAACE,UAAA,EAAYC,UAAU;IAC/B;IAEA,IAAIC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIF,OAAA,CAAQC,GAAA,CAAIE,kBAAA,KAAuB,KAErC/C,YAAA,CAAaW,YAAA,EAAcU,OAAA,EAASmB,GAAG;IAC3C;IAEA,IAAI,CAACZ,WAAA,EAAa;MAChBC,OAAA,CAAQmB,OAAA,GAAUR,GAAA;MAClB,OAAOA,GAAA;IACT;IAEA,IAAIZ,WAAA,KAAgB,cAAc;MAIhC,IAAIC,OAAA,CAAQmB,OAAA,KAAYxC,qBAAA,EAAuB;QAC7C,OAAOE,gBAAA,CAAiBC,YAAY;MACtC;MACA,OAAOkB,OAAA,CAAQmB,OAAA;IACjB;IAEA,OAAOtC,gBAAA,CAAiBC,YAAY;EACtC;EAEA,OAAOlB,QAAA;AACT","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import { addContextToQuery, asQueryInternals } from "@rocicorp/zero/bindings";
|
|
|
3
3
|
import { useContext, useMemo, useRef } from "react";
|
|
4
4
|
import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
|
|
5
5
|
import { resolveQuery } from "./resolveQuery.native.js";
|
|
6
|
+
import { useContentStable } from "./useContentStable.native.js";
|
|
6
7
|
function _type_of(obj) {
|
|
7
8
|
"@swc/helpers - typeof";
|
|
8
9
|
|
|
@@ -93,6 +94,11 @@ function createUseQuery(param) {
|
|
|
93
94
|
out = [EMPTY_PLURAL, (_rawOut_ = rawOut[1]) !== null && _rawOut_ !== void 0 ? _rawOut_ : RESULT_UNKNOWN];
|
|
94
95
|
}
|
|
95
96
|
}
|
|
97
|
+
var stableData = useContentStable(out === null || out === void 0 ? void 0 : out[0]);
|
|
98
|
+
var stableInfo = useContentStable(out === null || out === void 0 ? void 0 : out[1]);
|
|
99
|
+
if (stableData !== (out === null || out === void 0 ? void 0 : out[0]) || stableInfo !== (out === null || out === void 0 ? void 0 : out[1])) {
|
|
100
|
+
out = [stableData, stableInfo];
|
|
101
|
+
}
|
|
96
102
|
if (process.env.NODE_ENV === "development") {
|
|
97
103
|
if (process.env.DEBUG_ZERO_QUERIES === "1") useZeroDebug(queryRequest, options, out);
|
|
98
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","zeroUseQuery","addContextToQuery","asQueryInternals","useContext","useMemo","useRef","useZeroDebug","resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","emptyResponseFor","queryRequest","query","internals","format","singular","e","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","createUseQuery","param","DisabledContext","customQueries","window","fn","_len","arguments","length","args","Array","_key","disableMode","lastRef","paramsKey","JSON","stringify","optionEnabled","optionTTL","enabled","ttl","effectiveEnabled","effectiveOptions"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,iBAAA,EAAmBC,gBAAA,QAAwB;AACpD,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;
|
|
1
|
+
{"version":3,"names":["useQuery","zeroUseQuery","addContextToQuery","asQueryInternals","useContext","useMemo","useRef","useZeroDebug","resolveQuery","useContentStable","_type_of","obj","Symbol","constructor","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","emptyResponseFor","queryRequest","query","internals","format","singular","e","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","createUseQuery","param","DisabledContext","customQueries","window","fn","_len","arguments","length","args","Array","_key","disableMode","lastRef","paramsKey","JSON","stringify","optionEnabled","optionTTL","enabled","ttl","effectiveEnabled","effectiveOptions"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,iBAAA,EAAmBC,gBAAA,QAAwB;AACpD,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;AAChD,SAASC,gBAAA,QAAwB;AA0CjC,SAAMC,SAAAC,GAAe;EACrB,uBAAuB;;EACvB,OAAMA,GAAA,WAAAC,MAAA,KAAwB,WAAe,IAAAD,GAAA,CAAAE,WAAc,KAAAD,MAAe,qBAAAD,GAAA;AAC1E;AAQO,IAAAG,YAAS,GAAAC,MAAA,CAAiBC,MAAA;AAC/B,IAAAC,cAAI,GAAAF,MAAA,CAAAC,MAAA;EACFE,IAAA;AACA;AACA,IAAAC,qBAAiB,GAAOJ,MAAA,CAAAC,MAAW,EACrCF,YAAQ,EAGNG,cAAO,EACT;AACF,IAAAG,uBAAA,GAAAL,MAAA,CAAAC,MAAA,EAGO,QACLC,cAAM,CAON;AAAO,SACLI,gBAAoBA,CAAAC,YAAA;EAAkB,IACtC;IACF,IAAAC,KAAA,GAAArB,iBAAA,CAAAoB,YAAA;IACF,IAAAE,SAAA,GAAArB,gBAAA,CAAAoB,KAAA;IAEO,OAASC,SAAA,CAAAC,MAA0C,CAAAC,QAAA,GAAAN,uBAAA,GAAAD,qBAAA;EACxD,SAAAQ,CAAA;IACA,OAAAR,qBAAA;EACF;AAgBE;AACE,SAAAS,iBAAkBA,CAAAC,eAAsB,EAAAC,UAAoB;EAC1D,IAAAC,SAAQ,GAAAD,UAAW,eAAkBD,eAAA,IAAiB,QAAUA,eAAA,iCAAAnB,QAAA,CAAAmB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;EAChE;IACAG,MAAA,EAAAD,SAAO,GAAAF,eAAiB,GAAY;IACtCI,OAAA,EAAAF,SAAA,GAAAD,UAAA,GAAAD;EACF;AAEA;AACE,SAAAK,cAAMA,CAAcC,KAAA;EACpB;IAAAC,eAAgB;IAAAC;EAAY,IAAAF,KAAqB;EACjD,WAAOG,MAAI,gBAAiB;IAE5B,OAAM,UAAUC,EAAA,EAAAV,eAAY,EAAAC,UAAkB;MAO9C,IAAM;QAAAE;MAAA,IAAYJ,iBAAW,CAAAC,eAAsB,EAAAC,UAAgB;MACnE,IAAMR,YAAA,GAAed,YAAA;QACnB6B,aAAM;QAA0CE,EAAA;QAE/CP;MACH;MAIA,OAAIX,gBAAA,CAAAC,YAAA;IACJ;EACA;EACE,SAAAtB,SAAA,EAAgB;IAClB,SAAAwC,IAAW,GAAAC,SAAS,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAClBF,IAAA,CAAAE,IAAA,IAAAJ,SAAgB,CAAAI,IAAQ;IACxB;IACF,IAAAC,WAAA,GAAA1C,UAAA,CAAAgC,eAAA;IAQA,IAAAW,OAAM,GAAAzC,MAAA,CAAAa,qBAAiC;IACvC,KAAAoB,EAAM,EAAAV,eAAA,EAAmBC,UAAA,IAAAa,IAAA;IAAA,IACvB;MAAAX,MAAS;MAAAC;IAAS,IAAAL,iBAAuB,CAAAC,eAAU,EAAAC,UAAA;IAAA,IAClDkB,SAAA,GAAAhB,MAAkB,UAAS,SAAAiB,IAAA,CAAAC,SAAA,CAAAlB,MAAA;IAC9B,IAAAV,YAAA,GAAAjB,OAAA,CACA,YAAM;MASF,OAAWG,YAAA;QACX6B,aAAU;QACZE,EAAM;QACFP;MACF;IACF;IACF;IAQA,CACAO,EAAM,EACFS,SAAA,CAEJ;IAEA,IAAIG,aAAY;IACd,IAAAC,SAAI;IAEF,WAAAnB,OAAa,cAAc;MAC/BkB,aAAA,GAAAlB,OAAA;IAEA,OAAK,IAAAA,OAAa;MAChBkB,aAAQ,GAAAlB,OAAU,CAAAoB,OAAA;MAClBD,SAAO,GAAAnB,OAAA,CAAAqB,GAAA;IACT;IAEA,IAAIC,gBAAgB,GAAAT,WAAc,WAAAK,aAAA;IAIhC,IAAAK,gBAAY,GAAAnD,OAAY;MACtB;QACFgD,OAAA,EAAAE,gBAAA;QACAD,GAAA,EAAOF;MACT;IAEA,IACFG,gBAAA,EAEAH,SAAO,CACT","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import { useEmitterValue } from "@take-out/helpers";
|
|
|
3
3
|
import { useContext, useMemo, useRef, useSyncExternalStore } from "react";
|
|
4
4
|
import { emptyResponseFor, parseUseQueryArgs } from "./createUseQuery.mjs";
|
|
5
5
|
import { resolveQuery } from "./resolveQuery.mjs";
|
|
6
|
+
import { useContentStable } from "./useContentStable.mjs";
|
|
6
7
|
const DISABLED_SUBSCRIBE = () => () => {};
|
|
7
8
|
const emptyArray = [];
|
|
8
9
|
const resultTypeUnknown = {
|
|
@@ -199,7 +200,10 @@ function createUseQueryDirect({
|
|
|
199
200
|
return directViewStore.getView(zero, queryRequest, effectiveEnabled, ttl);
|
|
200
201
|
}, [queryRequest, enabled, ttl, version]);
|
|
201
202
|
const getEmpty = () => emptyForQuery;
|
|
202
|
-
const
|
|
203
|
+
const rawOut = useSyncExternalStore(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
204
|
+
const stableData = useContentStable(rawOut[0]);
|
|
205
|
+
const stableInfo = useContentStable(rawOut[1]);
|
|
206
|
+
const out = stableData !== rawOut[0] || stableInfo !== rawOut[1] ? [stableData, stableInfo] : rawOut;
|
|
203
207
|
if (!disableMode) {
|
|
204
208
|
lastRef.current = out;
|
|
205
209
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","emptyResponseFor","parseUseQueryArgs","resolveQuery","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","message","refetch","details","getSnapshot","data","resultType","Array","isArray","length","DirectViewWrapper","constructor","query","zero","ttl","onDematerialized","snapshot","materializeIfNeeded","view","listeners","Set","destroyTimer","onData","cloned","listener","destroyView","materialize","addListener","current","destroy","updateTTL","subscribe","notify","add","clearTimeout","delete","size","setTimeout","DirectViewStore","views","Map","getView","queryRequest","enabled","context","queryInternals","format","hash","clientID","get","dematerialized","set","createUseQueryDirect","DisabledContext","customQueries","getZero","zeroVersion","window","fn","paramsOrOptions","optionsArg","params","directViewStore","useQueryDirect","args","disableMode","version","options","paramsKey","JSON","stringify","emptyForQuery","lastRef","effectiveEnabled","getEmpty","out"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,iBAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,SAAA,QACK;AACP,SAASC,eAAA,QAAqC;AAC9C,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,EAAQC,oBAAA,QAA0C;AAEhF,SACEC,gBAAA,EACAC,iBAAA,QAIK;AACP,SAASC,YAAA,QAAoB;
|
|
1
|
+
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","emptyResponseFor","parseUseQueryArgs","resolveQuery","useContentStable","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","message","refetch","details","getSnapshot","data","resultType","Array","isArray","length","DirectViewWrapper","constructor","query","zero","ttl","onDematerialized","snapshot","materializeIfNeeded","view","listeners","Set","destroyTimer","onData","cloned","listener","destroyView","materialize","addListener","current","destroy","updateTTL","subscribe","notify","add","clearTimeout","delete","size","setTimeout","DirectViewStore","views","Map","getView","queryRequest","enabled","context","queryInternals","format","hash","clientID","get","dematerialized","set","createUseQueryDirect","DisabledContext","customQueries","getZero","zeroVersion","window","fn","paramsOrOptions","optionsArg","params","directViewStore","useQueryDirect","args","disableMode","version","options","paramsKey","JSON","stringify","emptyForQuery","lastRef","effectiveEnabled","getEmpty","rawOut","stableData","stableInfo","out"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,iBAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,SAAA,QACK;AACP,SAASC,eAAA,QAAqC;AAC9C,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,EAAQC,oBAAA,QAA0C;AAEhF,SACEC,gBAAA,EACAC,iBAAA,QAIK;AACP,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,QAAwB;AAejC,MAAMC,kBAAA,GAAqBA,CAAA,KAAM,MAAM,CAAC;AAsCxC,MAAMC,UAAA,GAAiC,EAAC;AACxC,MAAMC,iBAAA,GAAoB;EAAEC,IAAA,EAAM;AAAU;AAC5C,MAAMC,kBAAA,GAAqB;EAAED,IAAA,EAAM;AAAW;AAC9C,MAAME,eAAA,GAAkB;EAAEF,IAAA,EAAM;AAAQ;AACxC,MAAMG,4BAAA,GAA+C,CAAC,QAAWJ,iBAAiB;AAClF,MAAMK,6BAAA,GAAgD,CAAC,QAAWH,kBAAkB;AACpF,MAAMI,0BAAA,GAA6C,CAAC,QAAWH,eAAe;AAC9E,MAAMI,0BAAA,GAA6C,CAACR,UAAA,EAAYC,iBAAiB;AACjF,MAAMQ,2BAAA,GAA8C,CAACT,UAAA,EAAYG,kBAAkB;AACnF,MAAMO,wBAAA,GAA2C,CAACV,UAAA,EAAYI,eAAe;AAE7E,SAASO,mBAAmBC,QAAA,EAAmB;EAC7C,OAAOA,QAAA,GAAWP,4BAAA,GAA+BG,0BAAA;AACnD;AAEA,SAASK,UAAUC,KAAA,EAAmBC,KAAA,EAA0B;EAC9D,MAAMC,OAAA,GAAUD,KAAA,EAAOC,OAAA,IAAW;EAClC,OAAO;IACLd,IAAA,EAAM;IACNY,KAAA;IACAG,OAAA,EAASH,KAAA;IACTC,KAAA,EAAO;MACLb,IAAA,EAAMa,KAAA,EAAOA,KAAA,IAAS;MACtBC,OAAA;MACA,IAAID,KAAA,EAAOG,OAAA,GAAU;QAAEA,OAAA,EAASH,KAAA,CAAMG;MAAQ,IAAI,CAAC;IACrD;EACF;AACF;AAEA,SAASC,YACPP,QAAA,EACAQ,IAAA,EACAC,UAAA,EACAP,KAAA,EACAC,KAAA,EACgB;EAChB,IAAIH,QAAA,IAAYQ,IAAA,KAAS,QAAW;IAClC,IAAIC,UAAA,KAAe,YAAY,OAAOf,6BAAA;IACtC,IAAIe,UAAA,KAAe,SACjB,OAAON,KAAA,GAAQ,CAAC,QAAWF,SAAA,CAAUC,KAAA,EAAOC,KAAK,CAAC,IAAIR,0BAAA;IACxD,OAAOF,4BAAA;EACT;EAOA,IAAI,CAACO,QAAA,KAAaQ,IAAA,IAAQ,QAASE,KAAA,CAAMC,OAAA,CAAQH,IAAI,KAAKA,IAAA,CAAKI,MAAA,KAAW,IAAK;IAC7E,IAAIH,UAAA,KAAe,YAAY,OAAOZ,2BAAA;IACtC,IAAIY,UAAA,KAAe,SACjB,OAAON,KAAA,GAAQ,CAACf,UAAA,EAAYa,SAAA,CAAUC,KAAA,EAAOC,KAAK,CAAC,IAAIL,wBAAA;IACzD,OAAOF,0BAAA;EACT;EAEA,IAAIa,UAAA,KAAe,YAAY,OAAO,CAACD,IAAA,EAAMjB,kBAAkB;EAC/D,IAAIkB,UAAA,KAAe,SAAS,OAAO,CAACD,IAAA,EAAMP,SAAA,CAAUC,KAAA,EAAOC,KAAK,CAAC;EACjE,OAAO,CAACK,IAAA,EAAMnB,iBAAiB;AACjC;AAEA,MAAMwB,iBAAA,CAAwC;EAM5CC,YACmBC,KAAA,EACAC,IAAA,EACTC,GAAA,EACSjB,QAAA,EACAkB,gBAAA,EACjB;IALiB,KAAAH,KAAA,GAAAA,KAAA;IACA,KAAAC,IAAA,GAAAA,IAAA;IACT,KAAAC,GAAA,GAAAA,GAAA;IACS,KAAAjB,QAAA,GAAAA,QAAA;IACA,KAAAkB,gBAAA,GAAAA,gBAAA;IAEjB,KAAKC,QAAA,GAAWpB,kBAAA,CAAmBC,QAAQ;IAC3C,KAAKoB,mBAAA,CAAoB;EAC3B;EAdQC,IAAA;EACAF,QAAA;EACSG,SAAA,GAAY,mBAAIC,GAAA,CAAgB;EACzCC,YAAA;EAaAC,MAAA,GAASA,CAACjB,IAAA,EAAeC,UAAA,EAAoBN,KAAA,KAA6B;IAChF,MAAMuB,MAAA,GAASlB,IAAA,KAAS,SAAY,SAAY/B,SAAA,CAAU+B,IAAyB;IACnF,KAAKW,QAAA,GAAWZ,WAAA,CACd,KAAKP,QAAA,EACL0B,MAAA,EACAjB,UAAA,EACA,KAAKP,KAAA,EACLC,KACF;IACA,WAAWwB,QAAA,IAAY,KAAKL,SAAA,EAAW;MACrCK,QAAA,CAAS;IACX;EACF;EAEQzB,KAAA,GAAQA,CAAA,KAAM;IACpB,KAAK0B,WAAA,CAAY;IACjB,KAAKR,mBAAA,CAAoB;EAC3B;EAEQA,oBAAA,EAAsB;IAC5B,IAAI,KAAKC,IAAA,EAAM;IACf,KAAKA,IAAA,GAAO,KAAKL,IAAA,CAAKa,WAAA,CAAY,KAAKd,KAAA,EAAO;MAAEE,GAAA,EAAK,KAAKA;IAAI,CAAC;IAC/D,KAAKI,IAAA,CAAKS,WAAA,CAAY,KAAKL,MAAM;EACnC;EAEQG,YAAA,EAAc;IACpB,MAAMG,OAAA,GAAU,KAAKV,IAAA;IACrB,KAAKA,IAAA,GAAO;IACZ,IAAI,CAACU,OAAA,EAAS;IACd,IAAI;MACFA,OAAA,CAAQC,OAAA,CAAQ;IAClB,QAAQ,CAER;EACF;EAEAC,UAAUhB,GAAA,EAAsC;IAC9C,KAAKA,GAAA,GAAMA,GAAA;IACX,KAAKI,IAAA,EAAMY,SAAA,CAAUhB,GAAG;EAC1B;EAEAiB,SAAA,GAAaC,MAAA,IAAuB;IAClC,KAAKb,SAAA,CAAUc,GAAA,CAAID,MAAM;IACzB,IAAI,KAAKX,YAAA,KAAiB,QAAW;MACnCa,YAAA,CAAa,KAAKb,YAAY;MAC9B,KAAKA,YAAA,GAAe;IACtB;IACA,KAAKJ,mBAAA,CAAoB;IAEzB,OAAO,MAAM;MACX,KAAKE,SAAA,CAAUgB,MAAA,CAAOH,MAAM;MAC5B,IAAI,KAAKb,SAAA,CAAUiB,IAAA,KAAS,GAAG;QAC7B,KAAKf,YAAA,GAAegB,UAAA,CAAW,MAAM;UACnC,KAAKhB,YAAA,GAAe;UACpB,IAAI,KAAKF,SAAA,CAAUiB,IAAA,GAAO,GAAG;UAC7B,KAAKX,WAAA,CAAY;UACjB,KAAKV,gBAAA,CAAiB,IAAI;QAC5B,GAAG,EAAE;MACP;IACF;EACF;EAEAX,WAAA,GAAcA,CAAA,KAAM,KAAKY,QAAA;AAC3B;AAEA,MAAMsB,eAAA,CAAgB;EACHC,KAAA,GAAQ,mBAAIC,GAAA,CAA+B;EAE5DC,QACE5B,IAAA,EACA6B,YAAA,EACAC,OAAA,EACA7B,GAAA,EACY;IACZ,MAAMF,KAAA,GAAQzC,iBAAA,CAAkBuE,YAAA,EAAqB7B,IAAA,CAAK+B,OAAc;IACxE,MAAMC,cAAA,GAAiBzE,gBAAA,CAAiBwC,KAAK;IAE7C,IAAI,CAAC+B,OAAA,EAAS;MACZ,MAAM3B,QAAA,GAAWpB,kBAAA,CAAmBiD,cAAA,CAAeC,MAAA,CAAOjD,QAAQ;MAClE,OAAO;QACLkC,SAAA,EAAW/C,kBAAA;QACXoB,WAAA,EAAaA,CAAA,KAAMY;MACrB;IACF;IAEA,MAAM+B,IAAA,GAAO,GAAGlC,IAAA,CAAKmC,QAAQ,IAAIH,cAAA,CAAeE,IAAA,CAAK,CAAC;IACtD,IAAI7B,IAAA,GAAO,KAAKqB,KAAA,CAAMU,GAAA,CAAIF,IAAI;IAC9B,IAAI,CAAC7B,IAAA,EAAM;MACTA,IAAA,GAAO,IAAIR,iBAAA,CACTE,KAAA,EACAC,IAAA,EACAC,GAAA,EACA+B,cAAA,CAAeC,MAAA,CAAOjD,QAAA,EACrBqD,cAAA,IAAmB;QAClB,IAAI,KAAKX,KAAA,CAAMU,GAAA,CAAIF,IAAI,MAAMG,cAAA,EAAgB;UAC3C,KAAKX,KAAA,CAAMJ,MAAA,CAAOY,IAAI;QACxB;MACF,CACF;MACA,KAAKR,KAAA,CAAMY,GAAA,CAAIJ,IAAA,EAAM7B,IAAI;IAC3B,OAAO;MACLA,IAAA,CAAKY,SAAA,CAAUhB,GAAG;IACpB;IAEA,OAAOI,IAAA;EACT;AACF;AAEO,SAASkC,qBAAgD;EAC9DC,eAAA;EACAC,aAAA;EACAC,OAAA;EACAC;AACF,GAAsE;EAOpE,IAAI,OAAOC,MAAA,KAAW,aAAa;IACjC,OAAQ,CAACC,EAAA,EAASC,eAAA,EAAsBC,UAAA,KAAoB;MAC1D,MAAM;QAAEC;MAAO,IAAIhF,iBAAA,CAAkB8E,eAAA,EAAiBC,UAAU;MAChE,MAAMlB,YAAA,GAAe5D,YAAA,CAAa;QAAEwE,aAAA;QAAeI,EAAA;QAAIG;MAAO,CAAC;MAC/D,OAAOjF,gBAAA,CAAiB8D,YAAY;IACtC;EACF;EAEA,MAAMoB,eAAA,GAAkB,IAAIxB,eAAA,CAAgB;EAE5C,SAASyB,eAAA,GAAkBC,IAAA,EAAkB;IAC3C,MAAMC,WAAA,GAAczF,UAAA,CAAW6E,eAAe;IAC9C,MAAM,CAACK,EAAA,EAAIC,eAAA,EAAiBC,UAAU,IAAII,IAAA;IAE1C,MAAME,OAAA,GAAU3F,eAAA,CAAgBiF,WAAW;IAC3C,MAAM;MAAEK,MAAA;MAAQM;IAAQ,IAAItF,iBAAA,CAAkB8E,eAAA,EAAiBC,UAAU;IAEzE,IAAIjB,OAAA,GAAU;IACd,IAAI7B,GAAA,GAAuCzC,cAAA;IAC3C,IAAI,OAAO8F,OAAA,KAAY,WAAW;MAChCxB,OAAA,GAAUwB,OAAA;IACZ,WAAWA,OAAA,EAAS;MAClBxB,OAAA,GAAUwB,OAAA,CAAQxB,OAAA,KAAY;MAC9B7B,GAAA,GAAMqD,OAAA,CAAQrD,GAAA,IAAOzC,cAAA;IACvB;IAEA,MAAM+F,SAAA,GAAYP,MAAA,KAAW,SAAY,KAAKQ,IAAA,CAAKC,SAAA,CAAUT,MAAM;IAKnE,MAAMnB,YAAA,GAAejE,OAAA,CACnB,MAAMK,YAAA,CAAa;MAAEwE,aAAA;MAAeI,EAAA;MAAIG;IAAO,CAAC;IAAA;IAAA;IAGhD,CAACH,EAAA,EAAIU,SAAS,CAChB;IAEA,MAAMG,aAAA,GAAgB9F,OAAA,CAAQ,MAAMG,gBAAA,CAAiB8D,YAAY,GAAG,CAACA,YAAY,CAAC;IAClF,MAAM8B,OAAA,GAAU9F,MAAA,CAAY6F,aAAa;IAEzC,MAAMrD,IAAA,GAAOzC,OAAA,CAAQ,MAAyB;MAC5C,MAAMoC,IAAA,GAAO0C,OAAA,CAAQ;MACrB,IAAI,CAAC1C,IAAA,EAAM,OAAO;MAUlB,MAAM4D,gBAAA,GACJ,OAAQ5D,IAAA,CAAmCa,WAAA,KAAgB,aACvDiB,OAAA,GACA;MACN,OAAOmB,eAAA,CAAgBrB,OAAA,CAAQ5B,IAAA,EAAM6B,YAAA,EAAc+B,gBAAA,EAAkB3D,GAAG;IAG1E,GAAG,CAAC4B,YAAA,EAAcC,OAAA,EAAS7B,GAAA,EAAKoD,OAAO,CAAC;IAExC,MAAMQ,QAAA,GAAWA,CAAA,KAAMH,aAAA;IACvB,MAAMI,MAAA,GAAShG,oBAAA,CACbuC,IAAA,GAAOA,IAAA,CAAKa,SAAA,GAAY/C,kBAAA,EACxBkC,IAAA,GAAOA,IAAA,CAAKd,WAAA,GAAcsE,QAAA,EAC1BxD,IAAA,GAAOA,IAAA,CAAKd,WAAA,GAAcsE,QAC5B;IAGA,MAAME,UAAA,GAAa7F,gBAAA,CAAiB4F,MAAA,CAAO,CAAC,CAAC;IAC7C,MAAME,UAAA,GAAa9F,gBAAA,CAAiB4F,MAAA,CAAO,CAAC,CAAC;IAC7C,MAAMG,GAAA,GACJF,UAAA,KAAeD,MAAA,CAAO,CAAC,KAAKE,UAAA,KAAeF,MAAA,CAAO,CAAC,IAC9C,CAACC,UAAA,EAAYC,UAAU,IACxBF,MAAA;IAEN,IAAI,CAACV,WAAA,EAAa;MAChBO,OAAA,CAAQ5C,OAAA,GAAUkD,GAAA;MAClB,OAAOA,GAAA;IACT;IAEA,IAAIb,WAAA,KAAgB,cAAc;MAChC,OAAOO,OAAA,CAAQ5C,OAAA;IACjB;IAEA,OAAO2C,aAAA;EACT;EAEA,OAAOR,cAAA;AACT","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import { useEmitterValue } from "@take-out/helpers";
|
|
|
3
3
|
import { useContext, useMemo, useRef, useSyncExternalStore } from "react";
|
|
4
4
|
import { emptyResponseFor, parseUseQueryArgs } from "./createUseQuery.native.js";
|
|
5
5
|
import { resolveQuery } from "./resolveQuery.native.js";
|
|
6
|
+
import { useContentStable } from "./useContentStable.native.js";
|
|
6
7
|
function _class_call_check(instance, Constructor) {
|
|
7
8
|
if (!(instance instanceof Constructor)) {
|
|
8
9
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -306,7 +307,10 @@ function createUseQueryDirect(param) {
|
|
|
306
307
|
var getEmpty = function () {
|
|
307
308
|
return emptyForQuery;
|
|
308
309
|
};
|
|
309
|
-
var
|
|
310
|
+
var rawOut = useSyncExternalStore(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
311
|
+
var stableData = useContentStable(rawOut[0]);
|
|
312
|
+
var stableInfo = useContentStable(rawOut[1]);
|
|
313
|
+
var out = stableData !== rawOut[0] || stableInfo !== rawOut[1] ? [stableData, stableInfo] : rawOut;
|
|
310
314
|
if (!disableMode) {
|
|
311
315
|
lastRef.current = out;
|
|
312
316
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","emptyResponseFor","parseUseQueryArgs","resolveQuery","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","_error_message","message","_error_error","refetch","details","getSnapshot","data","resultType","Array","isArray","DirectViewWrapper","DirectViewWrapper2","query","zero","ttl","onDematerialized","_this","listeners","Set","onData","cloned","snapshot","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","listener","err","return","destroyView","materializeIfNeeded","subscribe","notify","add","destroyTimer","clearTimeout","delete","size","setTimeout","view","materialize","addListener","current"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,iBAAA,EAAAC,gBAAA,EAAAC,cAAA,EAAAC,SAAA;AAAA,SACEC,eAAA;AAAA,SACAC,UAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,oBAAA;AAAA,SACAC,gBAAA,EAAAC,iBAAA;AAAA,SACAC,YAAA;AAAA,SACKC,kBAAAC,
|
|
1
|
+
{"version":3,"names":["addContextToQuery","asQueryInternals","DEFAULT_TTL_MS","deepClone","useEmitterValue","useContext","useMemo","useRef","useSyncExternalStore","emptyResponseFor","parseUseQueryArgs","resolveQuery","useContentStable","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","_error_message","message","_error_error","refetch","details","getSnapshot","data","resultType","Array","isArray","DirectViewWrapper","DirectViewWrapper2","query","zero","ttl","onDematerialized","_this","listeners","Set","onData","cloned","snapshot","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","listener","err","return","destroyView","materializeIfNeeded","subscribe","notify","add","destroyTimer","clearTimeout","delete","size","setTimeout","view","materialize","addListener","current","destroy","e"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SAAAC,gBAAA;AAAA,cACE;AAAA,cAIK;AACP,cAAc;AACd,cAAc;AACd,SAAAC,SAAc;AACd,cAAc;AACd,cAAS;AACT,cAAc;AACd,cAAc;AACd,SAAAC,WAAc,EAAAC,aAAA;AACd,SAAAC,mBAAc;AACd,SAASC,uBAAa,EAAAC,yBAAqB;AAQ3C,SAAAC,gBAAA,EAAAC,sBAAA;AAAA,SACEJ,mBAEK,EACPI,sBAAA,EACER,gBAAA,EACAG,aAAA,EAAAD,WAGK,EACPN,UAAA,EACEC,OAAA,EACAU,gBAAA,EAAAD,yBAEK,E","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
function arraysShallowEqual(a, b) {
|
|
3
|
+
if (a === b) return true;
|
|
4
|
+
if (a.length !== b.length) return false;
|
|
5
|
+
for (let i = 0; i < a.length; i++) {
|
|
6
|
+
if (!Object.is(a[i], b[i])) return false;
|
|
7
|
+
}
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
function objectsShallowEqual(a, b) {
|
|
11
|
+
if (a === b) return true;
|
|
12
|
+
const ak = Object.keys(a);
|
|
13
|
+
const bk = Object.keys(b);
|
|
14
|
+
if (ak.length !== bk.length) return false;
|
|
15
|
+
for (const k of ak) {
|
|
16
|
+
if (!Object.is(a[k], b[k])) return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
function isContentEqual(a, b) {
|
|
21
|
+
if (Object.is(a, b)) return true;
|
|
22
|
+
if (a === null || b === null || a === void 0 || b === void 0) return false;
|
|
23
|
+
if (typeof a !== "object" || typeof b !== "object") return false;
|
|
24
|
+
const aIsArr = Array.isArray(a);
|
|
25
|
+
const bIsArr = Array.isArray(b);
|
|
26
|
+
if (aIsArr !== bIsArr) return false;
|
|
27
|
+
if (aIsArr && bIsArr) {
|
|
28
|
+
return arraysShallowEqual(a, b);
|
|
29
|
+
}
|
|
30
|
+
return objectsShallowEqual(a, b);
|
|
31
|
+
}
|
|
32
|
+
function useContentStable(value) {
|
|
33
|
+
const ref = useRef(value);
|
|
34
|
+
if (!isContentEqual(ref.current, value)) {
|
|
35
|
+
ref.current = value;
|
|
36
|
+
}
|
|
37
|
+
return ref.current;
|
|
38
|
+
}
|
|
39
|
+
export { isContentEqual, useContentStable };
|
|
40
|
+
//# sourceMappingURL=useContentStable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","arraysShallowEqual","a","b","length","i","Object","is","objectsShallowEqual","ak","keys","bk","k","isContentEqual","aIsArr","Array","isArray","bIsArr","useContentStable","value","ref","current"],"sources":["../../src/useContentStable.ts"],"sourcesContent":[null],"mappings":"AA0BA,SAASA,MAAA,QAAc;AAEvB,SAASC,mBAAmBC,CAAA,EAAuBC,CAAA,EAAgC;EACjF,IAAID,CAAA,KAAMC,CAAA,EAAG,OAAO;EACpB,IAAID,CAAA,CAAEE,MAAA,KAAWD,CAAA,CAAEC,MAAA,EAAQ,OAAO;EAClC,SAASC,CAAA,GAAI,GAAGA,CAAA,GAAIH,CAAA,CAAEE,MAAA,EAAQC,CAAA,IAAK;IACjC,IAAI,CAACC,MAAA,CAAOC,EAAA,CAAGL,CAAA,CAAEG,CAAC,GAAGF,CAAA,CAAEE,CAAC,CAAC,GAAG,OAAO;EACrC;EACA,OAAO;AACT;AAEA,SAASG,oBAAoBN,CAAA,EAAWC,CAAA,EAAoB;EAC1D,IAAID,CAAA,KAAMC,CAAA,EAAG,OAAO;EACpB,MAAMM,EAAA,GAAKH,MAAA,CAAOI,IAAA,CAAKR,CAA4B;EACnD,MAAMS,EAAA,GAAKL,MAAA,CAAOI,IAAA,CAAKP,CAA4B;EACnD,IAAIM,EAAA,CAAGL,MAAA,KAAWO,EAAA,CAAGP,MAAA,EAAQ,OAAO;EACpC,WAAWQ,CAAA,IAAKH,EAAA,EAAI;IAClB,IACE,CAACH,MAAA,CAAOC,EAAA,CACLL,CAAA,CAA8BU,CAAC,GAC/BT,CAAA,CAA8BS,CAAC,CAClC,GAEA,OAAO;EACX;EACA,OAAO;AACT;AAEO,SAASC,eAAeX,CAAA,EAAYC,CAAA,EAAqB;EAC9D,IAAIG,MAAA,CAAOC,EAAA,CAAGL,CAAA,EAAGC,CAAC,GAAG,OAAO;EAC5B,IAAID,CAAA,KAAM,QAAQC,CAAA,KAAM,QAAQD,CAAA,KAAM,UAAaC,CAAA,KAAM,QAAW,OAAO;EAC3E,IAAI,OAAOD,CAAA,KAAM,YAAY,OAAOC,CAAA,KAAM,UAAU,OAAO;EAC3D,MAAMW,MAAA,GAASC,KAAA,CAAMC,OAAA,CAAQd,CAAC;EAC9B,MAAMe,MAAA,GAASF,KAAA,CAAMC,OAAA,CAAQb,CAAC;EAC9B,IAAIW,MAAA,KAAWG,MAAA,EAAQ,OAAO;EAC9B,IAAIH,MAAA,IAAUG,MAAA,EAAQ;IACpB,OAAOhB,kBAAA,CAAmBC,CAAA,EAAyBC,CAAuB;EAC5E;EACA,OAAOK,mBAAA,CAAoBN,CAAA,EAAaC,CAAW;AACrD;AAMO,SAASe,iBAAoBC,KAAA,EAAa;EAC/C,MAAMC,GAAA,GAAMpB,MAAA,CAAUmB,KAAK;EAC3B,IAAI,CAACN,cAAA,CAAeO,GAAA,CAAIC,OAAA,EAASF,KAAK,GAAG;IACvCC,GAAA,CAAIC,OAAA,GAAUF,KAAA;EAChB;EACA,OAAOC,GAAA,CAAIC,OAAA;AACb","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
function _type_of(obj) {
|
|
3
|
+
"@swc/helpers - typeof";
|
|
4
|
+
|
|
5
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
6
|
+
}
|
|
7
|
+
function arraysShallowEqual(a, b) {
|
|
8
|
+
if (a === b) return true;
|
|
9
|
+
if (a.length !== b.length) return false;
|
|
10
|
+
for (var i = 0; i < a.length; i++) {
|
|
11
|
+
if (!Object.is(a[i], b[i])) return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
function objectsShallowEqual(a, b) {
|
|
16
|
+
if (a === b) return true;
|
|
17
|
+
var ak = Object.keys(a);
|
|
18
|
+
var bk = Object.keys(b);
|
|
19
|
+
if (ak.length !== bk.length) return false;
|
|
20
|
+
var _iteratorNormalCompletion = true,
|
|
21
|
+
_didIteratorError = false,
|
|
22
|
+
_iteratorError = void 0;
|
|
23
|
+
try {
|
|
24
|
+
for (var _iterator = ak[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
25
|
+
var k = _step.value;
|
|
26
|
+
if (!Object.is(a[k], b[k])) return false;
|
|
27
|
+
}
|
|
28
|
+
} catch (err) {
|
|
29
|
+
_didIteratorError = true;
|
|
30
|
+
_iteratorError = err;
|
|
31
|
+
} finally {
|
|
32
|
+
try {
|
|
33
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
34
|
+
_iterator.return();
|
|
35
|
+
}
|
|
36
|
+
} finally {
|
|
37
|
+
if (_didIteratorError) {
|
|
38
|
+
throw _iteratorError;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
function isContentEqual(a, b) {
|
|
45
|
+
if (Object.is(a, b)) return true;
|
|
46
|
+
if (a === null || b === null || a === void 0 || b === void 0) return false;
|
|
47
|
+
if ((typeof a === "undefined" ? "undefined" : _type_of(a)) !== "object" || (typeof b === "undefined" ? "undefined" : _type_of(b)) !== "object") return false;
|
|
48
|
+
var aIsArr = Array.isArray(a);
|
|
49
|
+
var bIsArr = Array.isArray(b);
|
|
50
|
+
if (aIsArr !== bIsArr) return false;
|
|
51
|
+
if (aIsArr && bIsArr) {
|
|
52
|
+
return arraysShallowEqual(a, b);
|
|
53
|
+
}
|
|
54
|
+
return objectsShallowEqual(a, b);
|
|
55
|
+
}
|
|
56
|
+
function useContentStable(value) {
|
|
57
|
+
var ref = useRef(value);
|
|
58
|
+
if (!isContentEqual(ref.current, value)) {
|
|
59
|
+
ref.current = value;
|
|
60
|
+
}
|
|
61
|
+
return ref.current;
|
|
62
|
+
}
|
|
63
|
+
export { isContentEqual, useContentStable };
|
|
64
|
+
//# sourceMappingURL=useContentStable.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","_type_of","obj","Symbol","constructor","arraysShallowEqual","a","b","length","i","Object","is","objectsShallowEqual","ak","keys","bk","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","k","value","err","return","isContentEqual"],"sources":["../../src/useContentStable.ts"],"sourcesContent":[null],"mappings":"AA0BA,SAASA,MAAA,QAAc;AAEvB,SAASC,SAAAC,GAAA;EACP,uBAAoB;;EACpB,OAAMA,GAAA,WAAaC,MAAQ,gBAAO,IAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAClC;AACE,SAAKG,kBAAkBA,CAACC,CAAC,EAAGC,CAAA;EAC9B,IAAAD,CAAA,KAAAC,CAAA;EACA,IAAAD,CAAA,CAAAE,MAAO,KAAAD,CAAA,CAAAC,MAAA;EACT,SAAAC,CAAA,MAAAA,CAAA,GAAAH,CAAA,CAAAE,MAAA,EAAAC,CAAA;IAEA,KAASC,MAAA,CAAAC,EAAA,CAAAL,CAAA,CAAAG,CAAA,GAAAF,CAAA,CAAAE,CAAA,CAAoB,GAAW,OAAoB;EAC1D;EACA,OAAM,IAAK;AACX;AACA,SAAOG,mBAAcA,CAAAN,CAAQ,EAAAC,CAAA;EAC7B,IAAAD,CAAA,KAAAC,CAAW,SAAS;EAClB,IAAAM,EACE,GAACH,MAAO,CAAAI,IAAA,CAAAR,CAAA;EAAA,IACLS,EAA8B,GAACL,MAAA,CAAAI,IAAA,CAAAP,CAAA;EAAA,IAC/BM,EAA8B,CAACL,MAAA,KAAAO,EAAA,CAAAP,MAAA;EAAA,IAClCQ,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAEA;IACJ,SAAAC,SAAA,GAAAN,EAAA,CAAAV,MAAA,CAAAiB,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MACA,IAAOQ,CAAA,GAAAH,KAAA,CAAAI,KAAA;MACT,KAAAf,MAAA,CAAAC,EAAA,CAAAL,CAAA,CAAAkB,CAAA,GAAAjB,CAAA,CAAAiB,CAAA;IAEO;EACL,SAAIE,GAAO,EAAG;IACdT,iBAAkB,OAAM;IACxBC,cAAW,GAAMQ,GAAA;EACjB,UAAM;IACN,IAAM;MACF,KAAAV,yBAA0B,IAAAG,SAAA,CAAAQ,MAAA;QAC1BR,SAAU,CAAAQ,MAAQ;MACpB;IACF;MACA,IAAOV,iBAAA,EAAoB;QAC7B,MAAAC,cAAA;MAMO;IACL;EACA;EACE,OAAI;AAAU;AAEhB,SAAOU,cAAIA,CAAAtB,CAAA,EAAAC,CAAA;EACb,IAAAG,MAAA,CAAAC,EAAA,CAAAL,CAAA,EAAAC,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { isContentEqual } from "./useContentStable.mjs";
|
|
3
|
+
describe("isContentEqual", () => {
|
|
4
|
+
it("treats primitives by value", () => {
|
|
5
|
+
expect(isContentEqual(1, 1)).toBe(true);
|
|
6
|
+
expect(isContentEqual("a", "a")).toBe(true);
|
|
7
|
+
expect(isContentEqual(true, true)).toBe(true);
|
|
8
|
+
expect(isContentEqual(void 0, void 0)).toBe(true);
|
|
9
|
+
expect(isContentEqual(null, null)).toBe(true);
|
|
10
|
+
expect(isContentEqual(1, 2)).toBe(false);
|
|
11
|
+
expect(isContentEqual("a", "b")).toBe(false);
|
|
12
|
+
expect(isContentEqual(null, void 0)).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
it("treats arrays by length + per-element strict-eq", () => {
|
|
15
|
+
expect(isContentEqual([], [])).toBe(true);
|
|
16
|
+
expect(isContentEqual([1, 2, 3], [1, 2, 3])).toBe(true);
|
|
17
|
+
expect(isContentEqual([1, 2, 3], [1, 2])).toBe(false);
|
|
18
|
+
expect(isContentEqual([1, 2, 3], [1, 2, 4])).toBe(false);
|
|
19
|
+
expect(isContentEqual([{
|
|
20
|
+
id: 1
|
|
21
|
+
}], [{
|
|
22
|
+
id: 1
|
|
23
|
+
}])).toBe(false);
|
|
24
|
+
const row = {
|
|
25
|
+
id: 1
|
|
26
|
+
};
|
|
27
|
+
expect(isContentEqual([row], [row])).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it("treats objects by same keys + per-value strict-eq", () => {
|
|
30
|
+
expect(isContentEqual({}, {})).toBe(true);
|
|
31
|
+
expect(isContentEqual({
|
|
32
|
+
a: 1,
|
|
33
|
+
b: 2
|
|
34
|
+
}, {
|
|
35
|
+
a: 1,
|
|
36
|
+
b: 2
|
|
37
|
+
})).toBe(true);
|
|
38
|
+
expect(isContentEqual({
|
|
39
|
+
a: 1
|
|
40
|
+
}, {
|
|
41
|
+
a: 1,
|
|
42
|
+
b: 2
|
|
43
|
+
})).toBe(false);
|
|
44
|
+
expect(isContentEqual({
|
|
45
|
+
a: 1
|
|
46
|
+
}, {
|
|
47
|
+
a: 2
|
|
48
|
+
})).toBe(false);
|
|
49
|
+
expect(isContentEqual({
|
|
50
|
+
row: {
|
|
51
|
+
id: 1
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
row: {
|
|
55
|
+
id: 1
|
|
56
|
+
}
|
|
57
|
+
})).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
it("rejects mismatched array vs object", () => {
|
|
60
|
+
expect(isContentEqual([], {})).toBe(false);
|
|
61
|
+
expect(isContentEqual([1], {
|
|
62
|
+
0: 1
|
|
63
|
+
})).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
it("handles a typical zero singular-query refresh \u2014 same row content", () => {
|
|
66
|
+
const prev = {
|
|
67
|
+
id: "s1",
|
|
68
|
+
name: "warden",
|
|
69
|
+
level: 1,
|
|
70
|
+
hp: 60,
|
|
71
|
+
maxHp: 60
|
|
72
|
+
};
|
|
73
|
+
const next = {
|
|
74
|
+
id: "s1",
|
|
75
|
+
name: "warden",
|
|
76
|
+
level: 1,
|
|
77
|
+
hp: 60,
|
|
78
|
+
maxHp: 60
|
|
79
|
+
};
|
|
80
|
+
expect(isContentEqual(prev, next)).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
it("detects a real refresh \u2014 one field changed", () => {
|
|
83
|
+
const prev = {
|
|
84
|
+
id: "s1",
|
|
85
|
+
hp: 60
|
|
86
|
+
};
|
|
87
|
+
const next = {
|
|
88
|
+
id: "s1",
|
|
89
|
+
hp: 59
|
|
90
|
+
};
|
|
91
|
+
expect(isContentEqual(prev, next)).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
it('handles zero info objects ({type: "complete"} vs {type: "unknown"})', () => {
|
|
94
|
+
expect(isContentEqual({
|
|
95
|
+
type: "complete"
|
|
96
|
+
}, {
|
|
97
|
+
type: "complete"
|
|
98
|
+
})).toBe(true);
|
|
99
|
+
expect(isContentEqual({
|
|
100
|
+
type: "complete"
|
|
101
|
+
}, {
|
|
102
|
+
type: "unknown"
|
|
103
|
+
})).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=useContentStable.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","isContentEqual","toBe","id","row","a","b","prev","name","level","hp","maxHp","next","type"],"sources":["../../src/useContentStable.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { isContentEqual } from "./useContentStable.native.js";
|
|
3
|
+
describe("isContentEqual", function () {
|
|
4
|
+
it("treats primitives by value", function () {
|
|
5
|
+
expect(isContentEqual(1, 1)).toBe(true);
|
|
6
|
+
expect(isContentEqual("a", "a")).toBe(true);
|
|
7
|
+
expect(isContentEqual(true, true)).toBe(true);
|
|
8
|
+
expect(isContentEqual(void 0, void 0)).toBe(true);
|
|
9
|
+
expect(isContentEqual(null, null)).toBe(true);
|
|
10
|
+
expect(isContentEqual(1, 2)).toBe(false);
|
|
11
|
+
expect(isContentEqual("a", "b")).toBe(false);
|
|
12
|
+
expect(isContentEqual(null, void 0)).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
it("treats arrays by length + per-element strict-eq", function () {
|
|
15
|
+
expect(isContentEqual([], [])).toBe(true);
|
|
16
|
+
expect(isContentEqual([1, 2, 3], [1, 2, 3])).toBe(true);
|
|
17
|
+
expect(isContentEqual([1, 2, 3], [1, 2])).toBe(false);
|
|
18
|
+
expect(isContentEqual([1, 2, 3], [1, 2, 4])).toBe(false);
|
|
19
|
+
expect(isContentEqual([{
|
|
20
|
+
id: 1
|
|
21
|
+
}], [{
|
|
22
|
+
id: 1
|
|
23
|
+
}])).toBe(false);
|
|
24
|
+
var row = {
|
|
25
|
+
id: 1
|
|
26
|
+
};
|
|
27
|
+
expect(isContentEqual([row], [row])).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it("treats objects by same keys + per-value strict-eq", function () {
|
|
30
|
+
expect(isContentEqual({}, {})).toBe(true);
|
|
31
|
+
expect(isContentEqual({
|
|
32
|
+
a: 1,
|
|
33
|
+
b: 2
|
|
34
|
+
}, {
|
|
35
|
+
a: 1,
|
|
36
|
+
b: 2
|
|
37
|
+
})).toBe(true);
|
|
38
|
+
expect(isContentEqual({
|
|
39
|
+
a: 1
|
|
40
|
+
}, {
|
|
41
|
+
a: 1,
|
|
42
|
+
b: 2
|
|
43
|
+
})).toBe(false);
|
|
44
|
+
expect(isContentEqual({
|
|
45
|
+
a: 1
|
|
46
|
+
}, {
|
|
47
|
+
a: 2
|
|
48
|
+
})).toBe(false);
|
|
49
|
+
expect(isContentEqual({
|
|
50
|
+
row: {
|
|
51
|
+
id: 1
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
row: {
|
|
55
|
+
id: 1
|
|
56
|
+
}
|
|
57
|
+
})).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
it("rejects mismatched array vs object", function () {
|
|
60
|
+
expect(isContentEqual([], {})).toBe(false);
|
|
61
|
+
expect(isContentEqual([1], {
|
|
62
|
+
0: 1
|
|
63
|
+
})).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
it("handles a typical zero singular-query refresh \u2014 same row content", function () {
|
|
66
|
+
var prev = {
|
|
67
|
+
id: "s1",
|
|
68
|
+
name: "warden",
|
|
69
|
+
level: 1,
|
|
70
|
+
hp: 60,
|
|
71
|
+
maxHp: 60
|
|
72
|
+
};
|
|
73
|
+
var next = {
|
|
74
|
+
id: "s1",
|
|
75
|
+
name: "warden",
|
|
76
|
+
level: 1,
|
|
77
|
+
hp: 60,
|
|
78
|
+
maxHp: 60
|
|
79
|
+
};
|
|
80
|
+
expect(isContentEqual(prev, next)).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
it("detects a real refresh \u2014 one field changed", function () {
|
|
83
|
+
var prev = {
|
|
84
|
+
id: "s1",
|
|
85
|
+
hp: 60
|
|
86
|
+
};
|
|
87
|
+
var next = {
|
|
88
|
+
id: "s1",
|
|
89
|
+
hp: 59
|
|
90
|
+
};
|
|
91
|
+
expect(isContentEqual(prev, next)).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
it('handles zero info objects ({type: "complete"} vs {type: "unknown"})', function () {
|
|
94
|
+
expect(isContentEqual({
|
|
95
|
+
type: "complete"
|
|
96
|
+
}, {
|
|
97
|
+
type: "complete"
|
|
98
|
+
})).toBe(true);
|
|
99
|
+
expect(isContentEqual({
|
|
100
|
+
type: "complete"
|
|
101
|
+
}, {
|
|
102
|
+
type: "unknown"
|
|
103
|
+
})).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=useContentStable.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","isContentEqual","toBe","id"],"sources":["../../src/useContentStable.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,cAAA,QAAsB;AAE/BH,QAAA,CAAS,kBAAkB,YAAM;EAC/BE,EAAA,CAAG,8BAA8B,YAAM;IACrCD,MAAA,CAAOE,cAAA,CAAe,GAAG,CAAC,CAAC,EAAEC,IAAA,CAAK,IAAI;IACtCH,MAAA,CAAOE,cAAA,CAAe,KAAK,GAAG,CAAC,EAAEC,IAAA,CAAK,IAAI;IAC1CH,MAAA,CAAOE,cAAA,CAAe,MAAM,IAAI,CAAC,EAAEC,IAAA,CAAK,IAAI;IAC5CH,MAAA,CAAOE,cAAA,CAAe,QAAW,MAAS,CAAC,EAAEC,IAAA,CAAK,IAAI;IACtDH,MAAA,CAAOE,cAAA,CAAe,MAAM,IAAI,CAAC,EAAEC,IAAA,CAAK,IAAI;IAC5CH,MAAA,CAAOE,cAAA,CAAe,GAAG,CAAC,CAAC,EAAEC,IAAA,CAAK,KAAK;IACvCH,MAAA,CAAOE,cAAA,CAAe,KAAK,GAAG,CAAC,EAAEC,IAAA,CAAK,KAAK;IAC3CH,MAAA,CAAOE,cAAA,CAAe,MAAM,MAAS,CAAC,EAAEC,IAAA,CAAK,KAAK;EACpD,CAAC;EAEDF,EAAA,CAAG,mDAAmD,YAAM;IAC1DD,MAAA,CAAOE,cAAA,CAAe,EAAC,EAAG,EAAE,CAAC,EAAEC,IAAA,CAAK,IAAI;IACxCH,MAAA,CAAOE,cAAA,CAAe,CACtB,GACA,GAEA,EAEA,GACA,GACD,GAEE,EACD,GAAAC,IAAO;IACPH,MAAA,CAAOE,cAAA,CAAe,CACtB,GACA,GAEA,EACD,GAEE,GACD,EACA,GAAAC,IAAO;IACRH,MAAA,CAAAE,cAAA,EAEE,GAID,GACA,EACA,GACD,GAEE,GACD,EACA,GAAAC,IAAM,MAAO,CAAE;IACfH,MAAA,CAAOE,cAAA,CAAe,CACvB;MAEEE,EAAA;IACD,EACA,GACD;MACFA,EAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.50",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@take-out/helpers": "0.4.
|
|
86
|
+
"@take-out/helpers": "0.4.50",
|
|
87
87
|
"chokidar": "^4.0.3",
|
|
88
88
|
"citty": "^0.1.6",
|
|
89
89
|
"valibot": "^1.1.0"
|
package/src/createUseQuery.tsx
CHANGED
|
@@ -4,6 +4,7 @@ import { useContext, useMemo, useRef, type Context } from 'react'
|
|
|
4
4
|
|
|
5
5
|
import { useZeroDebug } from './helpers/useZeroDebug'
|
|
6
6
|
import { resolveQuery, type PlainQueryFn } from './resolveQuery'
|
|
7
|
+
import { useContentStable } from './useContentStable'
|
|
7
8
|
|
|
8
9
|
import type {
|
|
9
10
|
AnyQueryRegistry,
|
|
@@ -168,6 +169,18 @@ export function createUseQuery<Schema extends ZeroSchema>({
|
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
171
|
|
|
172
|
+
// content-stable inner refs. zero-react `#onData` does deepClone(snap) on
|
|
173
|
+
// every view notification, so even a no-op re-emit produces fresh data
|
|
174
|
+
// identity. consumers that destructure `[row] = useQuery(byId, {id})` and
|
|
175
|
+
// depend on `row` see a re-fire on each notification even when the row's
|
|
176
|
+
// content hasn't changed. anchor `data` + `info` to the prior reference
|
|
177
|
+
// when shallow-content matches so identity-based deps stay quiet.
|
|
178
|
+
const stableData = useContentStable(out?.[0])
|
|
179
|
+
const stableInfo = useContentStable(out?.[1])
|
|
180
|
+
if (stableData !== out?.[0] || stableInfo !== out?.[1]) {
|
|
181
|
+
out = [stableData, stableInfo]
|
|
182
|
+
}
|
|
183
|
+
|
|
171
184
|
if (process.env.NODE_ENV === 'development') {
|
|
172
185
|
if (process.env.DEBUG_ZERO_QUERIES === '1')
|
|
173
186
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|