Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .changeset/flat-cases-see.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@
"@sveltejs/kit": major
---

breaking: remove `SSRManifest` from public types

breaking: remove `Server` constructor and `SSRManifest` from public types
77 changes: 38 additions & 39 deletions packages/kit/src/core/generate_manifest/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,46 +105,45 @@ export function generate_manifest({
/** @template {import('types').SSRManifest} T */
const manifest_expr = dedent`
{
appDir: ${s(build_data.app_dir)},
appPath: ${s(build_data.app_path)},
app_dir: ${s(build_data.app_dir)},
app_path: ${s(build_data.app_path)},
assets: new Set(${s(assets)}),
mimeTypes: ${s(mime_types)},
_: {
client: ${uneval(build_data.client)},
nodes: [
${(node_paths).map(loader).join(',\n')}
],
remotes: {
${remotes.map((remote) => `'${remote.hash}': ${loader(join_relative(relative_path, `chunks/remote-${remote.hash}.js`))}`).join(',\n')}
},
routes: [
${routes.map(route => {
if (!route.page && !route.endpoint) return;

return dedent`
{
id: ${s(route.id)},
pattern: ${route.pattern},
params: ${s(route.params)},
page: ${route.page ? `{ layouts: ${get_nodes(route.page.layouts)}, errors: ${get_nodes(route.page.errors)}, leaf: ${reindexed.get(route.page.leaf)} }` : 'null'},
endpoint: ${route.endpoint ? loader(join_relative(relative_path, resolve_symlinks(build_data.server_manifest, route.endpoint.file, root).chunk.file)) : 'null'}
}
`;
}).filter(Boolean).join(',\n')}
],
prerendered_routes: new Set(${s(prerendered)}),
matchers: async () => {
${
uses_matchers && build_data.manifest_data.params
? dedent`
const { params } = await import('${join_relative(relative_path, '/entries/params.js')}');
return params;
`
: 'return {};'
}
},
server_assets: ${s(files)}
}
mime_types: ${s(mime_types)},
client: ${uneval(build_data.client)},

nodes: [
${(node_paths).map(loader).join(',\n')}
],
remotes: {
${remotes.map((remote) => `'${remote.hash}': ${loader(join_relative(relative_path, `chunks/remote-${remote.hash}.js`))}`).join(',\n')}
},
routes: [
${routes.map(route => {
if (!route.page && !route.endpoint) return;

return dedent`
{
id: ${s(route.id)},
pattern: ${route.pattern},
params: ${s(route.params)},
page: ${route.page ? `{ layouts: ${get_nodes(route.page.layouts)}, errors: ${get_nodes(route.page.errors)}, leaf: ${reindexed.get(route.page.leaf)} }` : 'null'},
endpoint: ${route.endpoint ? loader(join_relative(relative_path, resolve_symlinks(build_data.server_manifest, route.endpoint.file, root).chunk.file)) : 'null'}
}
`;
}).filter(Boolean).join(',\n')}
],
prerendered_routes: new Set(${s(prerendered)}),
matchers: async () => {
${
uses_matchers && build_data.manifest_data.params
? dedent`
const { params } = await import('${join_relative(relative_path, '/entries/params.js')}');
return params;
`
: 'return {};'
}
},
server_assets: ${s(files)}
}
`;

Expand Down
6 changes: 3 additions & 3 deletions packages/kit/src/core/postbuild/analyse.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ async function analyse({
remotes: new Map()
};

const nodes = await Promise.all(manifest._.nodes.map((loader) => loader()));
const nodes = await Promise.all(manifest.nodes.map((loader) => loader()));

// analyse nodes
for (const node of nodes) {
Expand All @@ -88,7 +88,7 @@ async function analyse({
}

// analyse routes
for (const route of manifest._.routes) {
for (const route of manifest.routes) {
const page =
route.page &&
analyse_page(
Expand Down Expand Up @@ -147,7 +147,7 @@ async function analyse({

// analyse remotes
for (const remote of remotes) {
const loader = manifest._.remotes[remote.hash];
const loader = manifest.remotes[remote.hash];
const { default: functions } = await loader();

const exports = new Map();
Expand Down
2 changes: 1 addition & 1 deletion packages/kit/src/core/postbuild/prerender.js
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ async function prerender({
/** @type {Array<import('types').RemotePrerenderInternals>} */
const prerender_functions = [];

for (const loader of Object.values(manifest._.remotes)) {
for (const loader of Object.values(manifest.remotes)) {
const module = await loader();

for (const fn of Object.values(module.default)) {
Expand Down
5 changes: 2 additions & 3 deletions packages/kit/src/exports/public.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
RequestOptions,
RouteSegment
} from '../types/private.js';
import { SSRManifest, ValidatedConfig } from 'types';
import { ValidatedConfig } from 'types';
import { Plugin } from 'vite';
import { RouteId as AppRouteId, LayoutParams as AppLayoutParams } from '$app/types';
import { StandardSchemaV1 } from '@standard-schema/spec';
Expand Down Expand Up @@ -681,8 +681,7 @@ export interface RouteDefinition<Config = any> {
config: Config;
}

export class Server {
constructor(manifest: SSRManifest);
export interface Server {
init(options: ServerInitOptions): Promise<void>;
respond(request: Request, options: RequestOptions): Promise<Response>;
}
Expand Down
Loading
Loading