Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions e2e/react-start/server-functions/src/router.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { createRouter } from '@tanstack/react-router'
import { QueryClient } from '@tanstack/react-query'
import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'
import { routeTree } from './routeTree.gen'
import { DefaultCatchBoundary } from './components/DefaultCatchBoundary'
import { NotFound } from './components/NotFound'
import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'
import { QueryClient } from '@tanstack/react-query'

export function getRouter() {
const queryClient = new QueryClient()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ export const Route = createFileRoute('/loader-fetchQuery/$type')({
context: ({ params }) => ({
queryOptions: makeQueryOptions(`loader-fetchQuery-${params.type}`),
}),

loader: ({ context, params }) => {
const queryPromise = context.queryClient.fetchQuery(context.queryOptions)
if (params.type === 'sync') {
Expand All @@ -30,7 +29,6 @@ function RouteComponent() {
const loaderData = Route.useLoaderData()
const context = Route.useRouteContext()
const query = useQuery(() => context().queryOptions)

return (
<div>
<div>
Expand Down
2 changes: 2 additions & 0 deletions e2e/solid-start/server-functions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
"test:e2e": "rm -rf port*.txt; playwright test --project=chromium"
},
"dependencies": {
"@tanstack/solid-query": "^5.90.6",
"@tanstack/solid-router": "workspace:^",
"@tanstack/solid-router-devtools": "workspace:^",
"@tanstack/solid-router-ssr-query": "workspace:^",
"@tanstack/solid-start": "workspace:^",
"js-cookie": "^3.0.5",
"redaxios": "^0.5.1",
Expand Down
171 changes: 171 additions & 0 deletions e2e/solid-start/server-functions/src/routeTree.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,16 @@ import { Route as DeadCodePreserveRouteImport } from './routes/dead-code-preserv
import { Route as ConsistentRouteImport } from './routes/consistent'
import { Route as AbortSignalRouteImport } from './routes/abort-signal'
import { Route as IndexRouteImport } from './routes/index'
import { Route as PrimitivesIndexRouteImport } from './routes/primitives/index'
import { Route as MiddlewareIndexRouteImport } from './routes/middleware/index'
import { Route as FormdataRedirectIndexRouteImport } from './routes/formdata-redirect/index'
import { Route as FactoryIndexRouteImport } from './routes/factory/index'
import { Route as CookiesIndexRouteImport } from './routes/cookies/index'
import { Route as MiddlewareSendServerFnRouteImport } from './routes/middleware/send-serverFn'
import { Route as MiddlewareRequestMiddlewareRouteImport } from './routes/middleware/request-middleware'
import { Route as MiddlewareClientMiddlewareRouterRouteImport } from './routes/middleware/client-middleware-router'
import { Route as CookiesSetRouteImport } from './routes/cookies/set'
import { Route as FormdataRedirectTargetNameRouteImport } from './routes/formdata-redirect/target.$name'

const SubmitPostFormdataRoute = SubmitPostFormdataRouteImport.update({
id: '/submit-post-formdata',
Expand Down Expand Up @@ -90,16 +98,59 @@ const IndexRoute = IndexRouteImport.update({
path: '/',
getParentRoute: () => rootRouteImport,
} as any)
const PrimitivesIndexRoute = PrimitivesIndexRouteImport.update({
id: '/primitives/',
path: '/primitives/',
getParentRoute: () => rootRouteImport,
} as any)
const MiddlewareIndexRoute = MiddlewareIndexRouteImport.update({
id: '/middleware/',
path: '/middleware/',
getParentRoute: () => rootRouteImport,
} as any)
const FormdataRedirectIndexRoute = FormdataRedirectIndexRouteImport.update({
id: '/formdata-redirect/',
path: '/formdata-redirect/',
getParentRoute: () => rootRouteImport,
} as any)
const FactoryIndexRoute = FactoryIndexRouteImport.update({
id: '/factory/',
path: '/factory/',
getParentRoute: () => rootRouteImport,
} as any)
const CookiesIndexRoute = CookiesIndexRouteImport.update({
id: '/cookies/',
path: '/cookies/',
getParentRoute: () => rootRouteImport,
} as any)
const MiddlewareSendServerFnRoute = MiddlewareSendServerFnRouteImport.update({
id: '/middleware/send-serverFn',
path: '/middleware/send-serverFn',
getParentRoute: () => rootRouteImport,
} as any)
const MiddlewareRequestMiddlewareRoute =
MiddlewareRequestMiddlewareRouteImport.update({
id: '/middleware/request-middleware',
path: '/middleware/request-middleware',
getParentRoute: () => rootRouteImport,
} as any)
const MiddlewareClientMiddlewareRouterRoute =
MiddlewareClientMiddlewareRouterRouteImport.update({
id: '/middleware/client-middleware-router',
path: '/middleware/client-middleware-router',
getParentRoute: () => rootRouteImport,
} as any)
const CookiesSetRoute = CookiesSetRouteImport.update({
id: '/cookies/set',
path: '/cookies/set',
getParentRoute: () => rootRouteImport,
} as any)
const FormdataRedirectTargetNameRoute =
FormdataRedirectTargetNameRouteImport.update({
id: '/formdata-redirect/target/$name',
path: '/formdata-redirect/target/$name',
getParentRoute: () => rootRouteImport,
} as any)

export interface FileRoutesByFullPath {
'/': typeof IndexRoute
Expand All @@ -116,7 +167,15 @@ export interface FileRoutesByFullPath {
'/status': typeof StatusRoute
'/submit-post-formdata': typeof SubmitPostFormdataRoute
'/cookies/set': typeof CookiesSetRoute
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
'/cookies': typeof CookiesIndexRoute
'/factory': typeof FactoryIndexRoute
'/formdata-redirect': typeof FormdataRedirectIndexRoute
'/middleware': typeof MiddlewareIndexRoute
'/primitives': typeof PrimitivesIndexRoute
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
}
export interface FileRoutesByTo {
'/': typeof IndexRoute
Expand All @@ -133,7 +192,15 @@ export interface FileRoutesByTo {
'/status': typeof StatusRoute
'/submit-post-formdata': typeof SubmitPostFormdataRoute
'/cookies/set': typeof CookiesSetRoute
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
'/cookies': typeof CookiesIndexRoute
'/factory': typeof FactoryIndexRoute
'/formdata-redirect': typeof FormdataRedirectIndexRoute
'/middleware': typeof MiddlewareIndexRoute
'/primitives': typeof PrimitivesIndexRoute
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
}
export interface FileRoutesById {
__root__: typeof rootRouteImport
Expand All @@ -151,7 +218,15 @@ export interface FileRoutesById {
'/status': typeof StatusRoute
'/submit-post-formdata': typeof SubmitPostFormdataRoute
'/cookies/set': typeof CookiesSetRoute
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
'/cookies/': typeof CookiesIndexRoute
'/factory/': typeof FactoryIndexRoute
'/formdata-redirect/': typeof FormdataRedirectIndexRoute
'/middleware/': typeof MiddlewareIndexRoute
'/primitives/': typeof PrimitivesIndexRoute
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
}
export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath
Expand All @@ -170,7 +245,15 @@ export interface FileRouteTypes {
| '/status'
| '/submit-post-formdata'
| '/cookies/set'
| '/middleware/client-middleware-router'
| '/middleware/request-middleware'
| '/middleware/send-serverFn'
| '/cookies'
| '/factory'
| '/formdata-redirect'
| '/middleware'
| '/primitives'
| '/formdata-redirect/target/$name'
fileRoutesByTo: FileRoutesByTo
to:
| '/'
Expand All @@ -187,7 +270,15 @@ export interface FileRouteTypes {
| '/status'
| '/submit-post-formdata'
| '/cookies/set'
| '/middleware/client-middleware-router'
| '/middleware/request-middleware'
| '/middleware/send-serverFn'
| '/cookies'
| '/factory'
| '/formdata-redirect'
| '/middleware'
| '/primitives'
| '/formdata-redirect/target/$name'
id:
| '__root__'
| '/'
Expand All @@ -204,7 +295,15 @@ export interface FileRouteTypes {
| '/status'
| '/submit-post-formdata'
| '/cookies/set'
| '/middleware/client-middleware-router'
| '/middleware/request-middleware'
| '/middleware/send-serverFn'
| '/cookies/'
| '/factory/'
| '/formdata-redirect/'
| '/middleware/'
| '/primitives/'
| '/formdata-redirect/target/$name'
fileRoutesById: FileRoutesById
}
export interface RootRouteChildren {
Expand All @@ -222,7 +321,15 @@ export interface RootRouteChildren {
StatusRoute: typeof StatusRoute
SubmitPostFormdataRoute: typeof SubmitPostFormdataRoute
CookiesSetRoute: typeof CookiesSetRoute
MiddlewareClientMiddlewareRouterRoute: typeof MiddlewareClientMiddlewareRouterRoute
MiddlewareRequestMiddlewareRoute: typeof MiddlewareRequestMiddlewareRoute
MiddlewareSendServerFnRoute: typeof MiddlewareSendServerFnRoute
CookiesIndexRoute: typeof CookiesIndexRoute
FactoryIndexRoute: typeof FactoryIndexRoute
FormdataRedirectIndexRoute: typeof FormdataRedirectIndexRoute
MiddlewareIndexRoute: typeof MiddlewareIndexRoute
PrimitivesIndexRoute: typeof PrimitivesIndexRoute
FormdataRedirectTargetNameRoute: typeof FormdataRedirectTargetNameRoute
}

declare module '@tanstack/solid-router' {
Expand Down Expand Up @@ -318,20 +425,76 @@ declare module '@tanstack/solid-router' {
preLoaderRoute: typeof IndexRouteImport
parentRoute: typeof rootRouteImport
}
'/primitives/': {
id: '/primitives/'
path: '/primitives'
fullPath: '/primitives'
preLoaderRoute: typeof PrimitivesIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/middleware/': {
id: '/middleware/'
path: '/middleware'
fullPath: '/middleware'
preLoaderRoute: typeof MiddlewareIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/formdata-redirect/': {
id: '/formdata-redirect/'
path: '/formdata-redirect'
fullPath: '/formdata-redirect'
preLoaderRoute: typeof FormdataRedirectIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/factory/': {
id: '/factory/'
path: '/factory'
fullPath: '/factory'
preLoaderRoute: typeof FactoryIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/cookies/': {
id: '/cookies/'
path: '/cookies'
fullPath: '/cookies'
preLoaderRoute: typeof CookiesIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/middleware/send-serverFn': {
id: '/middleware/send-serverFn'
path: '/middleware/send-serverFn'
fullPath: '/middleware/send-serverFn'
preLoaderRoute: typeof MiddlewareSendServerFnRouteImport
parentRoute: typeof rootRouteImport
}
'/middleware/request-middleware': {
id: '/middleware/request-middleware'
path: '/middleware/request-middleware'
fullPath: '/middleware/request-middleware'
preLoaderRoute: typeof MiddlewareRequestMiddlewareRouteImport
parentRoute: typeof rootRouteImport
}
'/middleware/client-middleware-router': {
id: '/middleware/client-middleware-router'
path: '/middleware/client-middleware-router'
fullPath: '/middleware/client-middleware-router'
preLoaderRoute: typeof MiddlewareClientMiddlewareRouterRouteImport
parentRoute: typeof rootRouteImport
}
'/cookies/set': {
id: '/cookies/set'
path: '/cookies/set'
fullPath: '/cookies/set'
preLoaderRoute: typeof CookiesSetRouteImport
parentRoute: typeof rootRouteImport
}
'/formdata-redirect/target/$name': {
id: '/formdata-redirect/target/$name'
path: '/formdata-redirect/target/$name'
fullPath: '/formdata-redirect/target/$name'
preLoaderRoute: typeof FormdataRedirectTargetNameRouteImport
parentRoute: typeof rootRouteImport
}
}
}

Expand All @@ -350,7 +513,15 @@ const rootRouteChildren: RootRouteChildren = {
StatusRoute: StatusRoute,
SubmitPostFormdataRoute: SubmitPostFormdataRoute,
CookiesSetRoute: CookiesSetRoute,
MiddlewareClientMiddlewareRouterRoute: MiddlewareClientMiddlewareRouterRoute,
MiddlewareRequestMiddlewareRoute: MiddlewareRequestMiddlewareRoute,
MiddlewareSendServerFnRoute: MiddlewareSendServerFnRoute,
CookiesIndexRoute: CookiesIndexRoute,
FactoryIndexRoute: FactoryIndexRoute,
FormdataRedirectIndexRoute: FormdataRedirectIndexRoute,
MiddlewareIndexRoute: MiddlewareIndexRoute,
PrimitivesIndexRoute: PrimitivesIndexRoute,
FormdataRedirectTargetNameRoute: FormdataRedirectTargetNameRoute,
}
export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren)
Expand Down
10 changes: 10 additions & 0 deletions e2e/solid-start/server-functions/src/router.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
import { createRouter } from '@tanstack/solid-router'
import { setupRouterSsrQueryIntegration } from '@tanstack/solid-router-ssr-query'
import { QueryClient } from '@tanstack/solid-query'
import { routeTree } from './routeTree.gen'
import { DefaultCatchBoundary } from './components/DefaultCatchBoundary'
import { NotFound } from './components/NotFound'

export function getRouter() {
const queryClient = new QueryClient()
const router = createRouter({
routeTree,
defaultPreload: 'intent',
defaultErrorComponent: DefaultCatchBoundary,
defaultNotFoundComponent: () => <NotFound />,
scrollRestoration: true,
context: {
foo: {
bar: 'baz',
},
},
})

setupRouterSsrQueryIntegration({ router, queryClient })

return router
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { createMiddleware } from '@tanstack/solid-start'
import { createFooServerFn } from './createFooServerFn'

const barMiddleware = createMiddleware({ type: 'function' }).server(
({ next }) => {
console.log('Bar middleware triggered')
return next({
context: { bar: 'bar' } as const,
})
},
)

export const createBarServerFn = createFooServerFn().middleware([barMiddleware])

export const barFnInsideFactoryFile = createBarServerFn().handler(
({ context }) => {
return {
name: 'barFnInsideFactoryFile',
context,
}
},
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export function createFakeFn() {
return {
handler: (cb: () => Promise<any>) => cb,
}
}
Loading
Loading