Files
Michael BiancoandGitHub f672eb2f54 feat(node): support TanStack Start builds (#672)
* feat: add generation script for latest tanstack example

Generated-by: aiautocommit

* test(examples): add tanstack-latest example project setup

Generated-by: aiautocommit

* feat(node): add helper methods to check production and dev dependencies

Generated-by: aiautocommit

* feat(logger): support absolute URLs in DocsURL and suggestions

Generated-by: aiautocommit

* feat(node): exclude TanStack Start packages from Vite static build

Generated-by: aiautocommit

* feat(node): add support for TanStack Start srvx fallback

Generated-by: aiautocommit

* test(core): update test snapshots for TanStack build plan

Generated-by: aiautocommit

* docs(node): document TanStack Start detection and build behavior

Generated-by: aiautocommit

* feat(node): add TanStack Start framework support and fallback server

Generated-by: aiautocommit
2026-08-02 06:09:11 -06:00

36 lines
934 B
Go

package node
const (
// Static dir is resolved relative to the server entry (dist/server/), matching TanStack docs.
DefaultTanstackSrvxStartCommand = "srvx --prod -s ../client dist/server/server.js"
)
func (p *NodeProvider) isTanstackStart() bool {
return p.isTanstackStartPackage(p.workspace.Root)
}
func (p *NodeProvider) isTanstackStartPackage(pkg *WorkspacePackage) bool {
if pkg == nil || pkg.PackageJson == nil {
return false
}
return pkg.PackageJson.hasProductionDependency("@tanstack/react-start")
}
// True when TanStack Start has no start script and we fall back to srvx.
func (p *NodeProvider) usesTanstackSrvxFallback() bool {
if !p.isTanstackStart() {
return false
}
return p.getScripts(p.packageJson, "start") == ""
}
func (p *NodeProvider) getTanstackStartCommand() string {
if !p.usesTanstackSrvxFallback() {
return ""
}
return p.packageManager.ExecCommand(DefaultTanstackSrvxStartCommand)
}