on-zero 0.4.48 → 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/createUseQuery.cjs +29 -20
- package/dist/cjs/createUseQuery.native.js +27 -14
- 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/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/esm/createUseQuery.mjs +29 -20
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +27 -14
- 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/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 +44 -12
- package/src/createUseQueryDirect.tsx +10 -1
- package/src/useContentStable.test.ts +61 -0
- package/src/useContentStable.ts +78 -0
- package/types/createUseQuery.d.ts +2 -2
- 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
|
@@ -32,6 +32,7 @@ var import_bindings = require("@rocicorp/zero/bindings");
|
|
|
32
32
|
var import_react2 = require("react");
|
|
33
33
|
var import_useZeroDebug = require("./helpers/useZeroDebug.cjs");
|
|
34
34
|
var import_resolveQuery = require("./resolveQuery.cjs");
|
|
35
|
+
var import_useContentStable = require("./useContentStable.cjs");
|
|
35
36
|
const EMPTY_PLURAL = Object.freeze([]);
|
|
36
37
|
const RESULT_UNKNOWN = Object.freeze({
|
|
37
38
|
type: "unknown"
|
|
@@ -76,27 +77,30 @@ function createUseQuery({
|
|
|
76
77
|
const lastRef = (0, import_react2.useRef)(EMPTY_RESPONSE_PLURAL);
|
|
77
78
|
const [fn, paramsOrOptions, optionsArg] = args;
|
|
78
79
|
const {
|
|
79
|
-
|
|
80
|
+
params,
|
|
80
81
|
options
|
|
81
|
-
} = (
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
82
|
+
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
83
|
+
const paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
84
|
+
const queryRequest = (0, import_react2.useMemo)(() => (0, import_resolveQuery.resolveQuery)({
|
|
85
|
+
customQueries,
|
|
86
|
+
fn,
|
|
87
|
+
params
|
|
88
|
+
}),
|
|
89
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
90
|
+
[fn, paramsKey]);
|
|
91
|
+
let optionEnabled;
|
|
92
|
+
let optionTTL;
|
|
93
|
+
if (typeof options === "boolean") {
|
|
94
|
+
optionEnabled = options;
|
|
95
|
+
} else if (options) {
|
|
96
|
+
optionEnabled = options.enabled;
|
|
97
|
+
optionTTL = options.ttl;
|
|
98
|
+
}
|
|
99
|
+
const effectiveEnabled = disableMode ? false : optionEnabled;
|
|
100
|
+
const effectiveOptions = (0, import_react2.useMemo)(() => ({
|
|
101
|
+
enabled: effectiveEnabled,
|
|
102
|
+
ttl: optionTTL
|
|
103
|
+
}), [effectiveEnabled, optionTTL]);
|
|
100
104
|
const rawOut = (0, import_react.useQuery)(queryRequest, effectiveOptions);
|
|
101
105
|
let out = rawOut;
|
|
102
106
|
if (rawOut?.[0] === null) {
|
|
@@ -105,6 +109,11 @@ function createUseQuery({
|
|
|
105
109
|
out = [EMPTY_PLURAL, rawOut[1] ?? RESULT_UNKNOWN];
|
|
106
110
|
}
|
|
107
111
|
}
|
|
112
|
+
const stableData = (0, import_useContentStable.useContentStable)(out?.[0]);
|
|
113
|
+
const stableInfo = (0, import_useContentStable.useContentStable)(out?.[1]);
|
|
114
|
+
if (stableData !== out?.[0] || stableInfo !== out?.[1]) {
|
|
115
|
+
out = [stableData, stableInfo];
|
|
116
|
+
}
|
|
108
117
|
if (process.env.NODE_ENV === "development") {
|
|
109
118
|
if (process.env.DEBUG_ZERO_QUERIES === "1") (0, import_useZeroDebug.useZeroDebug)(queryRequest, options, out);
|
|
110
119
|
}
|
|
@@ -34,6 +34,7 @@ var import_bindings = require("@rocicorp/zero/bindings");
|
|
|
34
34
|
var import_react2 = require("react");
|
|
35
35
|
var import_useZeroDebug = require("./helpers/useZeroDebug.native.js");
|
|
36
36
|
var import_resolveQuery = require("./resolveQuery.native.js");
|
|
37
|
+
var import_useContentStable = require("./useContentStable.native.js");
|
|
37
38
|
function _type_of(obj) {
|
|
38
39
|
"@swc/helpers - typeof";
|
|
39
40
|
|
|
@@ -87,27 +88,34 @@ function createUseQuery(param) {
|
|
|
87
88
|
var lastRef = (0, import_react2.useRef)(EMPTY_RESPONSE_PLURAL);
|
|
88
89
|
var [fn, paramsOrOptions, optionsArg] = args;
|
|
89
90
|
var {
|
|
90
|
-
|
|
91
|
+
params,
|
|
91
92
|
options
|
|
92
|
-
} = (
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
97
|
-
var queryRequest2 = (0, import_resolveQuery.resolveQuery)({
|
|
93
|
+
} = parseUseQueryArgs(paramsOrOptions, optionsArg);
|
|
94
|
+
var paramsKey = params === void 0 ? "" : JSON.stringify(params);
|
|
95
|
+
var queryRequest = (0, import_react2.useMemo)(function () {
|
|
96
|
+
return (0, import_resolveQuery.resolveQuery)({
|
|
98
97
|
customQueries,
|
|
99
98
|
fn,
|
|
100
99
|
params
|
|
101
100
|
});
|
|
101
|
+
},
|
|
102
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
103
|
+
[fn, paramsKey]);
|
|
104
|
+
var optionEnabled;
|
|
105
|
+
var optionTTL;
|
|
106
|
+
if (typeof options === "boolean") {
|
|
107
|
+
optionEnabled = options;
|
|
108
|
+
} else if (options) {
|
|
109
|
+
optionEnabled = options.enabled;
|
|
110
|
+
optionTTL = options.ttl;
|
|
111
|
+
}
|
|
112
|
+
var effectiveEnabled = disableMode ? false : optionEnabled;
|
|
113
|
+
var effectiveOptions = (0, import_react2.useMemo)(function () {
|
|
102
114
|
return {
|
|
103
|
-
|
|
104
|
-
|
|
115
|
+
enabled: effectiveEnabled,
|
|
116
|
+
ttl: optionTTL
|
|
105
117
|
};
|
|
106
|
-
}, [
|
|
107
|
-
var effectiveOptions = disableMode ? typeof options === "boolean" ? false : {
|
|
108
|
-
...(options !== null && options !== void 0 ? options : {}),
|
|
109
|
-
enabled: false
|
|
110
|
-
} : options;
|
|
118
|
+
}, [effectiveEnabled, optionTTL]);
|
|
111
119
|
var rawOut = (0, import_react.useQuery)(queryRequest, effectiveOptions);
|
|
112
120
|
var out = rawOut;
|
|
113
121
|
if ((rawOut === null || rawOut === void 0 ? void 0 : rawOut[0]) === null) {
|
|
@@ -117,6 +125,11 @@ function createUseQuery(param) {
|
|
|
117
125
|
out = [EMPTY_PLURAL, (_rawOut_ = rawOut[1]) !== null && _rawOut_ !== void 0 ? _rawOut_ : RESULT_UNKNOWN];
|
|
118
126
|
}
|
|
119
127
|
}
|
|
128
|
+
var stableData = (0, import_useContentStable.useContentStable)(out === null || out === void 0 ? void 0 : out[0]);
|
|
129
|
+
var stableInfo = (0, import_useContentStable.useContentStable)(out === null || out === void 0 ? void 0 : out[1]);
|
|
130
|
+
if (stableData !== (out === null || out === void 0 ? void 0 : out[0]) || stableInfo !== (out === null || out === void 0 ? void 0 : out[1])) {
|
|
131
|
+
out = [stableData, stableInfo];
|
|
132
|
+
}
|
|
120
133
|
if (process.env.NODE_ENV === "development") {
|
|
121
134
|
if (process.env.DEBUG_ZERO_QUERIES === "1") (0, import_useZeroDebug.useZeroDebug)(queryRequest, options, out);
|
|
122
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","emptyResponseFor","parseUseQueryArgs","module","exports","import_react","require","import_bindings","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","queryRequest","query","addContextToQuery","internals","asQueryInternals","format","singular","e","paramsOrOptions","optionsArg","hasParams","params","options","param","DisabledContext","customQueries","window","fn","resolveQuery","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","useMemo","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","emptyResponseFor","parseUseQueryArgs","module","exports","import_react","require","import_bindings","import_react2","import_useZeroDebug","import_resolveQuery","import_useContentStable","_type_of","obj","Symbol","constructor","EMPTY_PLURAL","Object","freeze","RESULT_UNKNOWN","type","EMPTY_RESPONSE_PLURAL","EMPTY_RESPONSE_SINGULAR","queryRequest","query","addContextToQuery","internals","asQueryInternals","format","singular","e","paramsOrOptions","optionsArg","hasParams","params","options","param","DisabledContext","customQueries","window","fn","resolveQuery","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","paramsKey","JSON","stringify","useMemo","optionEnabled","optionTTL","enabled","ttl","effectiveEnabled","effectiveOptions"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -30,6 +30,7 @@ var import_helpers = require("@take-out/helpers");
|
|
|
30
30
|
var import_react = require("react");
|
|
31
31
|
var import_createUseQuery = require("./createUseQuery.cjs");
|
|
32
32
|
var import_resolveQuery = require("./resolveQuery.cjs");
|
|
33
|
+
var import_useContentStable = require("./useContentStable.cjs");
|
|
33
34
|
const DISABLED_SUBSCRIBE = () => () => {};
|
|
34
35
|
const emptyArray = [];
|
|
35
36
|
const resultTypeUnknown = {
|
|
@@ -226,7 +227,10 @@ function createUseQueryDirect({
|
|
|
226
227
|
return directViewStore.getView(zero, queryRequest, effectiveEnabled, ttl);
|
|
227
228
|
}, [queryRequest, enabled, ttl, version]);
|
|
228
229
|
const getEmpty = () => emptyForQuery;
|
|
229
|
-
const
|
|
230
|
+
const rawOut = (0, import_react.useSyncExternalStore)(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
231
|
+
const stableData = (0, import_useContentStable.useContentStable)(rawOut[0]);
|
|
232
|
+
const stableInfo = (0, import_useContentStable.useContentStable)(rawOut[1]);
|
|
233
|
+
const out = stableData !== rawOut[0] || stableInfo !== rawOut[1] ? [stableData, stableInfo] : rawOut;
|
|
230
234
|
if (!disableMode) {
|
|
231
235
|
lastRef.current = out;
|
|
232
236
|
return out;
|
|
@@ -32,6 +32,7 @@ var import_helpers = require("@take-out/helpers");
|
|
|
32
32
|
var import_react = require("react");
|
|
33
33
|
var import_createUseQuery = require("./createUseQuery.native.js");
|
|
34
34
|
var import_resolveQuery = require("./resolveQuery.native.js");
|
|
35
|
+
var import_useContentStable = require("./useContentStable.native.js");
|
|
35
36
|
function _class_call_check(instance, Constructor) {
|
|
36
37
|
if (!(instance instanceof Constructor)) {
|
|
37
38
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -335,7 +336,10 @@ function createUseQueryDirect(param) {
|
|
|
335
336
|
var getEmpty = function () {
|
|
336
337
|
return emptyForQuery;
|
|
337
338
|
};
|
|
338
|
-
var
|
|
339
|
+
var rawOut = (0, import_react.useSyncExternalStore)(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getEmpty, view ? view.getSnapshot : getEmpty);
|
|
340
|
+
var stableData = (0, import_useContentStable.useContentStable)(rawOut[0]);
|
|
341
|
+
var stableInfo = (0, import_useContentStable.useContentStable)(rawOut[1]);
|
|
342
|
+
var out = stableData !== rawOut[0] || stableInfo !== rawOut[1] ? [stableData, stableInfo] : rawOut;
|
|
339
343
|
if (!disableMode) {
|
|
340
344
|
lastRef.current = out;
|
|
341
345
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQueryDirect_exports","__export","createUseQueryDirect","module","exports","import_bindings","require","import_helpers","import_react","import_createUseQuery","import_resolveQuery","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","_error_message","message","_error_error","refetch","details","getSnapshot","data","resultType","Array","isArray","DirectViewWrapper","DirectViewWrapper2","query","zero","ttl","onDematerialized","_this","listeners","Set","onData","cloned","deepClone","snapshot","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","listener","err","return","destroyView","materializeIfNeeded","subscribe","notify","add","destroyTimer","clearTimeout","delete","size","setTimeout","view","materialize","addListener"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,4BAAA;AAAAC,QAAA,CAAAD,4BAAA;EAAAE,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAKO,CAAAK,4BAAA;AACP,IAAAK,eAAA,GAA8CC,OAAA;AAC9C,IAAAC,cAAA,GAAgFD,OAAA;AAEhF,IAAAE,YAAA,GAAAF,OAAA,QAMO;AACP,IAAAG,qBAAA,GAA6BH,OAAA;
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQueryDirect_exports","__export","createUseQueryDirect","module","exports","import_bindings","require","import_helpers","import_react","import_createUseQuery","import_resolveQuery","import_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","DISABLED_SUBSCRIBE","emptyArray","resultTypeUnknown","type","resultTypeComplete","resultTypeError","emptySnapshotSingularUnknown","emptySnapshotSingularComplete","emptySnapshotSingularError","emptySnapshotPluralUnknown","emptySnapshotPluralComplete","emptySnapshotPluralError","getDefaultSnapshot","singular","makeError","retry","error","_error_message","message","_error_error","refetch","details","getSnapshot","data","resultType","Array","isArray","DirectViewWrapper","DirectViewWrapper2","query","zero","ttl","onDematerialized","_this","listeners","Set","onData","cloned","deepClone","snapshot","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","listener","err","return","destroyView","materializeIfNeeded","subscribe","notify","add","destroyTimer","clearTimeout","delete","size","setTimeout","view","materialize","addListener"],"sources":["../../src/createUseQueryDirect.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,4BAAA;AAAAC,QAAA,CAAAD,4BAAA;EAAAE,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAKO,CAAAK,4BAAA;AACP,IAAAK,eAAA,GAA8CC,OAAA;AAC9C,IAAAC,cAAA,GAAgFD,OAAA;AAEhF,IAAAE,YAAA,GAAAF,OAAA,QAMO;AACP,IAAAG,qBAAA,GAA6BH,OAAA;AAC7B,IAAAI,mBAAA,GAAAJ,OAAiC;AAejC,IAAAK,uBAA2B,GAAAL,OAAM,+BAAM;AAAC,SAAAM,kBAAAC,QAAA,EAAAC,WAAA;EAsCxC,IAAM,EAAAD,QAAA,YAAkCC,WAAA;IACxC,MAAM,IAAAC,SAAA,oCAAsC;EAC5C;AACA;AACA,SAAMC,kBAAAC,MAAA,EAAAC,KAAgD;EACtD,KAAM,IAAAC,CAAA,MAAAA,CAAA,GAAAD,KAAA,CAAAE,MAAA,EAAAD,CAAA,EAAiD;IACvD,IAAME,UAAA,GAAAH,KAAA,CAAAC,CAAA;IACNE,UAAM,CAAAC,UAAA,GAAAD,UAA8C,CAAAC,UAAY;IAChED,UAAM,CAAAE,YAAA;IACN,IAAM,WAAAF,UAAA,EAAAA,UAA4C,CAAAG,QAAY;IAE9DC,MAAS,CAAAC,cAAA,CAAAT,MAAmB,EAAAI,UAAmB,CAAAM,GAAA,EAAAN,UAAA;EAC7C;AACF;AAEA,SAASO,aAAUA,CAAAd,WAA6C,EAAAe,UAAA,EAAAC,WAAA;EAC9D,IAAAD,UAAM,EAAUb,iBAAO,CAAWF,WAAA,CAAAiB,SAAA,EAAAF,UAAA;EAClC,IAAAC,WAAO,EAAAd,iBAAA,CAAAF,WAAA,EAAAgB,WAAA;EAAA,OACLhB,WAAM;AAAA;AACN,SACAkB,gBAASA,CAAAC,GAAA,EAAAN,GAAA,EAAA5B,KAAA;EAAA,IACT4B,GAAA,IAAOM,GAAA;IAAAR,MACL,CAAAC,cAAa,CAAAO,GAAS,EAAAN,GAAA;MACtB5B,KAAA;MACAuB,UAAW;MACbC,YAAA;MACFC,QAAA;IACF;EAEA,OAAS;IAOPS,GAAI,CAAAN,GAAA,IAAA5B,KAAY;EACd;EACA,OAAIkC,GAAA;AACF;AACF,IAAAC,kBAAO,YAAAA,CAAA;EACT,oBAOA;AACE;AACA,IAAAC,UAAI;AACF,IAAAC,iBAAe,GAAC;EAClBC,IAAA;AAAO;AAGT,IAAAC,kBAAmB;EACnBD,IAAI;AACJ;AACF,IAAAE,eAAA;EAEAF,IAAM;AAAwC;AAOzB,IAAAG,4BAAA,IACA,QACTJ,iBAAA,CACS;AACA,IAAAK,6BAAA,IAEjB,QACAH,kBAAK,CAAoB;AAC3B,IAdQI,0BAAA,IACA,QACSH,eAAY,CAAoB;AACzC,IAaAI,0BAA6C,IACnDR,UAAM,EACNC,iBAAK,CAAW;AACT,IAAAQ,2BACL,IAAAT,UACA,EAAAG,kBACK;AACL,IACFO,wBAAA,IACAV,UAAA,EACEI,eAAS;AACX,SACFO,mBAAAC,QAAA;EAEQ,OAAAA,QAAc,GAAAP,4BAAA,GAAAG,0BAAA;AACpB;AACA,SAAKK,UAAAC,KAAA,EAAAC,KAAoB;EAC3B,IAAAC,cAAA;EAEQ,IAAAC,OAAA,IAAAD,cAAsB,GAAAD,KAAA,aAAAA,KAAA,uBAAAA,KAAA,CAAAE,OAAA,cAAAD,cAAA,cAAAA,cAAA;EAC5B,IAAAE,YAAe;EACf,OAAK;IACLhB,IAAA,EAAK,OAAK;IACZY,KAAA;IAEQK,OAAA,EAAAL,KAAc;IACpBC,KAAA,EAAM;MACNb,IAAK,GAAAgB,YAAO,GAAAH,KAAA,aAAAA,KAAA,uBAAAA,KAAA,CAAAA,KAAA,cAAAG,YAAA,cAAAA,YAAA;MACZD,OAAK;MACL,IAAI,CAAAF,KAAA,aAAAA,KAAA,uBAAAA,KAAA,CAAAK,OAAA;QACFA,OAAQ,EAAAL,KAAQ,CAAAK;MAClB,MAAQ;IAER;EACF;AAAA;AAGE,SAAKC,WAAMA,CAAAT,QAAA,EAAAU,IAAA,EAAAC,UAAA,EAAAT,KAAA,EAAAC,KAAA;EACX,IAAAH,QAAK,IAAMU,IAAA,KAAU,KAAG;IAC1B,IAAAC,UAAA,wBAAAjB,6BAAA;IAEA,IAAAiB,UAAa,YAAuB,SAAAR,KAAA,IAClC,KAAK,GACLF,SAAS,CAAAC,KAAA,EAAAC,KAAA,EACP,GAAAR,0BAAkB;IAClB,OAAKF,4BAAe;EAAA;EAEtB,KAAAO,QAAK,KAAAU,IAAA,QAAoB,IAAAE,KAAA,CAAAC,OAAA,CAAAH,IAAA,KAAAA,IAAA,CAAArC,MAAA;IAEzB,IAAAsC,UAAa,wBAAAd,2BAAA;IACX,IAAAc,UAAK,KAAU,OAAO,SAAMR,KAAA,IAC5Bf,UAAS,EACPa,SAAK,CAAAC,KAAA,EAAAC,KAAe,EAClB,GAAAL,wBAAoB;IACpB,OAAAF,0BAA0B;EAC1B;EACA,IAAAe,UAAK,iBAAiB,OAAI,CAAAD,IAC5B,EAAKnB,kBACP;EAEJ,IAAAoB,UAAA,sBAEAD,IAAA,EACFT,SAAA,CAAAC,KAAA,EAAAC,KAAA,EAEA;EACmB,QAEjBO,IAAA,EAMErB,iBAAM,CACN;AAEA;AACE,IAAAyB,iBAAM,GAAW,2BAAmB;EACpC,YAAO;;EAAA,SACLC,kBAAWA,CAAAC,KAAA,EAAAC,IAAA,EAAAC,GAAA,EAAAlB,QAAA,EAAAmB,gBAAA;IAAA,IACXC,KAAA;IAAmBvD,iBACrB,OAAAkD,kBAAA;IACF9B,gBAAA;IAEAA,gBAAgB,KAAK,QAAQ,OAAI;IACjCA,gBAAgB,OAAM,KAAI,EAAI;IAC9BA,gBAAW;IACTA,gBAAW;IAAAA,gBACT;IAAAA,gBACA;IAAAA,gBACA;IAAAA,gBACA,KAAe,gBAAO;IAAAA,gBACrB,eAAmB;IAClBA,gBAAS,KAAM,SAAQ,OAAM;IAC3BA,gBAAK,KAAM,aAAW;IAAAA,gBACxB;IAAA,IACF,CAAA+B,KAAA,GAAAA,KAAA;IAAA,IACF,CAAAC,IAAA,GAAAA,IAAA;IACA,KAAAC,GAAK,GAAAA,GAAM;IACb,KAAAlB,QAAO,GAAAA,QAAA;IACL,KAAAmB,gBAAkB,GAAAA,gBAAA;IACpB,KAAAE,SAAA,sBAAAC,GAAA;IAEA,KAAAC,MAAO,aAAAb,IAAA,EAAAC,UAAA,EAAAR,KAAA;MACT,IAAAqB,MAAA,GAAAd,IAAA,2BAAApD,eAAA,CAAAmE,SAAA,EAAAf,IAAA;MACFU,KAAA,CAAAM,QAAA,GAAAjB,WAAA,CAAAW,KAAA,CAAApB,QAAA,EAAAwB,MAAA,EAAAb,UAAA,EAAAS,KAAA,CAAAlB,KAAA,EAAAC,KAAA;MAEO,IAASwB,yBAAgD;QAAAC,iBAAA;QAAAC,cAAA;MAC9D;QACA,SAAAC,SAAA,GAAAV,KAAA,CAAAC,SAAA,CAAAU,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;UACA,IAAAS,QAAA,GAAAH,KAAA,CAAAjF,KAAA;UACAoF,QAAA;QACoE;MAOhE,SAAOC,GAAA;QACTT,iBAAkB;QAChBC,cAAe,GAAAQ,GAAA;MACf,UAAM;QACN;UACF,KAAAV,yBAAA,IAAAG,SAAA,CAAAQ,MAAA;YACFR,SAAA,CAAAQ,MAAA;UAEM;QAEN,UAAS;UACD,IAAAV,iBAAc;YACb,MAAIC,cAAiB;UAEtB;QACN;MAEA;IACA;IACA,IAAI,CAAA3B,KAAA,GAAO,YAAY;MACrBkB,KAAA,CAAAmB,WAAU;MACZnB,KAAA,CAAAoB,mBAAoB;IAClB;IACA,KAAAC,SAAM,GAAQ,UAAOC,MAAA;MACvBtB,KAAA,CAAAC,SAAA,CAAAsB,GAAA,CAAAD,MAAA;MAEA,IAAMtB,KAAA,CAAAwB,YAAY,KAAW;QAK7BC,YAAM,CAAAzB,KAAA,CAAAwB,YAAe;QACnBxB,KAAA,CAAAwB,YAAM;MAA0C;MAAAxB,KAAA,CAAAoB,mBAAA;MAGhD,OAAK,YAAS;QAChBpB,KAAA,CAAAC,SAAA,CAAAyB,MAAA,CAAAJ,MAAA;QAEA,IAAMtB,KAAA,CAAAC,SAAA,CAAA0B,IAAgB;UAChB3B,KAAA,CAAAwB,YAAU,GAAAI,UAAA,aAAY;YAEtB5B,KAAA,CAAAwB,YAAO;YACL,IAAAxB,KAAO,CAAAC,SAAQ,CAAA0B,IAAA;YAChB3B,KAAM,CAAAmB,WAAO;YAUZnB,KAAA,CAAAD,gBACJ,CAAAC,KAAQ;UAGV,GAAO;QAGL;MAEJ;IACA;IAAe,IACb,CAAAX,WAAY,eAAY;MACxB,OAAOW,KAAK,CAAAM,QAAA;IAAc;IAE5B,KAAAA,QAAA,GAAA3B,kBAAA,CAAAC,QAAA;IAGA,KAAAwC,mBAAmB;EACnB;EACA3D,aAAM,CACJkC,kBAAe,GAIjB;IACEnC,GAAA,uBAAkB;IAClB5B,KAAA,EAAO,SAAAwF,oBAAA;MACT,SAAAS,IAAA;MAEI,KAAAA,IAAA,OAAgB,CAAAhC,IAAA,CAAAiC,WAAc,MAAAlC,KAAA;QAChCE,GAAO,OAAAA;MACT;MAEA,IAAO,CAAA+B,IAAA,CAAAE,WAAA,MAAA5B,MAAA;IACT;EAEA,GACF","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 useContentStable_exports = {};
|
|
24
|
+
__export(useContentStable_exports, {
|
|
25
|
+
isContentEqual: () => isContentEqual,
|
|
26
|
+
useContentStable: () => useContentStable
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(useContentStable_exports);
|
|
29
|
+
var import_react = require("react");
|
|
30
|
+
function arraysShallowEqual(a, b) {
|
|
31
|
+
if (a === b) return true;
|
|
32
|
+
if (a.length !== b.length) return false;
|
|
33
|
+
for (let i = 0; i < a.length; i++) {
|
|
34
|
+
if (!Object.is(a[i], b[i])) return false;
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
function objectsShallowEqual(a, b) {
|
|
39
|
+
if (a === b) return true;
|
|
40
|
+
const ak = Object.keys(a);
|
|
41
|
+
const bk = Object.keys(b);
|
|
42
|
+
if (ak.length !== bk.length) return false;
|
|
43
|
+
for (const k of ak) {
|
|
44
|
+
if (!Object.is(a[k], b[k])) return false;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
function isContentEqual(a, b) {
|
|
49
|
+
if (Object.is(a, b)) return true;
|
|
50
|
+
if (a === null || b === null || a === void 0 || b === void 0) return false;
|
|
51
|
+
if (typeof a !== "object" || typeof b !== "object") return false;
|
|
52
|
+
const aIsArr = Array.isArray(a);
|
|
53
|
+
const bIsArr = Array.isArray(b);
|
|
54
|
+
if (aIsArr !== bIsArr) return false;
|
|
55
|
+
if (aIsArr && bIsArr) {
|
|
56
|
+
return arraysShallowEqual(a, b);
|
|
57
|
+
}
|
|
58
|
+
return objectsShallowEqual(a, b);
|
|
59
|
+
}
|
|
60
|
+
function useContentStable(value) {
|
|
61
|
+
const ref = (0, import_react.useRef)(value);
|
|
62
|
+
if (!isContentEqual(ref.current, value)) {
|
|
63
|
+
ref.current = value;
|
|
64
|
+
}
|
|
65
|
+
return ref.current;
|
|
66
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
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 useContentStable_exports = {};
|
|
26
|
+
__export(useContentStable_exports, {
|
|
27
|
+
isContentEqual: () => isContentEqual,
|
|
28
|
+
useContentStable: () => useContentStable
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(useContentStable_exports);
|
|
31
|
+
var import_react = require("react");
|
|
32
|
+
function _type_of(obj) {
|
|
33
|
+
"@swc/helpers - typeof";
|
|
34
|
+
|
|
35
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
36
|
+
}
|
|
37
|
+
function arraysShallowEqual(a, b) {
|
|
38
|
+
if (a === b) return true;
|
|
39
|
+
if (a.length !== b.length) return false;
|
|
40
|
+
for (var i = 0; i < a.length; i++) {
|
|
41
|
+
if (!Object.is(a[i], b[i])) return false;
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
function objectsShallowEqual(a, b) {
|
|
46
|
+
if (a === b) return true;
|
|
47
|
+
var ak = Object.keys(a);
|
|
48
|
+
var bk = Object.keys(b);
|
|
49
|
+
if (ak.length !== bk.length) return false;
|
|
50
|
+
var _iteratorNormalCompletion = true,
|
|
51
|
+
_didIteratorError = false,
|
|
52
|
+
_iteratorError = void 0;
|
|
53
|
+
try {
|
|
54
|
+
for (var _iterator = ak[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
55
|
+
var k = _step.value;
|
|
56
|
+
if (!Object.is(a[k], b[k])) return false;
|
|
57
|
+
}
|
|
58
|
+
} catch (err) {
|
|
59
|
+
_didIteratorError = true;
|
|
60
|
+
_iteratorError = err;
|
|
61
|
+
} finally {
|
|
62
|
+
try {
|
|
63
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
64
|
+
_iterator.return();
|
|
65
|
+
}
|
|
66
|
+
} finally {
|
|
67
|
+
if (_didIteratorError) {
|
|
68
|
+
throw _iteratorError;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
function isContentEqual(a, b) {
|
|
75
|
+
if (Object.is(a, b)) return true;
|
|
76
|
+
if (a === null || b === null || a === void 0 || b === void 0) return false;
|
|
77
|
+
if ((typeof a === "undefined" ? "undefined" : _type_of(a)) !== "object" || (typeof b === "undefined" ? "undefined" : _type_of(b)) !== "object") return false;
|
|
78
|
+
var aIsArr = Array.isArray(a);
|
|
79
|
+
var bIsArr = Array.isArray(b);
|
|
80
|
+
if (aIsArr !== bIsArr) return false;
|
|
81
|
+
if (aIsArr && bIsArr) {
|
|
82
|
+
return arraysShallowEqual(a, b);
|
|
83
|
+
}
|
|
84
|
+
return objectsShallowEqual(a, b);
|
|
85
|
+
}
|
|
86
|
+
function useContentStable(value) {
|
|
87
|
+
var ref = (0, import_react.useRef)(value);
|
|
88
|
+
if (!isContentEqual(ref.current, value)) {
|
|
89
|
+
ref.current = value;
|
|
90
|
+
}
|
|
91
|
+
return ref.current;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=useContentStable.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useContentStable_exports","__export","isContentEqual","useContentStable","module","exports","import_react","require","_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","err","return"],"sources":["../../src/useContentStable.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,wBAAA;AAAAC,QAAA,CAAAD,wBAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AA0BAC,MAAA,CAAAC,OAAA,GAAAV,YAAuB,CAAAK,wBAAA;AAEvB,IAAAM,YAAS,GAAAC,OAAA,QAA0E;AACjF,SAAIC,QAASA,CAAAC,GAAA,EAAO;EACpB,uBAAmB;;EACnB,OAAAA,GAAS,IAAI,OAAOC,MAAE,KAAQ,WAAK,IAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACjC;AAAmC,SACrCG,mBAAAC,CAAA,EAAAC,CAAA;EACA,IAAAD,CAAA,KAAOC,CAAA;EACT,IAAAD,CAAA,CAAAE,MAAA,KAAAD,CAAA,CAAAC,MAAA;EAEA,SAASC,CAAA,MAAAA,CAAA,GAAAH,CAAA,CAAAE,MAAoB,EAAWC,CAAA,EAAoB;IAC1D,IAAI,CAAAC,MAAS,CAAAC,EAAA,CAAAL,CAAA,CAAAG,CAAO,GAAAF,CAAA,CAAAE,CAAA;EACpB;EACA,OAAM,IAAK;AACX;AACA,SAAAG,mBAAoBA,CAAAN,CAAA,EAAAC,CAAA;EAClB,IAAAD,CAAA,KACGC,CAAA,SAAO;EAAA,IACLM,EAA8B,GAACH,MAAA,CAAAI,IAAA,CAAAR,CAAA;EAAA,IAC/BS,EAA8B,GAACL,MAAA,CAAAI,IAAA,CAAAP,CAAA;EAAA,IAClCM,EAAA,CAAAL,MAAA,KAAAO,EAAA,CAAAP,MAAA;EAEA,IAAAQ,yBAAO;IAAAC,iBAAA;IAAAC,cAAA;EACX;IACA,KAAO,IAAAC,SAAA,GAAAN,EAAA,CAAAV,MAAA,CAAAiB,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MACT,IAAAQ,CAAA,GAAAH,KAAA,CAAA7B,KAAA;MAEO,IAAS,CAAAkB,MAAA,CAAAC,EAAA,CAAAL,CAAA,CAAAkB,CAAe,GAAYjB,CAAA,CAAAiB,CAAqB;IAC9D;EACA,SAAIC,GAAM;IACVR,iBAAiB;IACjBC,cAAe,GAAAO,GAAM;EACrB,UAAM;IACN,IAAI;MACA,KAAAT,yBAAkB,IAAAG,SAAA,CAAAO,MAAA;QACpBP,SAAO,CAAAO,MAAA;MACT;IACA,UAAO;MACT,IAAAT,iBAAA;QAMO,MAASC,cAAoB;MAClC;IACA;EACE;EACF;AACA;AACF,SAAAvB,eAAAW,CAAA,EAAAC,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var import_vitest = require("vitest");
|
|
2
|
+
var import_useContentStable = require("./useContentStable.cjs");
|
|
3
|
+
(0, import_vitest.describe)("isContentEqual", () => {
|
|
4
|
+
(0, import_vitest.it)("treats primitives by value", () => {
|
|
5
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(1, 1)).toBe(true);
|
|
6
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)("a", "a")).toBe(true);
|
|
7
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(true, true)).toBe(true);
|
|
8
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(void 0, void 0)).toBe(true);
|
|
9
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(null, null)).toBe(true);
|
|
10
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(1, 2)).toBe(false);
|
|
11
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)("a", "b")).toBe(false);
|
|
12
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(null, void 0)).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
(0, import_vitest.it)("treats arrays by length + per-element strict-eq", () => {
|
|
15
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([], [])).toBe(true);
|
|
16
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1, 2, 3], [1, 2, 3])).toBe(true);
|
|
17
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1, 2, 3], [1, 2])).toBe(false);
|
|
18
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1, 2, 3], [1, 2, 4])).toBe(false);
|
|
19
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([{
|
|
20
|
+
id: 1
|
|
21
|
+
}], [{
|
|
22
|
+
id: 1
|
|
23
|
+
}])).toBe(false);
|
|
24
|
+
const row = {
|
|
25
|
+
id: 1
|
|
26
|
+
};
|
|
27
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([row], [row])).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
(0, import_vitest.it)("treats objects by same keys + per-value strict-eq", () => {
|
|
30
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({}, {})).toBe(true);
|
|
31
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
32
|
+
a: 1,
|
|
33
|
+
b: 2
|
|
34
|
+
}, {
|
|
35
|
+
a: 1,
|
|
36
|
+
b: 2
|
|
37
|
+
})).toBe(true);
|
|
38
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
39
|
+
a: 1
|
|
40
|
+
}, {
|
|
41
|
+
a: 1,
|
|
42
|
+
b: 2
|
|
43
|
+
})).toBe(false);
|
|
44
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
45
|
+
a: 1
|
|
46
|
+
}, {
|
|
47
|
+
a: 2
|
|
48
|
+
})).toBe(false);
|
|
49
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
50
|
+
row: {
|
|
51
|
+
id: 1
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
row: {
|
|
55
|
+
id: 1
|
|
56
|
+
}
|
|
57
|
+
})).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
(0, import_vitest.it)("rejects mismatched array vs object", () => {
|
|
60
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([], {})).toBe(false);
|
|
61
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1], {
|
|
62
|
+
0: 1
|
|
63
|
+
})).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
(0, import_vitest.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
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(prev, next)).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
(0, import_vitest.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
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(prev, next)).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
(0, import_vitest.it)('handles zero info objects ({type: "complete"} vs {type: "unknown"})', () => {
|
|
94
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
95
|
+
type: "complete"
|
|
96
|
+
}, {
|
|
97
|
+
type: "complete"
|
|
98
|
+
})).toBe(true);
|
|
99
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
100
|
+
type: "complete"
|
|
101
|
+
}, {
|
|
102
|
+
type: "unknown"
|
|
103
|
+
})).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var import_vitest = require("vitest");
|
|
4
|
+
var import_useContentStable = require("./useContentStable.native.js");
|
|
5
|
+
(0, import_vitest.describe)("isContentEqual", function () {
|
|
6
|
+
(0, import_vitest.it)("treats primitives by value", function () {
|
|
7
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(1, 1)).toBe(true);
|
|
8
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)("a", "a")).toBe(true);
|
|
9
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(true, true)).toBe(true);
|
|
10
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(void 0, void 0)).toBe(true);
|
|
11
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(null, null)).toBe(true);
|
|
12
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(1, 2)).toBe(false);
|
|
13
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)("a", "b")).toBe(false);
|
|
14
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(null, void 0)).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
(0, import_vitest.it)("treats arrays by length + per-element strict-eq", function () {
|
|
17
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([], [])).toBe(true);
|
|
18
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1, 2, 3], [1, 2, 3])).toBe(true);
|
|
19
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1, 2, 3], [1, 2])).toBe(false);
|
|
20
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1, 2, 3], [1, 2, 4])).toBe(false);
|
|
21
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([{
|
|
22
|
+
id: 1
|
|
23
|
+
}], [{
|
|
24
|
+
id: 1
|
|
25
|
+
}])).toBe(false);
|
|
26
|
+
var row = {
|
|
27
|
+
id: 1
|
|
28
|
+
};
|
|
29
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([row], [row])).toBe(true);
|
|
30
|
+
});
|
|
31
|
+
(0, import_vitest.it)("treats objects by same keys + per-value strict-eq", function () {
|
|
32
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({}, {})).toBe(true);
|
|
33
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
34
|
+
a: 1,
|
|
35
|
+
b: 2
|
|
36
|
+
}, {
|
|
37
|
+
a: 1,
|
|
38
|
+
b: 2
|
|
39
|
+
})).toBe(true);
|
|
40
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
41
|
+
a: 1
|
|
42
|
+
}, {
|
|
43
|
+
a: 1,
|
|
44
|
+
b: 2
|
|
45
|
+
})).toBe(false);
|
|
46
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
47
|
+
a: 1
|
|
48
|
+
}, {
|
|
49
|
+
a: 2
|
|
50
|
+
})).toBe(false);
|
|
51
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
52
|
+
row: {
|
|
53
|
+
id: 1
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
row: {
|
|
57
|
+
id: 1
|
|
58
|
+
}
|
|
59
|
+
})).toBe(false);
|
|
60
|
+
});
|
|
61
|
+
(0, import_vitest.it)("rejects mismatched array vs object", function () {
|
|
62
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([], {})).toBe(false);
|
|
63
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)([1], {
|
|
64
|
+
0: 1
|
|
65
|
+
})).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
(0, import_vitest.it)("handles a typical zero singular-query refresh \u2014 same row content", function () {
|
|
68
|
+
var prev = {
|
|
69
|
+
id: "s1",
|
|
70
|
+
name: "warden",
|
|
71
|
+
level: 1,
|
|
72
|
+
hp: 60,
|
|
73
|
+
maxHp: 60
|
|
74
|
+
};
|
|
75
|
+
var next = {
|
|
76
|
+
id: "s1",
|
|
77
|
+
name: "warden",
|
|
78
|
+
level: 1,
|
|
79
|
+
hp: 60,
|
|
80
|
+
maxHp: 60
|
|
81
|
+
};
|
|
82
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(prev, next)).toBe(true);
|
|
83
|
+
});
|
|
84
|
+
(0, import_vitest.it)("detects a real refresh \u2014 one field changed", function () {
|
|
85
|
+
var prev = {
|
|
86
|
+
id: "s1",
|
|
87
|
+
hp: 60
|
|
88
|
+
};
|
|
89
|
+
var next = {
|
|
90
|
+
id: "s1",
|
|
91
|
+
hp: 59
|
|
92
|
+
};
|
|
93
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)(prev, next)).toBe(false);
|
|
94
|
+
});
|
|
95
|
+
(0, import_vitest.it)('handles zero info objects ({type: "complete"} vs {type: "unknown"})', function () {
|
|
96
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
97
|
+
type: "complete"
|
|
98
|
+
}, {
|
|
99
|
+
type: "complete"
|
|
100
|
+
})).toBe(true);
|
|
101
|
+
(0, import_vitest.expect)((0, import_useContentStable.isContentEqual)({
|
|
102
|
+
type: "complete"
|
|
103
|
+
}, {
|
|
104
|
+
type: "unknown"
|
|
105
|
+
})).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=useContentStable.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_vitest","require","import_useContentStable","describe","it","expect","isContentEqual","toBe","id"],"sources":["../../src/useContentStable.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,aAAA,GAAAC,OAAA,SAA+B;AAAA,IAE/BC,uBAAA,GAASD,OAAA,+BAAwB;AAC/B,IAAAD,aAAA,CAAAG,QAAG,gCAA8B;EAC/B,IAAAH,aAAA,CAAAI,EAAA,8BAAO;IACP,IAAAJ,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,KAAK,EAAAC,IAAM,KAAK;IACtC,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,QAAM,EAAI,CAACC,IAAE,KAAK;IACxC,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,UAAW,GAAAC,IAAY,KAAK;IAClD,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,MAAM,OAAO,IAAAC,IAAK,CAAI;IAC5C,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,IAAI,EAAC,IAAE,EAAK,CAAAC,IAAK;IACvC,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,KAAK,EAAAC,IAAM,MAAK;IACtC,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,QAAM,GAAAC,IAAY,MAAK;IAC9C,IAAAP,aAAA,CAAAK,MAAA,MAAAH,uBAAA,CAAAI,cAAA,iBAAAC,IAAA;EAED;EACE,IAAAP,aAAA,CAAAI,EAAA,mDAAO,EAAgB,YAAQ;IAC/B,IAAAJ,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,EAAC,EAAG,GAAG,CAAC,CAAAC,IAAI,KAAM,CAAC;IACzC,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,CACtB,GAEA,GAEA,EACA,GACD,GAED,GACE,EACA,GAAAC,IAAA;IACA,IAAAP,aAAA,CAAAK,MAAA,MAAOH,uBAAA,CAAAI,cAAA,EAAe,CACtB,GAEA,GACD,EAED,GACE,GACA,EACD,GAAAC,IAAA;IAED,IAAAP,aAAA,CAAAK,MAAG,MAAAH,uBAAA,CAAAI,cAAA,GAID,GACA,GACA,EACD,GAED,GACE,GACA,EACA,GAAAC,IAAA;IACD,IAAAP,aAAA,CAAAK,MAAA,MAAAH,uBAAA,CAAAI,cAAA,GAED;MACEE,EAAA;IACA,EACD,GACF","ignoreList":[]}
|