Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
responsePromise = responsePromise.then((response) => {
// Workbox is going to handle the route.
// print the routing details to the console.
logger.groupCollapsed(`Precaching is responding to: ` +
getFriendlyURL(event.request.url));
logger.log(`Serving the precached url: ${precachedURL}`);
logger.groupCollapsed(`View request details here.`);
logger.log(event.request);
logger.groupEnd();
logger.groupCollapsed(`View response details here.`);
logger.log(response);
logger.groupEnd();
logger.groupEnd();
return response;
});
}
private _match({url, request}: MatchCallbackOptions): boolean {
if (request && request.mode !== 'navigate') {
return false;
}
const pathnameAndSearch = url.pathname + url.search;
for (const regExp of this._blacklist) {
if (regExp.test(pathnameAndSearch)) {
if (process.env.NODE_ENV !== 'production') {
logger.log(`The navigation route ${pathnameAndSearch} is not ` +
`being used, since the URL matches this blacklist pattern: ` +
`${regExp}`);
}
return false;
}
}
if (this._whitelist.some((regExp) => regExp.test(pathnameAndSearch))) {
if (process.env.NODE_ENV !== 'production') {
logger.debug(`The navigation route ${pathnameAndSearch} ` +
`is being used.`);
}
return true;
}
if (process.env.NODE_ENV !== 'production') {
headers: originalResponse.headers,
});
slicedResponse.headers.set('Content-Length', String(slicedBlobSize));
slicedResponse.headers.set('Content-Range',
`bytes ${effectiveBoundaries.start}-${effectiveBoundaries.end - 1}/` +
originalBlob.size);
return slicedResponse;
} catch (error) {
if (process.env.NODE_ENV !== 'production') {
logger.warn(`Unable to construct a partial response; returning a ` +
`416 Range Not Satisfiable response instead.`);
logger.groupCollapsed(`View details here.`);
logger.log(error);
logger.log(request);
logger.log(originalResponse);
logger.groupEnd();
}
return new Response('', {
status: 416,
statusText: 'Range Not Satisfiable',
});
}
}
if (process.env.NODE_ENV !== 'production') {
logs.push(`No response found in the '${this._cacheName}' cache. ` +
`Will wait for the network response.`);
}
try {
response = await fetchAndCachePromise;
} catch (err) {
error = err;
}
}
if (process.env.NODE_ENV !== 'production') {
logger.groupCollapsed(
messages.strategyStart('StaleWhileRevalidate', request));
for (let log of logs) {
logger.log(log);
}
messages.printFinalResponse(response);
logger.groupEnd();
}
if (!response) {
throw new WorkboxError('no-response', {url: request.url, error});
}
return response;
}
function disable() {
if (isSupported()) {
self.addEventListener('activate', (event: ExtendableEvent) => {
event.waitUntil(
self.registration.navigationPreload.disable().then(() => {
if (process.env.NODE_ENV !== 'production') {
logger.log(`Navigation preload is disabled.`);
}
})
);
});
} else {
if (process.env.NODE_ENV !== 'production') {
logger.log(`Navigation preload is not supported in this browser.`);
}
}
}
debugMessages.forEach((msg) => {
if (Array.isArray(msg)) {
logger.log(...msg);
} else {
logger.log(msg);
}
});
logger.groupEnd();
const logFriendlyHeaders: {[key: string]: string} = {};
response.headers.forEach((value, key) => {
logFriendlyHeaders[key] = value;
});
logger.groupCollapsed(`View response status and headers here.`);
logger.log(`Response status: ` + response.status);
logger.log(`Response headers: ` +
JSON.stringify(logFriendlyHeaders, null, 2));
logger.groupEnd();
logger.groupCollapsed(`View full response details here.`);
logger.log(response.headers);
logger.log(response);
logger.groupEnd();
logger.groupEnd();
}
}
return cacheable;
}
}
statusText: 'Partial Content',
headers: originalResponse.headers,
});
slicedResponse.headers.set('Content-Length', String(slicedBlobSize));
slicedResponse.headers.set('Content-Range',
`bytes ${effectiveBoundaries.start}-${effectiveBoundaries.end - 1}/` +
originalBlob.size);
return slicedResponse;
} catch (error) {
if (process.env.NODE_ENV !== 'production') {
logger.warn(`Unable to construct a partial response; returning a ` +
`416 Range Not Satisfiable response instead.`);
logger.groupCollapsed(`View details here.`);
logger.log(error);
logger.log(request);
logger.log(originalResponse);
logger.groupEnd();
}
return new Response('', {
status: 416,
statusText: 'Range Not Satisfiable',
});
}
}
});
slicedResponse.headers.set('Content-Length', String(slicedBlobSize));
slicedResponse.headers.set('Content-Range',
`bytes ${effectiveBoundaries.start}-${effectiveBoundaries.end - 1}/` +
originalBlob.size);
return slicedResponse;
} catch (error) {
if (process.env.NODE_ENV !== 'production') {
logger.warn(`Unable to construct a partial response; returning a ` +
`416 Range Not Satisfiable response instead.`);
logger.groupCollapsed(`View details here.`);
logger.log(error);
logger.log(request);
logger.log(originalResponse);
logger.groupEnd();
}
return new Response('', {
status: 416,
statusText: 'Range Not Satisfiable',
});
}
}
} else {
logs.push(`Unable to get a response from the network.`);
}
}
} else {
if (process.env.NODE_ENV !== 'production') {
logs.push(
`Found a cached response in the '${this._cacheName}' cache.`);
}
}
if (process.env.NODE_ENV !== 'production') {
logger.groupCollapsed(
messages.strategyStart('CacheFirst', request));
for (let log of logs) {
logger.log(log);
}
messages.printFinalResponse(response);
logger.groupEnd();
}
if (!response) {
throw new WorkboxError('no-response', {url: request.url, error});
}
return response;
}