Skip to content

chore: remove polka from adapter-node - #16907

Merged
teemingc merged 4 commits into
version-3from
remove-polka
Aug 26, 2026
Merged

chore: remove polka from adapter-node#16907
teemingc merged 4 commits into
version-3from
remove-polka

Conversation

@Nic-Polumeyv

@Nic-Polumeyv Nic-Polumeyv commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

closes #16140

adapter-node uses polka for a single .use(handler) call. The middleware chain polka would manage is already hand-rolled in src/handler.js (sequence), and src/index.js pre-creates the http.Server to work around polka's lazy server creation, so at runtime polka only attaches one listener and forwards listen(). The dependency has also been pinned to a prerelease (1.0.0-next.28) for years.

This attaches handler to the request event directly and drops the dependency. The server export of the built entry is now the http.Server itself rather than the polka instance. Also deletes smoke.spec_disabled.js, which imported polka along with a create_kit_middleware that no longer exists.

@pkg-svelte-dev

pkg-svelte-dev Bot commented Aug 22, 2026

Copy link
Copy Markdown

Install the latest version of @sveltejs/kit from b0a2627:

pnpm add https://pkg.svelte.dev/@sveltejs/kit/c/b0a2627d546b3a2d76f586f9ec330118d90bf42b

Open in pkg.svelte.dev: https://pkg.svelte.dev/repos/kit/pr/16907

@changeset-bot

changeset-bot Bot commented Aug 22, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b0a2627

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

This PR includes changesets to release 1 package
Name Type
@sveltejs/adapter-node 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

@svelte-docs-bot

Copy link
Copy Markdown

Comment thread packages/adapter-node/src/handler.js Outdated
@elliott-with-the-longest-name-on-github

Copy link
Copy Markdown
Contributor

Added some minor changes to fix a really really small edge case about the order in which listeners apply now that Polka isn't using setImmediate, but looks good otherwise. It's worth noting that the server export is now missing a bunch of properties that polka used to attach to it, but I don't think server is actually documented as public API / don't think it has public types, so it's fine. This'll also release as a major change anyway since it's all coming out with SvelteKit 3.

@teemingc
teemingc merged commit 1b311ee into version-3 Aug 26, 2026
40 checks passed
@teemingc
teemingc deleted the remove-polka branch August 26, 2026 06:31
Rich-Harris pushed a commit that referenced this pull request Aug 26, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to version-3, this PR
will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

`version-3` is currently in **pre mode** so this branch has prereleases
rather than normal releases. If you want to exit prereleases, run
`changeset pre exit` on `version-3`.

⚠️⚠️⚠️⚠️⚠️⚠️

# Releases
## @sveltejs/adapter-bun@1.0.0-next.2

### Major Changes

- breaking: require Bun 1.4, which routes `HEAD` to `GET` handlers and
settles `stop()` after a force close
([#16880](#16880))

### Patch Changes

- fix: build apps that use server instrumentation
([#16898](#16898))
- Updated dependencies
[[`ff8cdd4`](ff8cdd4),
[`723572c`](723572c),
[`3b8e034`](3b8e034),
[`f2c5102`](f2c5102),
[`c66a6ed`](c66a6ed),
[`428e5ef`](428e5ef)]:
  - @sveltejs/kit@3.0.0-next.26
## @sveltejs/adapter-node@6.0.0-next.11

### Patch Changes

- chore: remove polka, attach the handler to the http server directly
([#16907](#16907))
- Updated dependencies
[[`ff8cdd4`](ff8cdd4),
[`723572c`](723572c),
[`3b8e034`](3b8e034),
[`f2c5102`](f2c5102),
[`c66a6ed`](c66a6ed),
[`428e5ef`](428e5ef)]:
  - @sveltejs/kit@3.0.0-next.26
## @sveltejs/kit@3.0.0-next.26

### Patch Changes

- fix: only require the `svelte-trusted-html` trusted-types policy when
client-side code is shipped, allowing builds where all pages have `csr:
false` ([#16928](#16928))

- chore: stop externalizing `cookie` dependency during build
([#16936](#16936))

- fix: preserve metadata on streamed page responses
([#16935](#16935))

- fix: error on server-only imports reachable from hooks or service
worker files outside the project root
([#16912](#16912))

- fix: copy worker files emitted by the server build to the client
output directory ([#16929](#16929))

- fix: Reject all pending query promises when a query fails before
resolving with a value for the first time
([#16890](#16890))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace Polka in adapter-node with a maintained web server

3 participants