astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
28 lines (27 loc) • 870 B
JavaScript
/**
* Use this function to provide renderers to the `AstroContainer`:
*
* ```js
* import { getContainerRenderer } from "@astrojs/react/container-renderer";
* import { experimental_AstroContainer as AstroContainer } from "astro/container";
* import { loadRenderers } from "astro:container"; // use this only when using vite/vitest
*
* const renderers = await loadRenderers([ getContainerRenderer ]);
* const container = await AstroContainer.create({ renderers });
*
* ```
* @param renderers
*/
export async function loadRenderers(renderers) {
const loadedRenderers = await Promise.all(renderers.map(async (renderer) => {
const mod = await import(renderer.serverEntrypoint.toString());
if (typeof mod.default !== "undefined") {
return {
...renderer,
ssr: mod.default
};
}
return undefined;
}));
return loadedRenderers.filter((r) => Boolean(r));
}