@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltejs/kit",
3
- "version": "2.38.0",
3
+ "version": "2.38.1",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -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 (!event.isRemoteRequest) {
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
  );
@@ -83,9 +83,7 @@ export function query_batch(id) {
83
83
  }
84
84
 
85
85
  if (result.type === 'redirect') {
86
- // TODO double-check this
87
86
  await goto(result.location);
88
- await new Promise((r) => setTimeout(r, 100));
89
87
  throw new Redirect(307, result.location);
90
88
  }
91
89
 
@@ -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
- data_serializer.add_node(i, server_data);
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 = JSON.parse(
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(/** @type {string[]} */ (form_client_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 = /** @type {Record<string, Promise<any>>} */ (state.refreshes);
197
+ const refreshes = state.refreshes ?? {};
198
198
 
199
199
  for (const key of client_refreshes) {
200
200
  if (refreshes[key] !== undefined) continue;
@@ -598,6 +598,7 @@ export interface RequestState {
598
598
  form_instances?: Map<any, any>;
599
599
  remote_data?: Record<string, MaybePromise<any>>;
600
600
  refreshes?: Record<string, Promise<any>>;
601
+ is_endpoint_request?: boolean;
601
602
  }
602
603
 
603
604
  export interface RequestStore {
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated during release, do not modify
2
2
 
3
3
  /** @type {string} */
4
- export const VERSION = '2.38.0';
4
+ export const VERSION = '2.38.1';