Skip to content

Commit

Permalink
Merge branch 'canary' into next-font-external
Browse files Browse the repository at this point in the history
  • Loading branch information
ijjk committed Nov 9, 2022
2 parents 706feae + c962f2d commit c19b8ef
Showing 1 changed file with 15 additions and 14 deletions.
29 changes: 15 additions & 14 deletions packages/next/client/route-loader.ts
Expand Up @@ -80,6 +80,16 @@ export interface RouteLoader {
prefetch(route: string): Promise<void>
}

const ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR')
// TODO: unexport
export function markAssetError(err: Error): Error {
return Object.defineProperty(err, ASSET_LOAD_ERROR, {})
}

export function isAssetError(err?: Error): boolean | undefined {
return err && ASSET_LOAD_ERROR in err
}

function hasPrefetch(link?: HTMLLinkElement): boolean {
try {
link = document.createElement('link')
Expand All @@ -101,13 +111,13 @@ function prefetchViaDom(
as: string,
link?: HTMLLinkElement
): Promise<any> {
return new Promise<void>((res, rej) => {
return new Promise<void>((resolve, reject) => {
const selector = `
link[rel="prefetch"][href^="${href}"],
link[rel="preload"][href^="${href}"],
script[src^="${href}"]`
if (document.querySelector(selector)) {
return res()
return resolve()
}

link = document.createElement('link')
Expand All @@ -116,8 +126,9 @@ function prefetchViaDom(
if (as) link!.as = as
link!.rel = `prefetch`
link!.crossOrigin = process.env.__NEXT_CROSS_ORIGIN!
link!.onload = res as any
link!.onerror = rej
link!.onload = resolve as any
link!.onerror = () =>
reject(markAssetError(new Error(`Failed to prefetch: ${href}`)))

// `href` should always be last:
link!.href = href
Expand All @@ -126,16 +137,6 @@ function prefetchViaDom(
})
}

const ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR')
// TODO: unexport
export function markAssetError(err: Error): Error {
return Object.defineProperty(err, ASSET_LOAD_ERROR, {})
}

export function isAssetError(err?: Error): boolean | undefined {
return err && ASSET_LOAD_ERROR in err
}

function appendScript(
src: TrustedScriptURL | string,
script?: HTMLScriptElement
Expand Down

0 comments on commit c19b8ef

Please sign in to comment.