polen
Version:
A framework for delightful GraphQL developer portals
24 lines • 891 B
JavaScript
import { useLoaderData as useLoaderDataRR, useRouteLoaderData as useRouteLoaderDataRR } from 'react-router';
import { superjson } from '../../singletons/superjson.js';
export const createLoader = (loader) => {
// @ts-expect-error
return async (...args) => {
const data = await loader(...args);
const serialized = {
superjsonData: superjson.stringify(data),
};
return serialized;
};
};
export const useLoaderData = (routeTarget) => {
const loaderData = (routeTarget
? useRouteLoaderDataRR(routeTarget)
: useLoaderDataRR());
if (loaderData === undefined) {
throw new Error(`No loader data returned from route ${routeTarget ?? `<direct>`}`);
}
const { superjsonData } = loaderData;
const data = superjson.parse(superjsonData);
return data;
};
//# sourceMappingURL=react-router-loader.js.map