createContextInner would probably be used for situations where req/res objects aren’t available.
I meant something like this in createContext
const ctx = await createContextInner({});
return { …opts, …ctx };
Also change the inferAsyncReturnType to use the return type of createContext