Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const immediateAsyncAssets = asyncAssetManager.used(
AssetTiming.Immediate,
);
const [styles, scripts] = await Promise.all([
assets.styles({name: 'main', asyncAssets: immediateAsyncAssets}),
assets.scripts({name: 'main', asyncAssets: immediateAsyncAssets}),
]);
const response = stream(
{app}
,
);
ctx.set(Header.ContentType, 'text/html');
ctx.body = response;
} catch (error) {
const errorMessage = `React server-side rendering error:\n${error.stack ||
error.message}`;
logger.log(errorMessage);
ctx.status = StatusCode.InternalServerError;
// eslint-disable-next-line no-process-env
if (process.env.NODE_ENV === 'development') {
ctx.body = errorMessage;
} else {
ctx.throw(StatusCode.InternalServerError, error);
}
}
}
{app}
);
},
});
} catch (error) {
logger.error(error);
throw error;
}
applyToContext(ctx, networkManager);
const response = renderToString({app});
ctx.set(Header.ContentType, 'text/html');
ctx.body = response;
return response;
};
}
server,
initialData,
graphQLEndpoint = '/graphql',
connectToDevTools,
headers = {},
}: Options) {
const cache = new InMemoryCache({
dataIdFromObject: object => object.id,
});
const link = createHttpLink({
credentials: 'include',
uri: graphQLEndpoint,
headers: {
[Header.Accept.toLowerCase()]: 'application/json',
[Header.ContentType.toLowerCase()]: 'application/json',
...headers,
},
});
return new ApolloClient({
link,
ssrMode: server,
ssrForceFetchDelay: 100,
cache: initialData ? cache.restore(initialData) : cache,
connectToDevTools: !server && connectToDevTools,
});
}