Skip to content
Merged

Devinxi #1942

Show file tree
Hide file tree
Changes from 111 commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
c96b8fd
start devinxi
Brendonovich May 5, 2025
570b47d
more stuff
Brendonovich Jun 5, 2025
594a1b2
departing from some vinxi patterns but wayyy more progress
Brendonovich Jun 28, 2025
7293f86
devinxi todomvc
Brendonovich Jun 29, 2025
e2b94cf
moar
Brendonovich Jul 2, 2025
e3bcf8f
add tree shaking for fs router partial imports
Brendonovich Aug 16, 2025
5f0da11
Merge branch 'main' into devinxi
Brendonovich Aug 16, 2025
8bb141a
rename start-vite to start and start to start-vinxi
Brendonovich Aug 16, 2025
3cf86c5
lockfile
Brendonovich Aug 16, 2025
ee6c4dd
fix ts
Brendonovich Aug 16, 2025
4347faa
devinxi version
Brendonovich Aug 16, 2025
eb256ec
more config
Brendonovich Aug 16, 2025
33addd5
root export
Brendonovich Aug 16, 2025
8e6a2fb
fix api endpoints
Brendonovich Aug 16, 2025
0e7ea67
fix types
Brendonovich Aug 16, 2025
2125663
fix imports
Brendonovich Aug 16, 2025
ed0d64d
export types and set api handler params
Brendonovich Aug 16, 2025
4d89def
fix build
Brendonovich Aug 16, 2025
b2be5e9
give base path to vite in prod
Brendonovich Aug 16, 2025
3c748c8
customisable nitro config
Brendonovich Aug 16, 2025
a0ccd1f
bring back mount + remove vite-rewrite
Brendonovich Aug 16, 2025
7b8782c
HttpStatusCode + prerender
Brendonovich Aug 16, 2025
38ac1c8
facepalm
Brendonovich Aug 16, 2025
998ab81
don't double-copy public dir
Brendonovich Aug 16, 2025
539be23
add kinda broken streaming ssr
Brendonovich Aug 16, 2025
32bf615
server-correct implementation of sync, async and stream
Brendonovich Aug 17, 2025
ceac5ae
get spa mode working (#1944)
brenelz Aug 17, 2025
89b6d04
cleanup
Brendonovich Aug 17, 2025
b90d979
don't bundle dev overlay in prod
Brendonovich Aug 17, 2025
6109593
single flight mutations
Brendonovich Aug 17, 2025
b2bea15
update server fns plugin
Brendonovich Aug 17, 2025
cef0ec8
make asset manifest naming a bit clearer
Brendonovich Aug 17, 2025
4afe460
wrap dev server handle in h3 app and fix server functions
Brendonovich Aug 17, 2025
57e3724
new manifest implementation
Brendonovich Aug 19, 2025
f856b70
add fswatcher (#1945)
brenelz Aug 19, 2025
b020132
fix fs routes
Brendonovich Aug 19, 2025
f00c09a
fix mode async and stream (#1949)
brenelz Aug 23, 2025
c9adf13
move examples over (#1947)
brenelz Aug 23, 2025
9bdb7c8
Server function meta (#1951)
brenelz Aug 23, 2025
fb192f6
cleanup
Brendonovich Aug 23, 2025
7351586
solidbase
Brendonovich Aug 23, 2025
6ce299c
Devinxi middleware (#1952)
brenelz Aug 23, 2025
a7fe0ae
bring back style collection
Brendonovich Aug 23, 2025
575a19e
special case handling of prerendering
Brendonovich Aug 24, 2025
a130e68
leave prerendering fix for after devinxi
Brendonovich Aug 24, 2025
a930638
client build entrypoints
Brendonovich Aug 24, 2025
1afe9eb
generate client manifest data properly
Brendonovich Aug 24, 2025
0808f8d
move client entry to env
Brendonovich Aug 24, 2025
455a06b
use getAssets in non-spa page event
Brendonovich Aug 24, 2025
facc538
:facepalm:
Brendonovich Aug 24, 2025
eda4a1b
cleanup virtual modules and manifests
Brendonovich Aug 24, 2025
405baee
use TanStackServerFnPluginEnv
Brendonovich Aug 24, 2025
9484442
return Response instead of sendWebResponse
Brendonovich Aug 24, 2025
f3ba304
Response.json
Brendonovich Aug 24, 2025
048658b
ignore node_modules files during style collection
Brendonovich Aug 24, 2025
de05c40
fix: server render assets imported in app entry
katywings Aug 26, 2025
9ecf50b
build: add dev script in start package
katywings Aug 26, 2025
aed4aa0
fix: dynamically assign port in experiments index route
katywings Aug 26, 2025
ef27bca
fix: provide requestEvent in middleware
katywings Aug 29, 2025
9b8fa63
get tests passing (#1955)
brenelz Aug 30, 2025
b93d408
add server base url (#1956)
brenelz Aug 30, 2025
8e89301
Merge branch 'main' into devinxi
katywings Aug 30, 2025
8a75755
test: mock h3 instead of vinxi http in fetchEvent spec
katywings Aug 30, 2025
3db3c9b
test: remove vinxi types in tests package
katywings Aug 30, 2025
f1cbb0c
test: update buildDir in treeshaking test
katywings Aug 30, 2025
0bfb84f
chore: export proper client types in package.json
katywings Aug 31, 2025
25d0180
update to use NodeNext moduleResolution (#1959)
brenelz Sep 2, 2025
9674a6e
use 'ssr' for server environment
Brendonovich Sep 7, 2025
d72927f
workaround type errors
Brendonovich Sep 7, 2025
1f3a606
fix: replace obsolete vite env references with VITE_ENVIRONMENTS cons…
katywings Sep 11, 2025
a656472
Merge branch 'main' into devinxi
katywings Sep 23, 2025
0e40b8a
build: bump solid-js vite-plugin-solid better-sqlite3
katywings Oct 2, 2025
fc9465a
fix: import pkg in DevOverlayDialog with json type
katywings Oct 2, 2025
3c43853
move http utils to /http
Brendonovich Oct 4, 2025
c37e94f
Merge branch 'main' into devinxi
katywings Oct 8, 2025
ba90d19
chore: remove redundant pnpm-lock files in fixtures
katywings Oct 8, 2025
c2f9db9
chore: remove unneeded test9 route from todomvc fixture
katywings Oct 8, 2025
8572bf6
move `packages/tests/vite.config.ts` to `apps/test/vite.config.ts`
atilafassina Oct 8, 2025
07d165b
add `vite serve` tasks
atilafassina Oct 8, 2025
81f42fd
skip optimizing fsevents and lightningcss
atilafassina Oct 8, 2025
c4aa6fa
Devinxi workspace import (#1988)
Brendonovich Oct 11, 2025
98a6657
Merge branch 'main' into devinxi
Brendonovich Oct 11, 2025
89936b2
fix treeshake test
Brendonovich Oct 11, 2025
e581c3b
don't specify extensions on server fn imports
Brendonovich Oct 11, 2025
4bff400
remove start-vinxi
Brendonovich Oct 12, 2025
b54198d
use environment config in nitro
Brendonovich Oct 12, 2025
23df1f3
de-nitro + h3 v2
Brendonovich Oct 12, 2025
98f53a5
build and cr all packages
Brendonovich Oct 12, 2025
6347bff
lockfile
Brendonovich Oct 12, 2025
799e58d
only cr start for now
Brendonovich Oct 12, 2025
607af4c
fix unit tests
Brendonovich Oct 12, 2025
f4cd7ee
move constants to config
Brendonovich Oct 12, 2025
4bcc3f0
fix cr
Brendonovich Oct 12, 2025
85b51fe
don't use extension for dynamic imports
Brendonovich Oct 12, 2025
2a09d94
ignore dynamic imports
Brendonovich Oct 12, 2025
5cc2e9f
use h3 2.0 beta
Brendonovich Oct 18, 2025
a15c28e
use h3-v1 import
Brendonovich Oct 18, 2025
4d768e7
lockfile
Brendonovich Oct 18, 2025
42c00b0
fix imports
Brendonovich Oct 18, 2025
d54a6b5
proper nitro v3 support
Brendonovich Oct 25, 2025
6a92402
fix route hmr
Brendonovich Oct 25, 2025
f861513
fix build
Brendonovich Oct 26, 2025
ecb8be6
fix ssr style collection
Brendonovich Oct 26, 2025
a32f996
handle redirects properly and return stream directly in dev
Brendonovich Oct 26, 2025
b874152
bring back dev overlay styles
Brendonovich Oct 26, 2025
781a788
copy css during build
Brendonovich Oct 27, 2025
691281a
lockfile
Brendonovich Oct 28, 2025
fadf073
fix: provide proper client manifest to lazyRoute in createRoute
katywings Oct 29, 2025
78fcb9f
refactor: remove unused imports in collect-styles
katywings Oct 29, 2025
91e5c10
fix: bring back ssr module deps in findModuleDependencies
katywings Oct 29, 2025
b3617b6
specifically detec solid start dev server
Brendonovich Oct 30, 2025
f01c1a1
copy public dir in client build
Brendonovich Oct 31, 2025
1a00774
fix: include js preload links in prod ssr manifest
katywings Oct 31, 2025
55cb6c5
add type for USING_SOLID_START_DEV_SERVER
Brendonovich Nov 1, 2025
a22011c
simplify style collection + allow collecting top-level node_modules css
Brendonovich Nov 1, 2025
2709c3e
silent fail style collection
Brendonovich Nov 1, 2025
f208bd6
simplify css collection + fix hydration error
Brendonovich Nov 1, 2025
5ed5efc
fix: prepend missing slash in asset tag href
katywings Nov 4, 2025
7f4c411
fix: skip entry imports in non-entry findAssetsInViteManifest
katywings Nov 4, 2025
f594c2f
fix: use client manifest in prod createPageEvent
katywings Nov 4, 2025
d96c5b8
fix: simplify style collection further and properly handle dynamic im…
katywings Nov 4, 2025
81ef414
Merge branch 'main' into devinxi
atilafassina Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .github/workflows/cr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@ jobs:
run: pnpm install --frozen-lockfile

- name: Build start
run: pnpm run packages:build
run: |
pnpm run build
# rewrite .ts exports to .js
pnpm --filter='./packages/*' -c exec "echo \$(cat package.json | jq '.exports = .publishConfig.exports') > package.json"
- name: Release
run: pnpm dlx [email protected] publish './packages/start' --template './examples/*' --compact
run: |
pnpm dlx [email protected] publish './packages/start' --template './examples/*' --compact
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,6 @@ vite.config.ts.timestamp*

# ignore cypress screenshots
**/cypress/screenshots

.data
tsconfig.tsbuildinfo
3 changes: 0 additions & 3 deletions apps/fixtures/bare/app.config.ts

This file was deleted.

11 changes: 5 additions & 6 deletions apps/fixtures/bare/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@
"name": "fixture-bare",
"type": "module",
"scripts": {
"dev": "vinxi dev",
"build": "vinxi build",
"start": "vinxi start"
"dev": "vite dev",
"build": "vite build"
},
"dependencies": {
"@solidjs/start": "^1.1.0",
"solid-js": "^1.9.5",
"vinxi": "^0.5.7"
"@solidjs/start": "workspace:*",
"solid-js": "^1.9.9",
"vite": "7.1.10"
},
"engines": {
"node": ">=22"
Expand Down
1 change: 0 additions & 1 deletion apps/fixtures/bare/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"allowJs": true,
"strict": true,
"noEmit": true,
"types": ["vinxi/types/client"],
"isolatedModules": true,
"paths": {
"~/*": ["./src/*"]
Expand Down
7 changes: 7 additions & 0 deletions apps/fixtures/bare/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineConfig } from "vite";
import { solidStart } from "../../../packages/start/src/config";
import { nitroV2Plugin } from "../../../packages/start-nitro-v2-vite-plugin/src";

export default defineConfig({
plugins: [solidStart(), nitroV2Plugin()],
});
3 changes: 0 additions & 3 deletions apps/fixtures/basic/app.config.ts

This file was deleted.

12 changes: 5 additions & 7 deletions apps/fixtures/basic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,15 @@
"name": "fixture-basic",
"type": "module",
"scripts": {
"dev": "vinxi dev",
"build": "vinxi build",
"start": "vinxi start",
"version": "vinxi version"
"dev": "vite dev",
"build": "vite build"
},
"dependencies": {
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.1.0",
"solid-js": "^1.9.5",
"vinxi": "^0.5.7"
"@solidjs/start": "workspace:*",
"solid-js": "^1.9.9",
"vite": "7.1.10"
},
"engines": {
"node": ">=22"
Expand Down
1 change: 0 additions & 1 deletion apps/fixtures/basic/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"allowJs": true,
"strict": true,
"noEmit": true,
"types": ["vinxi/types/client"],
"isolatedModules": true,
"paths": {
"~/*": ["./src/*"]
Expand Down
7 changes: 7 additions & 0 deletions apps/fixtures/basic/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineConfig } from "vite";
import { solidStart } from "../../../packages/start/src/config";
import { nitroV2Plugin } from "../../../packages/start-nitro-v2-vite-plugin/src";

export default defineConfig({
plugins: [solidStart(), nitroV2Plugin()],
});
5 changes: 0 additions & 5 deletions apps/fixtures/experiments/app.config.ts

This file was deleted.

11 changes: 5 additions & 6 deletions apps/fixtures/experiments/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@
"name": "fixture-experiments",
"type": "module",
"scripts": {
"dev": "vinxi dev",
"build": "vinxi build",
"start": "vinxi start"
"dev": "vite dev",
"build": "vite build"
},
"dependencies": {
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.1.0",
"solid-js": "^1.9.5",
"vinxi": "^0.5.7"
"@solidjs/start": "workspace:*",
"solid-js": "^1.9.9",
"vite": "7.1.10"
},
"engines": {
"node": ">=22"
Expand Down
27 changes: 16 additions & 11 deletions apps/fixtures/experiments/src/middleware.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
import { getRequestURL } from "@solidjs/start/http";
import { createMiddleware } from "@solidjs/start/middleware";

export default createMiddleware({
onRequest: [
event => {
event.locals.foo = "bar";
console.log("REQUEST", event.request.url);
}
],
onBeforeResponse: [
(event, { body }) => {
console.log("BEFORE RESPONSE", body);
}
]
onRequest: [
(event) => {
event.locals.foo = "bar";
console.log("REQUEST", event.request.url);
console.log(
"SEARCH PARAM KEYS FROM ASYNC CONTEXT",
Array.from(getRequestURL().searchParams.keys()),
);
},
],
onBeforeResponse: [
(event, { body }) => {
console.log("BEFORE RESPONSE", body);
},
],
});
5 changes: 3 additions & 2 deletions apps/fixtures/experiments/src/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Title } from "@solidjs/meta";
import { json } from "@solidjs/router";
import { clientOnly, GET } from "@solidjs/start";
import { getServerFunctionMeta } from "@solidjs/start/server";
import { getRequestEvent } from "solid-js/web";
import { getRequestEvent, isServer } from "solid-js/web";
import Counter from "~/components/Counter";
const BreaksOnServer = clientOnly(() => import("~/components/BreaksOnServer"));

Expand All @@ -22,7 +22,8 @@ export default function Home() {
console.log(v);
console.log(await v.hello);
});
fetch(`http://localhost:3000/${import.meta.env.SERVER_BASE_URL}/unknown`, {
const port = isServer ? new URL(getRequestEvent()!.request.url).port: location.port;
fetch(`http://localhost:${port}/${import.meta.env.SERVER_BASE_URL}/unknown`, {
headers: { Accept: "application/json" }
}).then(async res => console.log(await res.json()));
return (
Expand Down
1 change: 0 additions & 1 deletion apps/fixtures/experiments/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"allowJs": true,
"strict": true,
"noEmit": true,
"types": ["vinxi/types/client"],
"isolatedModules": true,
"paths": {
"~/*": ["./src/*"]
Expand Down
7 changes: 7 additions & 0 deletions apps/fixtures/experiments/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineConfig } from "vite";
import { solidStart } from "../../../packages/start/src/config";
import { nitroV2Plugin } from '../../../packages/start-nitro-v2-vite-plugin/src'

export default defineConfig({
plugins: [solidStart({ middleware: "./src/middleware.ts" }), nitroV2Plugin()],
});
3 changes: 0 additions & 3 deletions apps/fixtures/hackernews/app.config.ts

This file was deleted.

12 changes: 6 additions & 6 deletions apps/fixtures/hackernews/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"name": "fixture-hackernews",
"type": "module",
"scripts": {
"dev": "vinxi dev",
"build": "vinxi build",
"start": "vinxi start"
"dev": "vite dev",
"build": "vite build"
},
"dependencies": {
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.1.0",
"solid-js": "^1.9.5",
"vinxi": "^0.5.7"
"@solidjs/start": "workspace:*",
"nitro": "3.0.1-alpha.0",
"solid-js": "^1.9.9",
"vite": "7.1.10"
},
"engines": {
"node": ">=22"
Expand Down
2 changes: 1 addition & 1 deletion apps/fixtures/hackernews/src/entry-client.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// @refresh reload
import { mount, StartClient } from "@solidjs/start/client";
import { StartClient, mount } from "@solidjs/start/client";

mount(() => <StartClient />, document.getElementById("app")!);

Expand Down
1 change: 0 additions & 1 deletion apps/fixtures/hackernews/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"allowJs": true,
"strict": true,
"noEmit": true,
"types": ["vinxi/types/client"],
"isolatedModules": true,
"paths": {
"~/*": ["./src/*"]
Expand Down
8 changes: 8 additions & 0 deletions apps/fixtures/hackernews/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { defineConfig } from "vite";

import { solidStart } from "../../../packages/start/src/config";
import { nitroV2Plugin } from "../../../packages/start-nitro-v2-vite-plugin/src";

export default defineConfig({
plugins: [solidStart()],
});
3 changes: 0 additions & 3 deletions apps/fixtures/notes/app.config.ts

This file was deleted.

11 changes: 5 additions & 6 deletions apps/fixtures/notes/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@
"name": "fixture-notes",
"type": "module",
"scripts": {
"dev": "vinxi dev",
"build": "vinxi build",
"start": "vinxi start"
"dev": "vite dev",
"build": "vite build"
},
"dependencies": {
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.1.0",
"@solidjs/start": "workspace:*",
"date-fns": "^3.6.0",
"solid-js": "^1.9.5",
"marked": "^12.0.1",
"solid-js": "^1.9.9",
"unstorage": "1.10.2",
"vinxi": "^0.5.7"
"vite": "7.1.10"
},
"engines": {
"node": ">=22"
Expand Down
1 change: 0 additions & 1 deletion apps/fixtures/notes/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"allowJs": true,
"strict": true,
"noEmit": true,
"types": ["vinxi/types/client"],
"isolatedModules": true,
"paths": {
"~/*": ["./src/*"]
Expand Down
7 changes: 7 additions & 0 deletions apps/fixtures/notes/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineConfig } from "vite";
import { solidStart } from "../../../packages/start/src/config";
import { nitroV2Plugin } from "../../../packages/start-nitro-v2-vite-plugin/src";

export default defineConfig({
plugins: [solidStart(), nitroV2Plugin()]
});
11 changes: 0 additions & 11 deletions apps/fixtures/package.json

This file was deleted.

Loading
Loading