Skip to content

feat: add option to recursively consider server dirs in $lib - #12733

Closed
rChaoz wants to merge 3 commits into
sveltejs:mainfrom
rChaoz:server-dir-option
Closed

feat: add option to recursively consider server dirs in $lib#12733
rChaoz wants to merge 3 commits into
sveltejs:mainfrom
rChaoz:server-dir-option

Conversation

@rChaoz

@rChaoz rChaoz commented Sep 28, 2024

Copy link
Copy Markdown
Contributor

Closes #12732

This PR adds a new config option kit.files.nestedServerDirs that, when enabled, considers any modules inside any $lib/**/server/** directory a server module, rather than just $lib/server/**.


Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

@changeset-bot

changeset-bot Bot commented Sep 28, 2024

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9746640

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

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Minor

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

@rChaoz rChaoz changed the title Add option to recursively consider server dirs in $lib feat: add option to recursively consider server dirs in $lib Sep 28, 2024
@teemingc

teemingc commented Oct 6, 2024

Copy link
Copy Markdown
Member

Instead of adding an option, can we instead make this the default? Would that be considered a breaking change?

@teemingc teemingc added the feature / enhancement New feature or request label Oct 6, 2024
@paoloricciuti

Copy link
Copy Markdown
Member

Instead of adding an option, can we instead make this the default? Would that be considered a breaking change?

Yes because if for some reason I'm importing a module on the client from /server/nested/module.ts it will fail with this

@teemingc teemingc added needs-decision Not sure if we want to do this yet, also design work needed breaking change and removed needs-decision Not sure if we want to do this yet, also design work needed breaking change labels Oct 11, 2024
@dummdidumm

Copy link
Copy Markdown
Member

Related #12480

@rChaoz

rChaoz commented Jan 15, 2025

Copy link
Copy Markdown
Contributor Author

Should I bring this up-to-date? Or maybe can this be considered to become the default in v3?

@Rich-Harris Rich-Harris added this to the 3.0 milestone Aug 18, 2025
@Rich-Harris

Copy link
Copy Markdown
Member

I think it would make sense for this to be the default in v3 — it's probably not worth adding a new option in the meantime, and since this PR has a lot of merge conflicts I'll go ahead and close it. I've given #12732 a 3.0 milestone to ensure it doesn't get left out. Thanks!

@rChaoz
rChaoz deleted the server-dir-option branch August 18, 2025 21:20
@benmccann

Copy link
Copy Markdown
Member

@rChaoz if you're still interested in adding this and would like to send a new PR for this, we've started a version-3 branch where we've merged a number of breaking changes that we'll release with SvelteKit 3

@rChaoz

rChaoz commented Feb 26, 2026

Copy link
Copy Markdown
Contributor Author

Sounds good, I can get around to it most likely next week.

@benmccann

Copy link
Copy Markdown
Member

cool! per rich's comment above it can probably be a bit simpler in the version-3 branch and just be on by default without any option

@rChaoz

rChaoz commented Apr 15, 2026

Copy link
Copy Markdown
Contributor Author

Sorry for the delay, the PR is ready here: #15685

Rich-Harris added a commit that referenced this pull request Jul 2, 2026
closes #12732

Instead of only considering `$lib/server/**` as server-only modules,
consider `$lib/**/server/**` instead, see issue above for reasoning.

As per the conversation in #12733, adding this as defaults for v3
(breaking change).

---

### Please don't delete this checklist! Before submitting the PR, please
make sure you do the following:
- [x] It's really useful if your PR references an issue where it is
discussed ahead of time. In many cases, features are absent for a
reason. For large changes, please create an RFC:
https://github.com/sveltejs/rfcs
- [x] This message body should clearly illustrate what problems it
solves.
- [x] Ideally, include a test that fails without this PR but passes with
it.

### Tests
- [x] Run the tests with `pnpm test` and lint the project with `pnpm
lint` and `pnpm check`

### Changesets
- [ ] If your PR makes a change that should be noted in one or more
packages' changelogs, generate a changeset by running `pnpm changeset`
and following the prompts. Changesets that add features should be
`minor` and those that fix bugs should be `patch`. Please prefix
changeset messages with `feat:`, `fix:`, or `chore:`.

### Edits

- [x] Please ensure that 'Allow edits from maintainers' is checked. PRs
without this option may be closed.

---------

Co-authored-by: Tee Ming <chewteeming01@gmail.com>
Co-authored-by: Elliott Johnson <hello@ell.iott.dev>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature / enhancement New feature or request needs-decision Not sure if we want to do this yet, also design work needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add option to consider lib/**/server/** as server files

6 participants