@jsenv/navi 0.29.309 → 0.29.311
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/dev/jsenv_navi.js +34 -7
- package/dist/dev/jsenv_navi.js.map +3 -3
- package/dist/jsenv_navi.js +34 -0
- package/dist/jsenv_navi.js.map +3 -3
- package/package.json +1 -1
package/dist/jsenv_navi.js
CHANGED
|
@@ -2837,7 +2837,17 @@ const updateActions = ({
|
|
|
2837
2837
|
* - willRunSet: actions that will be run
|
|
2838
2838
|
* - willPromoteSet: prerun actions that become run-requested
|
|
2839
2839
|
* - stays*Set: actions that remain in their current state
|
|
2840
|
+
*
|
|
2841
|
+
* A proxy in any of the sets stands for the action it currently targets,
|
|
2842
|
+
* exactly as proxy.run()/rerun()/reset() do: what enters activationWeakSet
|
|
2843
|
+
* is always the target. A proxy kept in there would retarget on its own —
|
|
2844
|
+
* to a never-run child once its params go falsy — and getActivationInfo
|
|
2845
|
+
* would then meet an IDLE member on every later update of the document.
|
|
2840
2846
|
*/
|
|
2847
|
+
prerunSet = resolveActionProxies(prerunSet);
|
|
2848
|
+
runSet = resolveActionProxies(runSet);
|
|
2849
|
+
rerunSet = resolveActionProxies(rerunSet);
|
|
2850
|
+
resetSet = resolveActionProxies(resetSet);
|
|
2841
2851
|
|
|
2842
2852
|
const { runningSet, settledSet } = getActivationInfo();
|
|
2843
2853
|
|
|
@@ -3162,6 +3172,14 @@ ${lines.join("\n")}`);
|
|
|
3162
3172
|
};
|
|
3163
3173
|
};
|
|
3164
3174
|
|
|
3175
|
+
const resolveActionProxies = (actionSet) => {
|
|
3176
|
+
const resolvedSet = new Set();
|
|
3177
|
+
for (const action of actionSet) {
|
|
3178
|
+
resolvedSet.add(action.isProxy ? action.getCurrentAction() : action);
|
|
3179
|
+
}
|
|
3180
|
+
return resolvedSet;
|
|
3181
|
+
};
|
|
3182
|
+
|
|
3165
3183
|
const NO_PARAMS = { __no_params__: true };
|
|
3166
3184
|
const mergeActionParams = (currentParams, newParams) => {
|
|
3167
3185
|
// The order of these two checks is load-bearing. Checking `undefined` first
|
|
@@ -25830,6 +25848,22 @@ This prevents cross-test pollution and ensures clean state.`,
|
|
|
25830
25848
|
// URL is the source of truth for explicit parameters
|
|
25831
25849
|
const value = paramSignal.peek();
|
|
25832
25850
|
if (urlParamValue === undefined) {
|
|
25851
|
+
// An address silent about a persisted search param leaves it
|
|
25852
|
+
// alone: the state already holds what is stored (it starts from
|
|
25853
|
+
// storage and every write goes back to it), and a reset here
|
|
25854
|
+
// would empty the storage as well. Reading the storage back is
|
|
25855
|
+
// not an option either: the write that removes the param from
|
|
25856
|
+
// the address is the one emptying its storage, and this sync can
|
|
25857
|
+
// run before that removal has happened.
|
|
25858
|
+
// A path segment or a pushed param names a place, and an address
|
|
25859
|
+
// without it is the place without it: those follow the address.
|
|
25860
|
+
if (
|
|
25861
|
+
connection.persists &&
|
|
25862
|
+
connection.paramType === "query" &&
|
|
25863
|
+
connection.history !== "push"
|
|
25864
|
+
) {
|
|
25865
|
+
continue;
|
|
25866
|
+
}
|
|
25833
25867
|
// No URL parameter - reset signal to its current default value
|
|
25834
25868
|
// (handles both static fallback and dynamic default cases)
|
|
25835
25869
|
const defaultValue = connection.getDefaultValue();
|