Skip to content

fix(types): add missing properties to SolidStartOptions and expose them via Vite plugin configuration - #2236

Merged
birkskyum merged 4 commits into
solidjs:mainfrom
TymonMarek:main
Jul 25, 2026
Merged

fix(types): add missing properties to SolidStartOptions and expose them via Vite plugin configuration#2236
birkskyum merged 4 commits into
solidjs:mainfrom
TymonMarek:main

Conversation

@TymonMarek

Copy link
Copy Markdown
Contributor

PR Checklist

Please check if your PR fulfills the following requirements:

What is the current behavior?

SolidStartOptions (exported from @solidjs/start/config) does not correctly expose all of the configuration properties actually accepted by the solidStart() Vite plugin.

Because appRoot cannot be set, consumers are also unable to move app.{jsx,tsx} out of the default ./src directory (e.g. to mirror a Next.js-style /app structure), and doing so causes a build-time failure.

What is the new behavior?

  • SolidStartOptions now correctly declares all configuration properties accepted by solidStart(), including appRoot and devOverlay.
  • appRoot can now be set by consumers to relocate app.{jsx,tsx} (and, by extension, routeDir and other paths relative to it) away from the default ./src.
  • Added JSDoc comments to the majority of SolidStartOptions properties, documenting their purpose, accepted values, and defaults along with a links to documentation when relevant.
  • The start configuration dictionary is now constrained to the SolidStartOptions interface using satisfies, causing type errors when one does not match the shape of the other, in hopes to prevent future issues like this one.

Expose the appRoot configuration option in the SolidStartOptions interface
to match the runtime implementation. Also add missing devOverlay and
experimental options that are supported by the plugin defaults.
Copilot AI review requested due to automatic review settings July 25, 2026 10:42
@changeset-bot

changeset-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 7a5f033

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

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

@netlify

netlify Bot commented Jul 25, 2026

Copy link
Copy Markdown

Deploy Preview for solid-start-landing-page ready!

Name Link
🔨 Latest commit e96fcfd
🔍 Latest deploy log https://app.netlify.com/projects/solid-start-landing-page/deploys/6a6494f70b56c00008bd4bd0
😎 Deploy Preview https://deploy-preview-2236--solid-start-landing-page.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@pkg-pr-new

pkg-pr-new Bot commented Jul 25, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@solidjs/start@2236

commit: e96fcfd

Added missing properties to `SolidStartOptions` and exposed them through Vite plugin configuration.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the public @solidjs/start/config TypeScript surface so SolidStartOptions accurately represents the options accepted by the solidStart() Vite plugin (notably appRoot), and adds inline JSDoc to improve discoverability and prevent future drift between defaults and types.

Changes:

  • Expand SolidStartOptions to include previously-missing options (e.g. appRoot, devOverlay, experimental) and add JSDoc describing purpose/defaults.
  • Constrain the internal default start config object with satisfies SolidStartOptions to keep defaults and the interface in sync.
  • Minor formatting change to this.error(...) calls in the boundary-modules resolver.
Comments suppressed due to low confidence (2)

packages/start/src/config/index.ts:53

  • devOverlay is required in SolidStartOptions, but solidStart() supplies a default (true). Making it required forces callers who only want to override a different option (e.g. appRoot) to also specify devOverlay, which is an unnecessary breaking change for the plugin config surface.
   * Show the SolidStart development overlay (error overlay, etc.) in development.
   *
   * @default true
   */
  devOverlay: boolean;

packages/start/src/config/index.ts:59

  • experimental is currently required in SolidStartOptions, which makes any options object require experimental: { islands: false } even though solidStart() provides a default. This is very awkward for consumers and turns partial configuration into a type error; make the experimental object optional (and the islands flag optional within it) so callers can omit it.
  /**
   * Experimental features.
   */
  experimental: {
    /**

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/start/src/config/index.ts

@birkskyum birkskyum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@birkskyum
birkskyum merged commit d9018d6 into solidjs:main Jul 25, 2026
10 checks passed
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.

[Bug?]: SolidStartOptions does not correctly expose all configuration options

3 participants