As discussed before, Rakkas passes a
fetch function to the
load functions of layouts and pages.
fetch is a web standard but it's not necessarily the most ergonomic tool for making API requests. Serializing/deserializing data, setting the correct headers, handling errors etc. on each request can quickly become cumbersome. It's often more convenient to have a set of functions or classes for communicating with a particular API intead of using
Rakkas allows you to create such helper classes or functions. This is done once during initialization on the client-side and once for each request on the server-side by the
createLoadHelpers customization hooks. The returned object will be passed to the
load functions as
The server-side version of this hook will receive the same
fetch function that is passed to the
load functions as its argument. The returned helpers object has to have the same interface on the server and on the client but it is not required that the two versions share the same implementation. This opens up the possibility for implementing client-side helpers by sending requests but the server-side helpers by directly calling, e.g., database functions on the backend.