@tanstack/solid-query 5.24.2 → 5.24.4
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/build/dev.cjs +14 -1
- package/build/dev.js +14 -1
- package/build/index.cjs +14 -1
- package/build/index.js +14 -1
- package/package.json +1 -1
- package/src/createBaseQuery.ts +19 -1
package/build/dev.cjs
CHANGED
|
@@ -88,6 +88,7 @@ var hydratableObserverResult = (query, result) => {
|
|
|
88
88
|
function createBaseQuery(options, Observer, queryClient) {
|
|
89
89
|
const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
|
|
90
90
|
const isRestoring = exports.useIsRestoring();
|
|
91
|
+
let unsubscribeQueued = false;
|
|
91
92
|
const defaultedOptions = solidJs.createMemo(() => {
|
|
92
93
|
const defaultOptions = client().defaultQueryOptions(options());
|
|
93
94
|
defaultOptions._optimisticResults = isRestoring() ? "isRestoring" : "optimistic";
|
|
@@ -111,12 +112,20 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
111
112
|
const unwrappedResult = hydratableObserverResult(query, result);
|
|
112
113
|
if (unwrappedResult.isError) {
|
|
113
114
|
reject(unwrappedResult.error);
|
|
115
|
+
unsubscribeIfQueued();
|
|
114
116
|
} else {
|
|
115
117
|
resolve(unwrappedResult);
|
|
118
|
+
unsubscribeIfQueued();
|
|
116
119
|
}
|
|
117
120
|
})();
|
|
118
121
|
});
|
|
119
122
|
};
|
|
123
|
+
const unsubscribeIfQueued = () => {
|
|
124
|
+
if (unsubscribeQueued) {
|
|
125
|
+
unsubscribe?.();
|
|
126
|
+
unsubscribeQueued = false;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
120
129
|
const createClientSubscriber = () => {
|
|
121
130
|
const obs = observer();
|
|
122
131
|
return obs.subscribe((result) => {
|
|
@@ -220,11 +229,15 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
220
229
|
)
|
|
221
230
|
);
|
|
222
231
|
solidJs.createComputed(() => {
|
|
223
|
-
if (!isRestoring()) {
|
|
232
|
+
if (!isRestoring() && !web.isServer) {
|
|
224
233
|
refetch();
|
|
225
234
|
}
|
|
226
235
|
});
|
|
227
236
|
solidJs.onCleanup(() => {
|
|
237
|
+
if (web.isServer && queryResource.loading) {
|
|
238
|
+
unsubscribeQueued = true;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
228
241
|
if (unsubscribe) {
|
|
229
242
|
unsubscribe();
|
|
230
243
|
unsubscribe = null;
|
package/build/dev.js
CHANGED
|
@@ -87,6 +87,7 @@ var hydratableObserverResult = (query, result) => {
|
|
|
87
87
|
function createBaseQuery(options, Observer, queryClient) {
|
|
88
88
|
const client = createMemo(() => useQueryClient(queryClient?.()));
|
|
89
89
|
const isRestoring = useIsRestoring();
|
|
90
|
+
let unsubscribeQueued = false;
|
|
90
91
|
const defaultedOptions = createMemo(() => {
|
|
91
92
|
const defaultOptions = client().defaultQueryOptions(options());
|
|
92
93
|
defaultOptions._optimisticResults = isRestoring() ? "isRestoring" : "optimistic";
|
|
@@ -110,12 +111,20 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
110
111
|
const unwrappedResult = hydratableObserverResult(query, result);
|
|
111
112
|
if (unwrappedResult.isError) {
|
|
112
113
|
reject(unwrappedResult.error);
|
|
114
|
+
unsubscribeIfQueued();
|
|
113
115
|
} else {
|
|
114
116
|
resolve(unwrappedResult);
|
|
117
|
+
unsubscribeIfQueued();
|
|
115
118
|
}
|
|
116
119
|
})();
|
|
117
120
|
});
|
|
118
121
|
};
|
|
122
|
+
const unsubscribeIfQueued = () => {
|
|
123
|
+
if (unsubscribeQueued) {
|
|
124
|
+
unsubscribe?.();
|
|
125
|
+
unsubscribeQueued = false;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
119
128
|
const createClientSubscriber = () => {
|
|
120
129
|
const obs = observer();
|
|
121
130
|
return obs.subscribe((result) => {
|
|
@@ -219,11 +228,15 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
219
228
|
)
|
|
220
229
|
);
|
|
221
230
|
createComputed(() => {
|
|
222
|
-
if (!isRestoring()) {
|
|
231
|
+
if (!isRestoring() && !isServer) {
|
|
223
232
|
refetch();
|
|
224
233
|
}
|
|
225
234
|
});
|
|
226
235
|
onCleanup(() => {
|
|
236
|
+
if (isServer && queryResource.loading) {
|
|
237
|
+
unsubscribeQueued = true;
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
227
240
|
if (unsubscribe) {
|
|
228
241
|
unsubscribe();
|
|
229
242
|
unsubscribe = null;
|
package/build/index.cjs
CHANGED
|
@@ -88,6 +88,7 @@ var hydratableObserverResult = (query, result) => {
|
|
|
88
88
|
function createBaseQuery(options, Observer, queryClient) {
|
|
89
89
|
const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
|
|
90
90
|
const isRestoring = exports.useIsRestoring();
|
|
91
|
+
let unsubscribeQueued = false;
|
|
91
92
|
const defaultedOptions = solidJs.createMemo(() => {
|
|
92
93
|
const defaultOptions = client().defaultQueryOptions(options());
|
|
93
94
|
defaultOptions._optimisticResults = isRestoring() ? "isRestoring" : "optimistic";
|
|
@@ -111,12 +112,20 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
111
112
|
const unwrappedResult = hydratableObserverResult(query, result);
|
|
112
113
|
if (unwrappedResult.isError) {
|
|
113
114
|
reject(unwrappedResult.error);
|
|
115
|
+
unsubscribeIfQueued();
|
|
114
116
|
} else {
|
|
115
117
|
resolve(unwrappedResult);
|
|
118
|
+
unsubscribeIfQueued();
|
|
116
119
|
}
|
|
117
120
|
})();
|
|
118
121
|
});
|
|
119
122
|
};
|
|
123
|
+
const unsubscribeIfQueued = () => {
|
|
124
|
+
if (unsubscribeQueued) {
|
|
125
|
+
unsubscribe?.();
|
|
126
|
+
unsubscribeQueued = false;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
120
129
|
const createClientSubscriber = () => {
|
|
121
130
|
const obs = observer();
|
|
122
131
|
return obs.subscribe((result) => {
|
|
@@ -220,11 +229,15 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
220
229
|
)
|
|
221
230
|
);
|
|
222
231
|
solidJs.createComputed(() => {
|
|
223
|
-
if (!isRestoring()) {
|
|
232
|
+
if (!isRestoring() && !web.isServer) {
|
|
224
233
|
refetch();
|
|
225
234
|
}
|
|
226
235
|
});
|
|
227
236
|
solidJs.onCleanup(() => {
|
|
237
|
+
if (web.isServer && queryResource.loading) {
|
|
238
|
+
unsubscribeQueued = true;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
228
241
|
if (unsubscribe) {
|
|
229
242
|
unsubscribe();
|
|
230
243
|
unsubscribe = null;
|
package/build/index.js
CHANGED
|
@@ -87,6 +87,7 @@ var hydratableObserverResult = (query, result) => {
|
|
|
87
87
|
function createBaseQuery(options, Observer, queryClient) {
|
|
88
88
|
const client = createMemo(() => useQueryClient(queryClient?.()));
|
|
89
89
|
const isRestoring = useIsRestoring();
|
|
90
|
+
let unsubscribeQueued = false;
|
|
90
91
|
const defaultedOptions = createMemo(() => {
|
|
91
92
|
const defaultOptions = client().defaultQueryOptions(options());
|
|
92
93
|
defaultOptions._optimisticResults = isRestoring() ? "isRestoring" : "optimistic";
|
|
@@ -110,12 +111,20 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
110
111
|
const unwrappedResult = hydratableObserverResult(query, result);
|
|
111
112
|
if (unwrappedResult.isError) {
|
|
112
113
|
reject(unwrappedResult.error);
|
|
114
|
+
unsubscribeIfQueued();
|
|
113
115
|
} else {
|
|
114
116
|
resolve(unwrappedResult);
|
|
117
|
+
unsubscribeIfQueued();
|
|
115
118
|
}
|
|
116
119
|
})();
|
|
117
120
|
});
|
|
118
121
|
};
|
|
122
|
+
const unsubscribeIfQueued = () => {
|
|
123
|
+
if (unsubscribeQueued) {
|
|
124
|
+
unsubscribe?.();
|
|
125
|
+
unsubscribeQueued = false;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
119
128
|
const createClientSubscriber = () => {
|
|
120
129
|
const obs = observer();
|
|
121
130
|
return obs.subscribe((result) => {
|
|
@@ -219,11 +228,15 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
219
228
|
)
|
|
220
229
|
);
|
|
221
230
|
createComputed(() => {
|
|
222
|
-
if (!isRestoring()) {
|
|
231
|
+
if (!isRestoring() && !isServer) {
|
|
223
232
|
refetch();
|
|
224
233
|
}
|
|
225
234
|
});
|
|
226
235
|
onCleanup(() => {
|
|
236
|
+
if (isServer && queryResource.loading) {
|
|
237
|
+
unsubscribeQueued = true;
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
227
240
|
if (unsubscribe) {
|
|
228
241
|
unsubscribe();
|
|
229
242
|
unsubscribe = null;
|
package/package.json
CHANGED
package/src/createBaseQuery.ts
CHANGED
|
@@ -120,6 +120,11 @@ export function createBaseQuery<
|
|
|
120
120
|
|
|
121
121
|
const client = createMemo(() => useQueryClient(queryClient?.()))
|
|
122
122
|
const isRestoring = useIsRestoring()
|
|
123
|
+
// There are times when we run a query on the server but the resource is never read
|
|
124
|
+
// This could lead to times when the queryObserver is unsubscribed before the resource has loaded
|
|
125
|
+
// Causing a time out error. To prevent this we will queue the unsubscribe if the cleanup is called
|
|
126
|
+
// before the resource has loaded
|
|
127
|
+
let unsubscribeQueued = false
|
|
123
128
|
|
|
124
129
|
const defaultedOptions = createMemo(() => {
|
|
125
130
|
const defaultOptions = client().defaultQueryOptions(options())
|
|
@@ -155,13 +160,22 @@ export function createBaseQuery<
|
|
|
155
160
|
|
|
156
161
|
if (unwrappedResult.isError) {
|
|
157
162
|
reject(unwrappedResult.error)
|
|
163
|
+
unsubscribeIfQueued()
|
|
158
164
|
} else {
|
|
159
165
|
resolve(unwrappedResult)
|
|
166
|
+
unsubscribeIfQueued()
|
|
160
167
|
}
|
|
161
168
|
})()
|
|
162
169
|
})
|
|
163
170
|
}
|
|
164
171
|
|
|
172
|
+
const unsubscribeIfQueued = () => {
|
|
173
|
+
if (unsubscribeQueued) {
|
|
174
|
+
unsubscribe?.()
|
|
175
|
+
unsubscribeQueued = false
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
165
179
|
const createClientSubscriber = () => {
|
|
166
180
|
const obs = observer()
|
|
167
181
|
return obs.subscribe((result) => {
|
|
@@ -289,12 +303,16 @@ export function createBaseQuery<
|
|
|
289
303
|
)
|
|
290
304
|
|
|
291
305
|
createComputed(() => {
|
|
292
|
-
if (!isRestoring()) {
|
|
306
|
+
if (!isRestoring() && !isServer) {
|
|
293
307
|
refetch()
|
|
294
308
|
}
|
|
295
309
|
})
|
|
296
310
|
|
|
297
311
|
onCleanup(() => {
|
|
312
|
+
if (isServer && queryResource.loading) {
|
|
313
|
+
unsubscribeQueued = true
|
|
314
|
+
return
|
|
315
|
+
}
|
|
298
316
|
if (unsubscribe) {
|
|
299
317
|
unsubscribe()
|
|
300
318
|
unsubscribe = null
|