fix(nuxt): dedupe payload cache by payload url (#19563)

This commit is contained in:
Daniel Roe 2023-03-09 18:36:54 +00:00 committed by GitHub
parent fdd4bddf35
commit d469740105
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,17 +12,17 @@ export function loadPayload (url: string, opts: LoadPayloadOptions = {}) {
const payloadURL = _getPayloadURL(url, opts) const payloadURL = _getPayloadURL(url, opts)
const nuxtApp = useNuxtApp() const nuxtApp = useNuxtApp()
const cache = nuxtApp._payloadCache = nuxtApp._payloadCache || {} const cache = nuxtApp._payloadCache = nuxtApp._payloadCache || {}
if (cache[url]) { if (cache[payloadURL]) {
return cache[url] return cache[payloadURL]
} }
cache[url] = _importPayload(payloadURL).then((payload) => { cache[payloadURL] = _importPayload(payloadURL).then((payload) => {
if (!payload) { if (!payload) {
delete cache[url] delete cache[payloadURL]
return null return null
} }
return payload return payload
}) })
return cache[url] return cache[payloadURL]
} }
export function preloadPayload (url: string, opts: LoadPayloadOptions = {}) { export function preloadPayload (url: string, opts: LoadPayloadOptions = {}) {