MCPcopy
hub / github.com/vercel/next.js / render

Function render

packages/next/src/client/index.tsx:798–830  ·  view source on GitHub ↗
(renderingProps: RenderRouteInfo)

Source from the content-addressed store, hash-verified

796}
797
798async function render(renderingProps: RenderRouteInfo): Promise<void> {
799 // if an error occurs in a server-side page (e.g. in getInitialProps),
800 // skip re-rendering the error page client-side as data-fetching operations
801 // will already have been done on the server and NEXT_DATA contains the correct
802 // data for straight-forward hydration of the error page
803 if (
804 renderingProps.err &&
805 // renderingProps.Component might be undefined if there is a top/module-level error
806 (typeof renderingProps.Component === 'undefined' ||
807 !renderingProps.isHydratePass)
808 ) {
809 await renderError(renderingProps)
810 return
811 }
812
813 try {
814 await doRender(renderingProps)
815 } catch (err) {
816 const renderErr = getProperError(err)
817 // bubble up cancelation errors
818 if ((renderErr as Error & { cancelled?: boolean }).cancelled) {
819 throw renderErr
820 }
821
822 if (process.env.NODE_ENV === 'development') {
823 // Ensure this error is displayed in the overlay in development
824 setTimeout(() => {
825 throw renderErr
826 })
827 }
828 await renderError({ ...renderingProps, err: renderErr })
829 }
830}
831
832export async function hydrate(opts?: { beforeRender?: () => Promise<void> }) {
833 let initialErr = initialData.err

Callers 12

hydrateFunction · 0.70
index.test.tsxFile · 0.50
snapshot.tsxFile · 0.50
page.test.tsxFile · 0.50
counter.test.tsxFile · 0.50
page.test.tsxFile · 0.50
index.test.tsxFile · 0.50
snapshot.tsxFile · 0.50
page.test.tsxFile · 0.50
counter.test.tsxFile · 0.50
page.test.tsxFile · 0.50
Home.test.tsxFile · 0.50

Calls 4

getProperErrorFunction · 0.90
renderErrorFunction · 0.70
doRenderFunction · 0.70
setTimeoutFunction · 0.50

Tested by

no test coverage detected