Skip to content

Extract autoconfig in its own standalone package#14295

Open
dario-piotrowicz wants to merge 2 commits into
mainfrom
dario/extract-autoconfig
Open

Extract autoconfig in its own standalone package#14295
dario-piotrowicz wants to merge 2 commits into
mainfrom
dario/extract-autoconfig

Conversation

@dario-piotrowicz

@dario-piotrowicz dario-piotrowicz commented Jun 14, 2026

Copy link
Copy Markdown
Member

This PR extracts the Wrangler autoconfig logic in its own package, Wrangler being a consumer of such package.

The package is for the time being private, when/if needed we can make it public and release it to npm so that it can be used externally as well.

From the Wrangler CLI perspective this PR does not introduce any user-facing change in autoconfig behavior.

In regards to the autoconfig programmatic API, that is no longer exported by Wrangler but it is importable from this new package instead.


  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:
  • Public documentation
    • Cloudflare docs PR(s):
    • Documentation not necessary because: the autoconfig programmatic API is not present in the docs

A picture of a cute animal (not mandatory, but encouraged)

@changeset-bot

changeset-bot Bot commented Jun 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ce61f9d

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

This PR includes changesets to release 8 packages
Name Type
wrangler Minor
@cloudflare/workers-utils Minor
@cloudflare/vite-plugin Patch
@cloudflare/vitest-pool-workers Patch
@cloudflare/autoconfig Patch
@cloudflare/cli-shared-helpers Patch
@cloudflare/deploy-helpers Patch
@cloudflare/workers-auth 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

@ask-bonk

ask-bonk Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

UnknownError: ProviderInitError

github run

@ask-bonk

ask-bonk Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

@dario-piotrowicz Bonk workflow failed. Check the logs for details.

View workflow run · To retry, trigger Bonk again.

@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

✅ All changesets look good

@dario-piotrowicz dario-piotrowicz force-pushed the dario/extract-autoconfig branch 7 times, most recently from 981aea6 to 517e184 Compare June 15, 2026 11:41
@pkg-pr-new

pkg-pr-new Bot commented Jun 15, 2026

Copy link
Copy Markdown
create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@14295

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@14295

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@14295

miniflare

npm i https://pkg.pr.new/miniflare@14295

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@14295

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@14295

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@14295

@cloudflare/vitest-pool-workers

npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@14295

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@14295

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@14295

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@14295

wrangler

npm i https://pkg.pr.new/wrangler@14295

commit: ce61f9d

@dario-piotrowicz dario-piotrowicz marked this pull request as ready for review June 15, 2026 12:38
@workers-devprod workers-devprod requested review from a team and edmundhung and removed request for a team June 15, 2026 12:39
@workers-devprod

workers-devprod commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Codeowners approval required for this PR:

  • @cloudflare/wrangler
Show detailed file reviewers
  • .changeset/move-worker-name-to-workers-utils.md: [@cloudflare/wrangler]
  • .changeset/workers-utils-package-manager.md: [@cloudflare/wrangler]
  • .changeset/wrangler-remove-experimental-autoconfig.md: [@cloudflare/wrangler]
  • packages/autoconfig/package.json: [@cloudflare/wrangler]
  • packages/autoconfig/scripts/deps.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/context.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/details/framework-detection.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/details/index.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/errors.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/all-frameworks.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/analog.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/angular.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/astro.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/framework-class.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/index.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/next.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/no-op.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/nuxt.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/qwik.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/react-router.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/solid-start.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/static.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/sveltekit.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/tanstack.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/utils/packages.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/utils/vite-config.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/utils/vite-plugin.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/vike.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/vite.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/frameworks/waku.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/index.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/run.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/types.ts: [@cloudflare/wrangler]
  • packages/autoconfig/src/uses-typescript.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/confirm-auto-config-details.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/display-auto-config-details.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/framework-detection/basic-framework-detection.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/framework-detection/lock-file-warning.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/framework-detection/multiple-frameworks-detected.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/framework-detection/package-manager-detection.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/framework-detection/pages-project-detection.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/framework-detection/workspace-root-handling.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/details/get-details-for-auto-config.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/angular.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/config-future-no-middleware.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/config-middleware-and-split.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/config-middleware-false.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/config-middleware-true.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/config-no-future.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/config-plain-object-middleware.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/fixtures/react-router/vite-config-basic.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/get-framework-class.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/is-framework-supported.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/is-known-framework.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/react-router.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/utils/vite-plugin.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/validate-framework-version.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/vike.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/frameworks/vite.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/get-installed-package-version.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/helpers/mock-context.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/run-summary.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tests/tsconfig.json: [@cloudflare/wrangler]
  • packages/autoconfig/tests/vite-config.test.ts: [@cloudflare/wrangler]
  • packages/autoconfig/tsconfig.json: [@cloudflare/wrangler]
  • packages/autoconfig/tsup.config.ts: [@cloudflare/wrangler]
  • packages/autoconfig/turbo.json: [@cloudflare/wrangler]
  • packages/autoconfig/vitest.config.mts: [@cloudflare/wrangler]
  • packages/vite-plugin-cloudflare/src/plugin-config.ts: [@cloudflare/wrangler]
  • packages/workers-utils/src/index.ts: [@cloudflare/wrangler]
  • packages/workers-utils/src/package-manager.ts: [@cloudflare/wrangler]
  • packages/workers-utils/src/worker-name.ts: [@cloudflare/wrangler]
  • packages/workers-utils/tests/worker-name.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/package.json: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/autoconfig/details/confirm-auto-config-details.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/autoconfig/details/display-auto-config-details.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/autoconfig/index.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/autoconfig/run.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/assets.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/bindings.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/build.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/config-args-merging.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/config-remote.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/core.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/deploy-interactive-prompts.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/durable-objects.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/entry-points.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/environments.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/formats.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/legacy-assets.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/open-next.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/queues.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/routes.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/secrets.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/workers-dev.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/deploy/workflows.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/setup.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/api/index.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/api/integrations/platform/index.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/autoconfig-context.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/autoconfig/errors.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/autoconfig/index.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/autoconfig/telemetry-utils.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/cli.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/deploy/autoconfig.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/deploy/open-next.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/output.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/package-manager.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/setup.ts: [@cloudflare/wrangler]
  • pnpm-lock.yaml: [@cloudflare/wrangler]

devin-ai-integration[bot]

This comment was marked as resolved.

@dario-piotrowicz dario-piotrowicz force-pushed the dario/extract-autoconfig branch from 517e184 to ebd6427 Compare June 15, 2026 14:49
devin-ai-integration[bot]

This comment was marked as resolved.

@dario-piotrowicz dario-piotrowicz force-pushed the dario/extract-autoconfig branch from ebd6427 to 585fb0f Compare June 15, 2026 16:40
devin-ai-integration[bot]

This comment was marked as resolved.

@dario-piotrowicz dario-piotrowicz force-pushed the dario/extract-autoconfig branch 2 times, most recently from 7548da1 to 66056e2 Compare June 16, 2026 09:50
@dario-piotrowicz dario-piotrowicz force-pushed the dario/extract-autoconfig branch from c8373b2 to 2108672 Compare June 16, 2026 11:00
@dario-piotrowicz dario-piotrowicz force-pushed the dario/extract-autoconfig branch from 2108672 to ce61f9d Compare June 16, 2026 11:56
import * as fs from "node:fs";
import * as path from "node:path";
import { parseStaticRouting } from "@cloudflare/workers-shared/utils/configuration/parseStaticRouting";
import { getWorkerNameFromProject } from "@cloudflare/workers-utils";

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has the nice effect to reducing the vite-plugin's dependency to wrangler 🙂

{
"name": "@cloudflare/autoconfig",
"version": "0.1.0",
"private": true,

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could just make this public... but I figured we might start with it being private and only start publishing it to npm once it's actually needed

I don't have a super strong preference

In any case I wanted to point out that I am removing the Wrangler autoconfig programmatic API in this PR, so having this package private basically means that that API will effectively no longer be accessible by users... I feel like this is not a big deal as I don't imagine anyone relying on that API right now, but if that's a concern we might just want to make the package public

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

2 participants