diff --git a/.changeset/thin-turtles-beg.md b/.changeset/thin-turtles-beg.md new file mode 100644 index 00000000000..a266d57b9ec --- /dev/null +++ b/.changeset/thin-turtles-beg.md @@ -0,0 +1,5 @@ +--- +'@keystone-6/core': patch +--- + +Fix withRequest behavior when no session strategy is configured diff --git a/packages/core/src/lib/context/createContext.ts b/packages/core/src/lib/context/createContext.ts index bc581777af5..95812cb4681 100644 --- a/packages/core/src/lib/context/createContext.ts +++ b/packages/core/src/lib/context/createContext.ts @@ -75,14 +75,19 @@ export function makeCreateContext({ return result.data as any; }; - async function withRequest(req: IncomingMessage, res?: ServerResponse) { - contextToReturn.req = req; - contextToReturn.res = res; - if (!config.session) { - return contextToReturn; + async function withRequest(newReq: IncomingMessage, newRes?: ServerResponse) { + const newContext = createContext({ + session, + sudo, + req: newReq, + res: newRes, + }); + + if (config.session) { + newContext.session = await config.session.get({ context: newContext }); } - contextToReturn.session = await config.session.get({ context: contextToReturn }); - return createContext({ session: contextToReturn.session, sudo, req, res }); + + return newContext; } const dbAPI: KeystoneContext['db'] = {}; const itemAPI: KeystoneContext['query'] = {};