export async function loader()

in src/main/js/routes/layout/layout.js [186:209]


export async function loader({request}) {
    const url = new URL(request.url);
    const configHost = url.searchParams.get("config_host");
    const vespaState = getVespaState(configHost)
        .then(vespaState => {
            vespaState
                .container
                .clusters
                .forEach(cluster => {
                    const containerName = cluster.name;
                    // either use the route from the url or the first node in the cluster
                    if (url.searchParams.has(routingSearchParamName(containerName))) {
                        cluster.route = url.searchParams.get(routingSearchParamName(containerName))
                    } else {
                        const nodeHost = cluster.nodes[0].host
                        cluster.route = 'http://' + nodeHost.hostname + ":" + nodeHost.port
                    }
                })
            return vespaState
        });
    return defer({
        vespaState: vespaState
    });
}