Skip to content

Record client-reachable server function ids in the persisted manifest - #345

Merged
ryansolid merged 1 commit into
nextfrom
server-function-manifest-ids
Sep 5, 2026
Merged

Record client-reachable server function ids in the persisted manifest#345
ryansolid merged 1 commit into
nextfrom
server-function-manifest-ids

Conversation

@ryansolid

Copy link
Copy Markdown
Member

The persisted manifest at dist/client/.vite/solid-server-functions.json grows from a module list to { modules: string[], functions: Array<{ id, name, module }> } — every server function the client compile emitted a reference to, by wire id.

Build tooling that needs the client-reachable set reads it from here instead of re-deriving it from compiled output. The consumer this was built for is @solidjs/prerender's static-mode guard: after a prerender crawl, any id in functions that no prerendered() call captured is a call a static deployment cannot answer, and the build fails naming it.

  • Ids are recorded per module at client transform time and replaced on re-transform, so a renamed function does not linger as reachable.
  • The legacy array shape is still accepted when read.
  • Type exported as PersistedServerFunctionManifest.

Changeset included (patch).

Made with Cursor

dist/client/.vite/solid-server-functions.json grows from a module list to
{ modules, functions: [{ id, name, module }] }: every server function the
client compile emitted a reference to, by wire id. Build tooling that needs
the client-reachable set — a static-site prerenderer verifying each
reachable function was captured — reads it here instead of re-deriving it
from compiled output. The legacy array shape is still accepted on read;
the type is exported as PersistedServerFunctionManifest.

Co-authored-by: Cursor <cursoragent@cursor.com>
@changeset-bot

changeset-bot Bot commented Sep 5, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9fbbef6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@solidjs/vite-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Sep 5, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@solidjs/vite-plugin@345

commit: 9fbbef6

@ryansolid
ryansolid merged commit eb67ed9 into next Sep 5, 2026
6 checks passed
@ryansolid
ryansolid deleted the server-function-manifest-ids branch September 5, 2026 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant