@skgo/sveltekit-adapter 0.18.0 → 0.22.0

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/index.d.ts CHANGED
@@ -7,6 +7,10 @@ interface AdapterOptions {
7
7
  * @default 'build'
8
8
  */
9
9
  out?: string;
10
+ /** Authored Go build-service package, relative to the app's Go module root.
11
+ * Use RunPrerenderService to share renderer defaults with production SSR.
12
+ * Defaults to the generated prerender entry. */
13
+ prerenderPackage?: string;
10
14
  /**
11
15
  * Whether to write gzip and brotli copies of the assets and the prerendered
12
16
  * pages beside them. The Go server serves whichever the browser asked for.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skgo/sveltekit-adapter",
3
- "version": "0.18.0",
3
+ "version": "0.22.0",
4
4
  "description": "SvelteKit adapter for skgo: builds a frontend that a Go binary renders and answers",
5
5
  "keywords": [
6
6
  "adapter",
@@ -60,12 +60,12 @@ function handle_error(error) {
60
60
  * kit's remote wrappers read during a render are populated. is_in_render is
61
61
  * what makes kit refuse a command.
62
62
  */
63
- function make_state() {
63
+ function make_state(req) {
64
64
  return {
65
- getClientAddress: () => '127.0.0.1',
65
+ getClientAddress: () => __skgo_client_address(),
66
66
  error: false,
67
67
  rerouted_url: null,
68
- depth: 0,
68
+ depth: req.is_sub_request ? 1 : 0,
69
69
  remote: {
70
70
  data: null,
71
71
  implicit: null,
@@ -171,7 +171,7 @@ function make_event(req, url, serialized) {
171
171
  serialize: () => ''
172
172
  },
173
173
  fetch: create_fetch(req, url, serialized),
174
- getClientAddress: () => req.client_address ?? '127.0.0.1',
174
+ getClientAddress: () => __skgo_client_address(),
175
175
  locals: {},
176
176
  params: req.params ?? {},
177
177
  platform: undefined,
@@ -179,9 +179,9 @@ function make_event(req, url, serialized) {
179
179
  route: { id: req.route_id ?? null },
180
180
  setHeaders: () => {},
181
181
  url,
182
- isDataRequest: false,
183
- isSubRequest: false,
184
- isRemoteRequest: false,
182
+ isDataRequest: !!req.is_data_request,
183
+ isSubRequest: !!req.is_sub_request,
184
+ isRemoteRequest: !!req.is_remote_request,
185
185
  tracing: { enabled: false }
186
186
  };
187
187
  }
@@ -362,7 +362,7 @@ globalThis.__skgo_render = function (req_json) {
362
362
  try {
363
363
  const req = JSON.parse(req_json);
364
364
  const url = new URL(req.url);
365
- const state = make_state();
365
+ const state = make_state(req);
366
366
  const serialized = new Set();
367
367
  const event = make_event(req, url, serialized);
368
368
  const fetched = [];
@@ -338,6 +338,8 @@ export function gojaEnvironment() {
338
338
  load: {
339
339
  order: 'pre',
340
340
  handler(id) {
341
+ // Go owns handle at runtime; this build-only hook has no engine code.
342
+ if (/\/src\/hooks\.server\.(?:ts|js)(?:\?|$)/.test(id)) return 'export {};';
341
343
  if (/\/\.svelte-kit\/skgo-env-(?:values\.js|runtime\.json)(?:\?|$)/.test(id)) {
342
344
  throw new Error('skgo: environment build inputs are private');
343
345
  }
@@ -978,6 +980,8 @@ export function gojaDevEnvironment({ outDir = '.svelte-kit' } = {}) {
978
980
  load: {
979
981
  order: 'pre',
980
982
  handler(id) {
983
+ // Go owns handle at runtime; this build-only hook has no engine code.
984
+ if (/\/src\/hooks\.server\.(?:ts|js)(?:\?|$)/.test(id)) return 'export {};';
981
985
  if (/\/\.svelte-kit\/skgo-env-(?:values\.js|runtime\.json)(?:\?|$)/.test(id)) {
982
986
  throw new Error('skgo: environment build inputs are private');
983
987
  }
@@ -1,2 +1,6 @@
1
1
  /** Internal bridge used by generated declared-prerender input modules. */
2
2
  export function remoteInputs<Input = unknown>(module: string, name: string): Promise<Input[]>;
3
+
4
+ /** Build-only logical request lifecycle used by generated server hooks. */
5
+ export function requestHandle(event: import('@sveltejs/kit').RequestEvent, resolve: (event: import('@sveltejs/kit').RequestEvent, options?: import('@sveltejs/kit/hooks').ResolveOptions) => Promise<Response>): Promise<Response>;
6
+ export function requestFetch(input: Parameters<import('@sveltejs/kit/hooks').HandleFetch>[0]): Promise<Response>;