I'm trying to work with a clean and hexagonal architecture for my sveltekit frontend, connecting to an external API.
When I want to load some data for a page, inside my load function I instantiate a simple command/DTO that I pass to a usecase class, which passes it on to a handler class, which then calls the external API to get the data via a gateway class.
Now architecture wise, the load function is inside the Infrastructure layer, then command/usecase/handler are all inside the Application layer, then the gateway is in the Infrastructure layer but I instantiate it inside my handler via dependency injection on a Domain interface so I'm good on that.
Problem is, I need access to the cookies in my gateway, so I can attach them to my outgoing request and authenticate on my external API. But those cookies are only accessible inside my load function as far as I know, and I don't want to drill either the whole original request or the cookies through my whole usecase because the Application layer shouldn't care about that.
I would like to get access to existing cookies for the current original request inside my gateway directly, is there any way I could do that in SvelteKit while still being careful about not sharing data between users on the node server?
The solution was to create a new DI injector in each
loadfunction instead of one for the application. That way I can pass the request to the injector factory and have it injected directly into the gateway class (or into aRequestContextProviderclass that is then injected into the gateway, whatever works best for your case).