Shouldn't the createMiddleware() function be declared in files named **/*.server.* and **/server/** just as it is in createServerFn(), since they are isomorphic?
feedback that a maintainer provided regarding serverFn + imports: #1479516645733957774 message
I'm separating my code into client and server parts, and the following import isn't working
// @/server/auth/middleware.ts
import { createMiddleware } from '@tanstack/react-start'
import {
setResponseHeader,
setResponseStatus,
} from '@tanstack/react-start/server'
import { auth } from '@/server/auth/auth'
export const authMiddleware = createMiddleware().server(
async ({ next, request }) => {
const headers = request.headers
const session = await auth.api.getSession({
headers,
query: { disableCookieCache: true },
returnHeaders: true,
})
// Forward any Set-Cookie headers to the client, e.g. for session/cache refresh
// .....
return next({
context: {
user: session.response.user,
orgId: organizationId,
},
})
},
)
import { authMiddleware } from '@/server/auth/middleware' is not possible 👇👇
// @/utils/organization/organization.functions.ts
import { createServerFn } from '@tanstack/react-start'
import { listUserOrganizationsDetailedServer } from './organization.server'
import { authMiddleware } from '@/server/auth/middleware' // That causes an import error
export const getUserOrganizationsDetailed = createServerFn({
method: 'GET',
})
.middleware([authMiddleware])
.handler(async ({ context }) => {
return await listUserOrganizationsDetailedServer(context.user.id)
})