@sveltejs/kit 2.38.0 → 2.38.1
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/package.json +1 -1
- package/src/runtime/app/server/remote/command.js +7 -1
- package/src/runtime/client/remote-functions/query.svelte.js +0 -2
- package/src/runtime/client/remote-functions/shared.svelte.js +0 -6
- package/src/runtime/server/endpoint.js +2 -0
- package/src/runtime/server/page/data_serializer.js +2 -1
- package/src/runtime/server/page/index.js +6 -2
- package/src/runtime/server/remote.js +4 -4
- package/src/types/internal.d.ts +1 -0
- package/src/version.js +1 -1
package/package.json
CHANGED
|
@@ -64,7 +64,13 @@ export function command(validate_or_fn, maybe_fn) {
|
|
|
64
64
|
const wrapper = (arg) => {
|
|
65
65
|
const { event, state } = get_request_store();
|
|
66
66
|
|
|
67
|
-
if (
|
|
67
|
+
if (state.is_endpoint_request) {
|
|
68
|
+
if (!['POST', 'PUT', 'PATCH', 'DELETE'].includes(event.request.method)) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
`Cannot call a command (\`${__.name}(${maybe_fn ? '...' : ''})\`) from a ${event.request.method} handler`
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
} else if (!event.isRemoteRequest) {
|
|
68
74
|
throw new Error(
|
|
69
75
|
`Cannot call a command (\`${__.name}(${maybe_fn ? '...' : ''})\`) during server-side rendering`
|
|
70
76
|
);
|
|
@@ -21,13 +21,7 @@ export async function remote_request(url) {
|
|
|
21
21
|
const result = /** @type {RemoteFunctionResponse} */ (await response.json());
|
|
22
22
|
|
|
23
23
|
if (result.type === 'redirect') {
|
|
24
|
-
// resource_cache.delete(cache_key);
|
|
25
|
-
// version++;
|
|
26
|
-
// await goto(result.location);
|
|
27
|
-
// /** @type {Query<any>} */ (resource).refresh();
|
|
28
|
-
// TODO double-check this
|
|
29
24
|
await goto(result.location);
|
|
30
|
-
await new Promise((r) => setTimeout(r, 100));
|
|
31
25
|
throw new Redirect(307, result.location);
|
|
32
26
|
}
|
|
33
27
|
|
|
@@ -41,6 +41,8 @@ export async function render_endpoint(event, event_state, mod, state) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
event_state.is_endpoint_request = true;
|
|
45
|
+
|
|
44
46
|
try {
|
|
45
47
|
const response = await with_request_store({ event, state: event_state }, () =>
|
|
46
48
|
handler(/** @type {import('@sveltejs/kit').RequestEvent<Record<string, any>>} */ (event))
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as devalue from 'devalue';
|
|
2
|
+
import { compact } from '../../../utils/array.js';
|
|
2
3
|
import { create_async_iterator } from '../../../utils/streaming.js';
|
|
3
4
|
import {
|
|
4
5
|
clarify_devalue_error,
|
|
@@ -96,7 +97,7 @@ export function server_data_serializer(event, event_state, options) {
|
|
|
96
97
|
const close = `</script>\n`;
|
|
97
98
|
|
|
98
99
|
return {
|
|
99
|
-
data: `[${strings.join(',')}]`,
|
|
100
|
+
data: `[${compact(strings).join(',')}]`,
|
|
100
101
|
chunks: promise_id > 1 ? iterator.iterate((str) => open + str + close) : null
|
|
101
102
|
};
|
|
102
103
|
}
|
|
@@ -195,7 +195,10 @@ export async function render_page(
|
|
|
195
195
|
}
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
-
|
|
198
|
+
if (node) {
|
|
199
|
+
data_serializer.add_node(i, server_data);
|
|
200
|
+
}
|
|
201
|
+
|
|
199
202
|
data_serializer_json?.add_node(i, server_data);
|
|
200
203
|
|
|
201
204
|
return server_data;
|
|
@@ -348,7 +351,8 @@ export async function render_page(
|
|
|
348
351
|
branch: ssr === false ? [] : compact(branch),
|
|
349
352
|
action_result,
|
|
350
353
|
fetched,
|
|
351
|
-
data_serializer
|
|
354
|
+
data_serializer:
|
|
355
|
+
ssr === false ? server_data_serializer(event, event_state, options) : data_serializer
|
|
352
356
|
});
|
|
353
357
|
} catch (e) {
|
|
354
358
|
// if we end up here, it means the data loaded successfully
|
|
@@ -117,8 +117,8 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
const form_data = await event.request.formData();
|
|
120
|
-
form_client_refreshes =
|
|
121
|
-
/** @type {string} */ (form_data.get('sveltekit:remote_refreshes')) ?? '[]'
|
|
120
|
+
form_client_refreshes = /** @type {string[]} */ (
|
|
121
|
+
JSON.parse(/** @type {string} */ (form_data.get('sveltekit:remote_refreshes')) ?? '[]')
|
|
122
122
|
);
|
|
123
123
|
form_data.delete('sveltekit:remote_refreshes');
|
|
124
124
|
|
|
@@ -129,7 +129,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
129
129
|
/** @type {RemoteFunctionResponse} */ ({
|
|
130
130
|
type: 'result',
|
|
131
131
|
result: stringify(data, transport),
|
|
132
|
-
refreshes: await serialize_refreshes(
|
|
132
|
+
refreshes: await serialize_refreshes(form_client_refreshes)
|
|
133
133
|
})
|
|
134
134
|
);
|
|
135
135
|
}
|
|
@@ -194,7 +194,7 @@ async function handle_remote_call_internal(event, state, options, manifest, id)
|
|
|
194
194
|
* @param {string[]} client_refreshes
|
|
195
195
|
*/
|
|
196
196
|
async function serialize_refreshes(client_refreshes) {
|
|
197
|
-
const refreshes =
|
|
197
|
+
const refreshes = state.refreshes ?? {};
|
|
198
198
|
|
|
199
199
|
for (const key of client_refreshes) {
|
|
200
200
|
if (refreshes[key] !== undefined) continue;
|
package/src/types/internal.d.ts
CHANGED
package/src/version.js
CHANGED