@skgo/sveltekit-adapter 0.16.0 → 0.16.2

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/skgo-adapter.js +6 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skgo/sveltekit-adapter",
3
- "version": "0.16.0",
3
+ "version": "0.16.2",
4
4
  "description": "SvelteKit adapter for skgo: builds a frontend that a Go binary renders and answers",
5
5
  "keywords": [
6
6
  "adapter",
package/skgo-adapter.js CHANGED
@@ -113,7 +113,7 @@ export default function skgo({ out = 'build', precompress = true } = {}) {
113
113
  emulate() {
114
114
  return {
115
115
  platform: () => ({
116
- async skgoPrerenderLoad(module, event) {
116
+ async skgoPrerenderLoad(module, source, event) {
117
117
  await buildPrerenderBinary();
118
118
  const headers = Object.fromEntries(
119
119
  [...event.request.headers].map(([name, value]) => [name, [value]])
@@ -133,6 +133,11 @@ export default function skgo({ out = 'build', precompress = true } = {}) {
133
133
  };
134
134
  const raw = await runPrerenderCommand(prerenderBinary, [], prerenderRoot, JSON.stringify(request));
135
135
  const answer = JSON.parse(raw);
136
+ if (typeof answer.failure === 'string') {
137
+ throw new Error(
138
+ `skgo: Go load failed during prerender: route ID ${event.route.id}, path ${event.url.pathname}, source ${source}: ${answer.failure}`
139
+ );
140
+ }
136
141
  for (const [name, values] of Object.entries(answer.headers ?? {})) {
137
142
  event.setHeaders({ [name]: values.join(', ') });
138
143
  }
@@ -354,22 +359,10 @@ function readGenerated() {
354
359
  * tree off this list and issues the trailing-slash 308 off it, which is what
355
360
  * adapter-node does with the same array.
356
361
  *
357
- * A prerendered *redirect* is refused rather than dropped. Kit records one when
358
- * a page it rendered redirected somewhere, and skgo has nothing that would
359
- * replay it — an app that produced one would silently lose it.
360
- *
361
362
  * @param {import('@sveltejs/kit').Builder} builder
362
363
  * @returns {string[]}
363
364
  */
364
365
  function readPrerendered(builder) {
365
- if (builder.prerendered.redirects.size > 0) {
366
- throw new Error(
367
- 'skgo: the build prerendered a redirect, which skgo does not serve:\n' +
368
- [...builder.prerendered.redirects]
369
- .map(([from, { status, location }]) => ` ${from} -> ${status} ${location}`)
370
- .join('\n')
371
- );
372
- }
373
366
  return [...builder.prerendered.paths].sort();
374
367
  }
375
368