TypeScript90.4%
CSS8%
JavaScript1.6%

Commit activity

Last 12 weeks · 55 commits

Full graph →

Community health

6 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct✓Issue Template✓PR Template

Recent PRs & issues

Active · 2 in progress · Last activity 1d ago
See all on GitHub →
dennev

PR Checklist Please check if your PR fulfills the following requirements: [x] Addresses an existing open issue: fixes #2356 [x] Tests for the changes have been added (for bug fixes / features) What is the current behavior? creates its filter when the plugin is created, with relative default patterns and no option, so they are resolved against . The plugin names each module relative to as well. On Windows a working directory entered through a junction or symlink keeps that path, while Vite resolves every module id, and since 8.2 also , to the real path. Then: the filter matches no module, so no function is compiled: its body ends up in the client bundle, and a build whose server functions import fails with ; the of a lazily loaded route component matches no client manifest key, so its CSS is missing from the server-rendered HTML. #2356 has the steps. What is the new behavior? The filter is created in , with as the base for relative patterns. derives from the way Vite derives its manifest keys (), and the dev style lookup resolves that id against the root instead of . Since Vite 8.2 resolves the root like every module id (to the real path; with , since 8.2.2 the root keeps the link path as the ids do), this works when the working directory is a junction or symlink to the project; when it is the root itself, nothing changes. Relative patterns passed through the option now resolve against the root too. The tests make differ from Vite's root, which is what a junction gives on Windows, so they run on any OS: (new): a module under the root's is compiled, one outside it is left alone, and a relative custom resolves against the root. : is relative to the root (without the change it is ); the existing cases pass the root through the plugin context. (new): the dev style lookup finds the styles of a root-relative id. Without the change, four of the five new tests fail (the guard for a module outside passes either way), and the 266 existing tests pass. A changeset is included. Other information Checked on Windows (Node 26.10.0, Vite 8.3.4) with the basic template and the route from #2356, plus a route whose server function imports nothing. With 2.0.6, the build through a junction fails, whether the junction is on the project's drive or on another; without the server-only import it builds, but that function's body is in the client bundle. With this branch packed and installed, both junction builds pass, the client chunks hold server references instead of function bodies, and the server-rendered index page links the same stylesheets as a build from the real path. Not covered here: also takes as its root (app entry, alias, file routers), and relative patterns are resolved against it as well. Through a junction, the alias treats every app module as another package's, so in a page that imports does not finish rendering (the template's index page: the request was still open after 20 s; with a relative import it renders). The file routers match the real paths in Vite's watcher events against a glob built on the link path, so route changes are probably missed in dev (from reading the code, not tried). The template still builds only because Rolldown applies its tsconfig to ; without that mapping the build fails as well. runs before Vite resolves its root, so moving these to the root means restructuring it; I left that for a separate change. With Vite before 8.2 the root keeps the link path while module ids do not, so the filter part of this change does not help there (this repository's lockfile still resolves Vite 8.1.5); the ids follow Vite's own key formula either way.

dennev · 1h ago
dennev

Duplicates [x] I have searched the existing issues Latest version [x] I have tested the latest version Current behavior 😯 On Windows, when the working directory reaches the project through a directory junction or a symbolic link, no function is compiled. A build whose server functions import server-only code such as fails: Without such an import the build succeeds, but the body of the server function is in the client bundle. The same project builds correctly when the working directory is its real path. The server functions plugin creates its filter with and no option, so the relative patterns are resolved against . On Windows the working directory keeps the path it was entered through, while Vite resolves every module id, and since 8.2 also , to the real path. The filter then matches no module. Linux and macOS report the real path from , so they are not affected. The plugin derives from in the same way. Once the filter matches, a build through a junction succeeds, but the ids of lazily loaded route components match no client manifest key, so their CSS is missing from the server-rendered HTML (in the basic template, the index route's CSS). Expected behavior 🤔 Building the project through a junction compiles its server functions and puts the route CSS in the server-rendered HTML, as a build through its real path does. Steps to reproduce 🕹 Steps (Windows, ): 1. , then and . 2. Add : 3. succeeds. 4. Create a junction to the project and build through it: , then and . The build fails with the error above. The junction is on the same drive as the project, so this is not Vite's known problem with links across drives; a junction to another drive fails the same way. A pull request follows that fixes the filter and , with tests that reproduce both on any OS by making differ from Vite's root. Context 🔦 I open my checkouts through a junction from another drive, and the error suggests a mistake in the application code rather than a path problem, so the cause was hard to find. Your environment 🌎

dennev · 1d ago
drdxk

Duplicates [x] I have searched the existing issues Latest version [x] I have tested the latest version Current behavior 😯 npm run dev causes HMR error for notes template Expected behavior 🤔 no error Steps to reproduce 🕹 Steps: 1. npm init solid@latest 2. select TypeScript, notes 3. npm i 3. npm run dev, open browser 4. modify src/routes/(home).tsx, e.g. add extra "!" 5. observe browser state Context 🔦 _No response_ Your environment 🌎

drdxk · 4d ago
brenelz

Bumps and in from ^1.6.8 to ^1.6.11 and adds a patch changeset. 1.6.11 was published today, so pnpm's minimum release age would block the install. The entries for seroval 1.6.0 are replaced with 1.6.11, since 1.6.0 is no longer resolved anywhere. Verified with , , , and in (266 tests pass). 🤖 Generated with Claude Code

brenelz · 1d ago
alvechy

Duplicates [X] I have searched the existing issues Latest version [X] I have tested the latest version Summary 💡 Allow for semantic error handling with server actions. This is a continuation of https://github.com/solidjs/solid-router/discussions/365 discussion, but focused on server actions. The goal is to allow: return non- (, , etc) responses from server actions for observability platforms to monitor how many responses are not . handle such responses in code with reactive when using without the form. Proposal: use Response.ok to populate . If the action returns non- data, the action does not fail: Examples 🌈 In the app, users can scan a QR code, when valid code is scanned – is executed. If scanned code is invalid – error message is shown with Retry logic: Motivation 🔦 Right now, to return non-200 response from a server action, one needs to use custom : This, however, makes to be empty, because the response is a valid : https://github.com/solidjs/solid-router/blob/e773947b85ac78281816e86621a2cdb6735ae95a/src/data/action.ts#L149 Making the type from the action ambiguous: , which makes handling of the response complicated: So, another option is to make sure is populated, an error from the action. This works for , but the HTTP Response status is now 200, so one needs custom metrics to monitor how the API is performing. Doing is making action to fail itself (?). So , but all queries are revalidated (?) and empty.

alvechy · 2d ago
Structured data for AI agents

Repository: solidjs/solid-start. Description: SolidStart, the Solid app framework Stars: 5924, Forks: 426. Primary language: TypeScript. Languages: TypeScript (90.4%), CSS (8%), JavaScript (1.6%). License: MIT. Homepage: https://docs.solidjs.com/solid-start/v2/ Topics: file-system-routing, fine-grained-reactivity, meta-framework, sdk, signals, solid-js, solidjs, solidstart, spa, ssr. Latest release: @solidjs/start@1.4.0 (5d ago). Open PRs: 2, open issues: 4. Last activity: 1d ago. Community health: 87%. Top contributors: ryansolid, nksaraf, nsarafpure, birkskyum, lxsmnsyc, github-actions[bot], atilafassina, brenelz, ghalle, Brendonovich and others.