Skip to content

Commit f223f91

Browse files
rename app.render to server.respond (#4034)
* rename app.render to server.respond * fix replacements * try this * ok i think i got it now * Update .changeset/late-bobcats-brake.md Co-authored-by: Ben McCann <[email protected]> Co-authored-by: Ben McCann <[email protected]>
1 parent 5d5e6e2 commit f223f91

File tree

23 files changed

+71
-61
lines changed

23 files changed

+71
-61
lines changed

.changeset/late-bobcats-brake.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
'@sveltejs/adapter-cloudflare': patch
3+
'@sveltejs/adapter-cloudflare-workers': patch
4+
'@sveltejs/adapter-netlify': patch
5+
'@sveltejs/adapter-node': patch
6+
'@sveltejs/adapter-vercel': patch
7+
'@sveltejs/kit': patch
8+
---
9+
10+
[breaking] rename `app.render` to `server.respond`

packages/adapter-cloudflare-workers/files/entry.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
declare module 'APP' {
2-
export { App } from '@sveltejs/kit';
1+
declare module 'SERVER' {
2+
export { Server } from '@sveltejs/kit';
33
}
44

55
declare module 'MANIFEST' {

packages/adapter-cloudflare-workers/files/entry.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { App } from 'APP';
1+
import { Server } from 'SERVER';
22
import { manifest, prerendered } from 'MANIFEST';
33
import { getAssetFromKV } from '@cloudflare/kv-asset-handler';
44

5-
const app = new App(manifest);
5+
const server = new Server(manifest);
66

77
const prefix = `/${manifest.appDir}/`;
88

@@ -50,7 +50,7 @@ async function handle(event) {
5050

5151
// dynamically-generated pages
5252
try {
53-
return await app.render(request);
53+
return await server.respond(request);
5454
} catch (e) {
5555
return new Response('Error rendering route:' + (e.message || e.toString()), { status: 500 });
5656
}

packages/adapter-cloudflare-workers/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export default function () {
4040

4141
builder.copy(`${files}/entry.js`, `${tmp}/entry.js`, {
4242
replace: {
43-
APP: `${relativePath}/app.js`,
43+
SERVER: `${relativePath}/index.js`,
4444
MANIFEST: './manifest.js'
4545
}
4646
});

packages/adapter-cloudflare/files/worker.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
declare module 'APP' {
2-
export { App } from '@sveltejs/kit';
1+
declare module 'SERVER' {
2+
export { Server } from '@sveltejs/kit';
33
}
44

55
declare module 'MANIFEST' {

packages/adapter-cloudflare/files/worker.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { App } from 'APP';
1+
import { Server } from 'SERVER';
22
import { manifest, prerendered } from 'MANIFEST';
33

4-
const app = new App(manifest);
4+
const server = new Server(manifest);
55

66
const prefix = `/${manifest.appDir}/`;
77

@@ -50,7 +50,7 @@ export default {
5050

5151
// dynamically-generated pages
5252
try {
53-
return await app.render(req, { platform: { env, context } });
53+
return await server.respond(req, { platform: { env, context } });
5454
} catch (e) {
5555
return new Response('Error rendering route: ' + (e.message || e.toString()), { status: 500 });
5656
}

packages/adapter-cloudflare/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default function (options = {}) {
3232

3333
builder.copy(`${files}/worker.js`, `${tmp}/_worker.js`, {
3434
replace: {
35-
APP: `${relativePath}/app.js`,
35+
SERVER: `${relativePath}/index.js`,
3636
MANIFEST: './manifest.js'
3737
}
3838
});

packages/adapter-netlify/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default function ({ split = false } = {}) {
5151
const redirects = [];
5252

5353
const replace = {
54-
'0APP': './server/app.js' // digit prefix prevents CJS build from using this as a variable name, which would also get replaced
54+
'0SERVER': './server/index.js' // digit prefix prevents CJS build from using this as a variable name, which would also get replaced
5555
};
5656

5757
if (esm) {
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
declare module '0APP' {
2-
export { App } from '@sveltejs/kit';
1+
declare module '0SERVER' {
2+
export { Server } from '@sveltejs/kit';
33
}

packages/adapter-netlify/src/handler.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import './shims';
2-
import { App } from '0APP';
2+
import { Server } from '0SERVER';
33

44
/**
55
* @param {import('@sveltejs/kit').SSRManifest} manifest
66
* @returns {import('@netlify/functions').Handler}
77
*/
88
export function init(manifest) {
9-
const app = new App(manifest);
9+
const server = new Server(manifest);
1010

1111
return async (event) => {
12-
const rendered = await app.render(to_request(event));
12+
const rendered = await server.respond(to_request(event));
1313

1414
const partial_response = {
1515
statusCode: rendered.status,

packages/adapter-node/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export default function ({
4949

5050
builder.copy(files, out, {
5151
replace: {
52-
APP: './server/app.js',
52+
SERVER: './server/index.js',
5353
MANIFEST: './manifest.js',
5454
PATH_ENV: JSON.stringify(path_env),
5555
HOST_ENV: JSON.stringify(host_env),

packages/adapter-node/rollup.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default [
1414
format: 'esm'
1515
},
1616
plugins: [nodeResolve(), commonjs(), json()],
17-
external: ['APP', 'MANIFEST', ...require('module').builtinModules]
17+
external: ['SERVER', 'MANIFEST', ...require('module').builtinModules]
1818
}
1919
];

packages/adapter-node/src/ambient.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
declare module 'APP' {
2-
export { App } from '@sveltejs/kit';
1+
declare module 'SERVER' {
2+
export { Server } from '@sveltejs/kit';
33
}
44

55
declare module 'MANIFEST' {

packages/adapter-node/src/handler.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import path from 'path';
44
import sirv from 'sirv';
55
import { fileURLToPath } from 'url';
66
import { getRequest, setResponse } from '@sveltejs/kit/node';
7-
import { App } from 'APP';
7+
import { Server } from 'SERVER';
88
import { manifest } from 'MANIFEST';
99

1010
/* global ORIGIN, PROTOCOL_HEADER, HOST_HEADER */
1111

12-
const app = new App(manifest);
12+
const server = new Server(manifest);
1313
const origin = ORIGIN;
1414
const protocol_header = PROTOCOL_HEADER && process.env[PROTOCOL_HEADER];
1515
const host_header = (HOST_HEADER && process.env[HOST_HEADER]) || 'host';
@@ -45,7 +45,7 @@ const ssr = async (req, res) => {
4545
return res.end(err.reason || 'Invalid request body');
4646
}
4747

48-
setResponse(res, await app.render(request));
48+
setResponse(res, await server.respond(request));
4949
};
5050

5151
/** @param {import('polka').Middleware[]} handlers */

packages/adapter-vercel/files/ambient.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
declare module 'APP' {
2-
export { App } from '@sveltejs/kit';
1+
declare module 'SERVER' {
2+
export { Server } from '@sveltejs/kit';
33
}
44

55
declare module 'MANIFEST' {

packages/adapter-vercel/files/entry.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import './shims';
22
import { getRequest, setResponse } from '@sveltejs/kit/node';
3-
import { App } from 'APP';
3+
import { Server } from 'SERVER';
44
import { manifest } from 'MANIFEST';
55

6-
const app = new App(manifest);
6+
const server = new Server(manifest);
77

88
/**
99
* @param {import('http').IncomingMessage} req
@@ -19,5 +19,5 @@ export default async (req, res) => {
1919
return res.end(err.reason || 'Invalid request body');
2020
}
2121

22-
setResponse(res, await app.render(request));
22+
setResponse(res, await server.respond(request));
2323
};

packages/adapter-vercel/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export default function ({ external = [] } = {}) {
112112

113113
builder.copy(files, tmp, {
114114
replace: {
115-
APP: `${relativePath}/app.js`,
115+
SERVER: `${relativePath}/index.js`,
116116
MANIFEST: './manifest.js'
117117
}
118118
});

packages/kit/src/core/adapt/prerender/prerender.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a
6767

6868
const server_root = resolve_path(cwd, `${SVELTE_KIT}/output`);
6969

70-
/** @type {import('types').AppModule} */
71-
const { App, override } = await import(pathToFileURL(`${server_root}/server/app.js`).href);
70+
/** @type {import('types').ServerModule} */
71+
const { Server, override } = await import(pathToFileURL(`${server_root}/server/index.js`).href);
7272
const { manifest } = await import(pathToFileURL(`${server_root}/server/manifest.js`).href);
7373

7474
override({
@@ -77,7 +77,7 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a
7777
read: (file) => readFileSync(join(config.kit.files.assets, file))
7878
});
7979

80-
const app = new App(manifest);
80+
const server = new Server(manifest);
8181

8282
const error = normalise_error_handler(log, config.kit.prerender.onError);
8383

@@ -145,7 +145,7 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a
145145
/** @type {Map<string, import('types').PrerenderDependency>} */
146146
const dependencies = new Map();
147147

148-
const response = await app.render(new Request(`http://sveltekit-prerender${encoded}`), {
148+
const response = await server.respond(new Request(`http://sveltekit-prerender${encoded}`), {
149149
prerender: {
150150
all,
151151
dependencies
@@ -282,7 +282,7 @@ export async function prerender({ cwd, out, log, config, build_data, fallback, a
282282
}
283283

284284
if (fallback) {
285-
const rendered = await app.render(new Request('http://sveltekit-prerender/[fallback]'), {
285+
const rendered = await server.respond(new Request('http://sveltekit-prerender/[fallback]'), {
286286
prerender: {
287287
fallback,
288288
all: false,

packages/kit/src/core/build/build_server.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { s } from '../../utils/misc.js';
1818
* }} opts
1919
* @returns
2020
*/
21-
const app_template = ({ config, hooks, has_service_worker, template }) => `
21+
const server_template = ({ config, hooks, has_service_worker, template }) => `
2222
import root from '__GENERATED__/root.svelte';
2323
import { respond } from '${runtime}/server/index.js';
2424
import { set_paths, assets, base } from '${runtime}/paths.js';
@@ -55,7 +55,7 @@ export function override(settings) {
5555
read = settings.read;
5656
}
5757
58-
export class App {
58+
export class Server {
5959
constructor(manifest) {
6060
const hooks = get_hooks(user_hooks);
6161
@@ -95,7 +95,7 @@ export class App {
9595
};
9696
}
9797
98-
render(request, options = {}) {
98+
respond(request, options = {}) {
9999
if (!(request instanceof Request)) {
100100
throw new Error('The first argument to app.render must be a Request object. See https://github.com/sveltejs/kit/pull/3384 for details');
101101
}
@@ -139,7 +139,7 @@ export async function build_server(
139139

140140
/** @type {Record<string, string>} */
141141
const input = {
142-
app: `${build_dir}/app.js`
142+
index: `${build_dir}/index.js`
143143
};
144144

145145
// add entry points for every endpoint...
@@ -172,8 +172,8 @@ export async function build_server(
172172
};
173173

174174
fs.writeFileSync(
175-
input.app,
176-
app_template({
175+
input.index,
176+
server_template({
177177
config,
178178
hooks: app_relative(hooks_file),
179179
has_service_worker: service_worker_register && !!service_worker_entry_file,

packages/kit/src/core/preview/index.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ export async function preview({
3333
}) {
3434
__fetch_polyfill();
3535

36-
const app_file = resolve(cwd, `${SVELTE_KIT}/output/server/app.js`);
36+
const index_file = resolve(cwd, `${SVELTE_KIT}/output/server/index.js`);
3737
const manifest_file = resolve(cwd, `${SVELTE_KIT}/output/server/manifest.js`);
3838

39-
/** @type {import('types').AppModule} */
40-
const { App, override } = await import(pathToFileURL(app_file).href);
39+
/** @type {import('types').ServerModule} */
40+
const { Server, override } = await import(pathToFileURL(index_file).href);
4141

4242
const { manifest } = await import(pathToFileURL(manifest_file).href);
4343

@@ -66,12 +66,12 @@ export async function preview({
6666
read: (file) => fs.readFileSync(join(config.kit.files.assets, file))
6767
});
6868

69-
const app = new App(manifest);
69+
const server = new Server(manifest);
7070

7171
/** @type {import('vite').UserConfig} */
7272
const vite_config = (config.kit.vite && (await config.kit.vite())) || {};
7373

74-
const server = await get_server(use_https, vite_config, (req, res) => {
74+
const http_server = await get_server(use_https, vite_config, (req, res) => {
7575
if (req.url == null) {
7676
throw new Error('Invalid request url');
7777
}
@@ -93,7 +93,7 @@ export async function preview({
9393
return res.end(err.reason || 'Invalid request body');
9494
}
9595

96-
setResponse(res, await app.render(request));
96+
setResponse(res, await server.respond(request));
9797
} else {
9898
res.statusCode = 404;
9999
res.end('Not found');
@@ -120,9 +120,9 @@ export async function preview({
120120
}
121121
});
122122

123-
await server.listen(port, host || '0.0.0.0');
123+
await http_server.listen(port, host || '0.0.0.0');
124124

125-
return Promise.resolve(server);
125+
return Promise.resolve(http_server);
126126
}
127127

128128
/**

packages/kit/types/index.d.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ import {
2020
} from './internal';
2121
import './ambient';
2222

23-
export class App {
24-
constructor(manifest: SSRManifest);
25-
render(request: Request, options?: RequestOptions): Promise<Response>;
26-
}
27-
2823
export interface Adapter {
2924
name: string;
3025
adapt(builder: Builder): Promise<void>;
@@ -371,6 +366,11 @@ export interface RequestOptions {
371366

372367
export type ResolveOptions = Partial<RequiredResolveOptions>;
373368

369+
export class Server {
370+
constructor(manifest: SSRManifest);
371+
respond(request: Request, options?: RequestOptions): Promise<Response>;
372+
}
373+
374374
export interface SSRManifest {
375375
appDir: string;
376376
assets: Set<string>;

packages/kit/types/internal.d.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import {
99
Handle,
1010
HandleError,
1111
RequestEvent,
12-
App,
1312
RequestOptions,
14-
PrerenderErrorHandler
13+
PrerenderErrorHandler,
14+
Server
1515
} from './index';
1616

1717
export interface AdapterEntry {
@@ -38,8 +38,8 @@ export interface AdapterEntry {
3838
}) => void;
3939
}
4040

41-
export interface AppModule {
42-
App: typeof InternalApp;
41+
export interface ServerModule {
42+
Server: typeof InternalServer;
4343

4444
override(options: {
4545
paths: {
@@ -117,8 +117,8 @@ export interface Hooks {
117117

118118
export type HttpMethod = 'get' | 'head' | 'post' | 'put' | 'delete' | 'patch';
119119

120-
export class InternalApp extends App {
121-
render(
120+
export class InternalServer extends Server {
121+
respond(
122122
request: Request,
123123
options?: RequestOptions & {
124124
prerender?: PrerenderOptions;

0 commit comments

Comments
 (0)