Releases: solidjs/solid-start
Release list
@solidjs/start@1.1.6
Patch Changes
- ca310ec: respondWith and node.res.end behaves correctly
@solidjs/start@1.1.5
@solidjs/start@1.1.4
Patch Changes
- #1888: Add back support for generators in server functions
@solidjs/start@1.1.3
@solidjs/start@1.1.2
v1.1.1 - Constantly Exported
Patch Changes
- efd762e: Bump tanstack server functions plugin
This fixesexport constin top-level"use server"files.
The bundler warning for top-level"use server"is still there, but still code-removal works.
v1.1.0 - Gear 5
At last our first post 1.0 minor release!!
It took us some time but it is an important one. It includes the update to Vite 6 along with tons of bug fixes around Server functions. But the most important thing is over this time we've doubled down to make sure that we have a proper team supporting this project. This includes setting up the people and infrastructure for SolidStart to work independently from the core project. So we are cranking stuff up to Gear 5 to improve our release cadence and overall responsiveness.
We've been working very closely with @tannerlinsley and the Tanstack Start team in ushering the future of Metaframeworks and I'd almost call it one shared team at this point. That's the direction things are heading. These are more than sister projects but part of a unified picture for the future. More details of that will be revealed as the is collaboration continues.
Huge thanks to the SolidStart team for making this all possible: @birkskyum, @atilafassina, @katywings, @brenelz. PRs from @christhornham, @AirBorne04, @edivados, @loetjvr. As well as continued support from core team members @lxsmnsyc and @nksaraf.
Enjoy!
@ryansolid
Minor Changes
- 4ec5d9b: - Added "OPTIONS" to the HTTP_METHODS array in packages/start/config/fs-router.js.
I made this change so developers can handle preflight OPTIONS requests when using SolidStart as a public facing REST API.
Existing users will not have to change their code. This change only adds an additional feature. - b434665: Vite 6 support
- 600c115: move the RequestEventLocals definition into the App namespace for easier end user retyping
Patch Changes
-
00c6d33: update vinxi to 0.5.3
-
df32b0d: Await internal
sendWebResponsecalls for middlewares that return responses. -
cda037b: Return
404when server-function is not found -
a97093f: Move
getServerFunctionMetafrom@solidjs/start/serverto@solidjs/startto fix circular import issues.The old export at
@solidjs/start/serverstill exists, but is deprecated and will be removed in a future release. -
5a166a4: Adopt tanstack server functions plugin
The Shape of Frameworks to Come
What can I say we made it! Over 3 years of effort here and we have a major release. When we started this journey we only vaguely had an outcome in mind. In the process we managed to yet again be a driving source for innovation in the ecosystem. I'm very proud of every single person involved in this release, from development to docs. As the title suggests. We(the community) are just getting started.
I would love to see a future where people build more opinionated frameworks on top of what we've done here. People carry the DX torch to the finish line. This will not be the last JS Framework, or even the last SolidJS framework. Change is inevitable. Be that change.
The full release announcement is here: https://www.solidjs.com/blog/solid-start-the-shape-frameworks-to-come
v1.0 RC - Clown Town
When we released SolidStart Beta it was a celebration of all the libraries and frameworks that inspired us. There have been so many other frameworks exploring this space alongside us. We have learned so much from them. A year and a half later, I'd like to think that in turn we've influenced them as well.
This release is dedicated to all those who have contributed to getting us here. Everyone who tested builds, reported issues, made PRs (even the ones we didn't merge). We wouldn't have made it to this point without all of them. This release is for them so that the next can be for all of you. We've reached a release candidate for 1.0!
We've learned a lot along the way. The name of this release is a throwback to an early moment in the project's history that had a profound and important impact on how we operate. While I don't wish to rehash, I will say it changed the way we looked at our work in open source and challenged each of us to decide what it meant for us publically and personally.
So today with our goals in sight, we lay this one to rest, and thank everyone who has ever contributed to the project. Not everyone who started on this road with us is still with us. That is the life of volunteering and open source. But you have our (and my) thanks:
@nksaraf, @nsarafpure, @lxsmnsyc, @birkskyum, @ghalle, @edivados, @Jutanium, @davedbase, @femincan, @btakita, @OrJDev, @boehs, @lightyaer, @G3root, @caseybaggz, @Brendonovich, @fezproof, @atk, @arbassett, @fictitious, @benbender, @mhyfritz, @emdede, @frenzzy, @Zachiah, @utkukaratas, @marvin-j97, @pawelblaszczyk5, @katywings, @harshmangalam, @jzohdi, @IvanLisz, @rrosas1198, @doeixd, @orenelbaum, @AlexErrant, @ch99q, @devinrhode2, @knpwrs, @timotius02, @m4rvr, @paularmstrong, @ryanseipp, @rturnq, @skreutzberger, @leaysgur, @samualtnorman, @pan93412, @uncenter, @sapphi-red, @indeyets, @u1in, @AirBorne04, @ajcwebdev, @alexandre-mb-airweb, @rvlzzr, @arnvgh, @brenelz, @fabian-hiller, @feynmanliang, @iainsimmons, @jceb, @leoj3n, @jorroll, @jchatard, @obask, @LiQuidProQuo, @ryoid, @rpivo, @samcfinan, @SirSerje, @simbas, @yume-chan, @soorria, @xstevenyung, @Tanner-Scadden, @painotpi, @Tommypop2, @ticianomorvan, @Nimaear, @russelgal, @ricardo-devis-agullo, @quentindutot, @dertieran, @petebacondarwin, @phouverneyuff, @patdx, @oscartbeaumont, @itsyoboieltr, @nas5w, @TooTallNate, @NathanHuisman, @Maxobat, @33KK, @dayvster, @zimonitrome, @xbmlz, @wimbarelds, @webfolderio, @vaishnav-mk, @stereobooster, @spicyzboss, @shivanshubisht, @nullableVoidPtr, @nirtamir2, @muslax, @markdalgleish, @guyo13, @gunnnnii, @ddPn08, @DaveMadden, @eryue0220, @bherbruck, @aronmal, @yonran, @yoavbls, @stickyburn, @progamesigner, @Wilaz, @vladrose, @viniciuspjardim, @TimWillebrands, @cstrnt, @thdxr, @davycoe, @danieltroger, @thetarnav, @clabinger, @colinhacks, @colbyfayock, @chrisbirster, @chobe, @charkour, @CWSpear, @seeplusplus, @burhanuday, @benmccann, @gBasil, @baristikir, @amorriscode, @afjlambert, @yurisich, @ammarriq, @ahkhanjani, @MASTERAMARJEET, @AlexMercedCoder, @albertoforni, @acerempel, @afonsojramos, @AdvTechnoKing, @adipascu, @luca-rath, @lawrencecchen, @Lalit3716, @K-Sato1995, @juliusmarminge, @jpmaga, @jhdcruz, @jgibo, @JoosepAlviste, @jtag05, @jqhr, @JesusP2, @BigDog1400, @ikapo, @xania, @iainmerrick, @golamrabbiazad, @garrett-hopper, @pureliani, @gabrielmfern, @fwang, @FoxtrotPerry, @Feel-ix-343, @erikrahm, @emilbonnek, @ehsanonline, @dudusotero, @MrFoxPro, @superbull, @BierDav, @haseeb5555, @XiNiHa, @AlbertSabate, @lukaprsina, @dev-rb, @Chojecki, @Vexcited, @paoloricciuti, @nexxeln, @sakhnyuk, @cohenerickson, @kkharji, @alxarch, @LukeSheard, @modderme123, @vsbyvi, @amitdahan, @quantuminformation, @fabien0102, @Budmin, @opudalo, @Bersaelor, @shorkyw, @blackvibe, @petercorrea, @HatulaPro, @rtritto, @huijiewei, @murphye, @sashoism, and anyone else we may have missed.
We'd also like to thank those that have invested financially with us as you are a big part of making this release happen. Especially Netlify, Google Chrome, JetBrains, Builder.io, Northlabs, Stytch, Breek, Monogram, csel.co.nk, divRIOTS, Vercel, Bumi, Clearspend, OSLabs and 402.
There are still a few more things to get in line for the 1.0 release. We are still expecting some bugs, and the official SolidJS docs for SolidStart are still under construction. But we are well on our way. I look forward to pushing this across the finish line in the coming weeks.
Thank you for your support and encouragement.
@ryansolid and Solid Core Team
v0.7.0 - Calm Before the Storm
This is a smaller release that doesn't fundamentally change anything you are already doing in Solid Start but it needed to happen since there were some circular dependency issues and I used this as an opportunity to cleanup some of the config. So this release is very much a precursor to us getting to 1.0 RC candidates. If you have been watching the repo the issue count is down to the lowest it has ever been (even after I went issue bankrupt with Beta 1). We've been slowly getting key enhancements in and fixing bugs. There are a couple things outstanding like the ultimate decision on Base Path and some weird cache issues during HMR but the general behavior is coming together nicely.
Changes
FileRoutes have moved
Honestly I should have done this ages ago but we just keep getting weird circular deps issues due to them. Now they are their own export. This means changing your entry point import to:
import { FileRoutes } from "@solidjs/start/router";But this should address a lot of the weirdness there.
Support for breaking out of nested routes
Sometimes you don't want to nest routes. Now you can represent paths with "." to avoid matching with parents. For example if you had users listing page under "/users" and you wanted the details to be under "/user/:id" but they don't share a layout or data fetching. Now you can name your files.
users.tsx
users.[id].tsx
And they won't try to nest. These can also each be their own nested routes as well by using "." notation on folders. Thanks to Remix V1 router for the inspiration, and Vinxi for making this implementable in about 30 seconds.
UPDATE: The above API was replaced with a simpler mechanism we already have. You can use (name) to differentiate paths. The text between the paranthesis is not included on the path but it prevents nested matching.
users(list).tsx
users/
- [id].tsx
getServerFunctionMeta
This is a specific helper but it is useful sometimes to get the underlying information about your running server function. You can do that now by calling this method. So far it only returns an id but it can help give you a stable reference across different environments this way. Thanks @katywings for making this happen.
import { getServerFunctionMeta } from "@solidjs/start/server";
// or some in-memory db
const appCache: any = globalThis;
const counter = async () => {
"use server";
const { id } = getServerFunctionMeta()!;
const key = `counter_${id}`;
appCache[key] = appCache[key] ?? 0;
appCache[key]++;
return appCache[key] as number;
};Dropped Direct Interop with Solid's Request Event and H3
This is mostly unnecessary with our response wrapper and ALS. And was causing extra complication that was unnecessary. If you want to use Vinxi HTTP helpers or H3 utilities directly just use the .nativeEvent property on our Request Event.
Conclusion
There are another half a dozen smaller changes so see the changelog for more details. But things are getting closer. Thank you everyone who is participating in the beta and reporting issues. We appreciate your patience and look forward to your continued participation.
