.
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
import { makeRe } from 'next/dist/compiled/picomatch';
|
||||
// Modifying this function should also modify writeImagesManifest()
|
||||
export function matchRemotePattern(pattern, url) {
|
||||
if (pattern.protocol !== undefined) {
|
||||
if (pattern.protocol.replace(/:$/, '') !== url.protocol.replace(/:$/, '')) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (pattern.port !== undefined) {
|
||||
if (pattern.port !== url.port) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (pattern.hostname === undefined) {
|
||||
throw Object.defineProperty(new Error(`Pattern should define hostname but found\n${JSON.stringify(pattern)}`), "__NEXT_ERROR_CODE", {
|
||||
value: "E410",
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
||||
} else {
|
||||
if (!makeRe(pattern.hostname).test(url.hostname)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (pattern.search !== undefined) {
|
||||
if (pattern.search !== url.search) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Should be the same as writeImagesManifest()
|
||||
if (!makeRe(pattern.pathname ?? '**', {
|
||||
dot: true
|
||||
}).test(url.pathname)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
export function hasRemoteMatch(domains, remotePatterns, url) {
|
||||
return domains.some((domain)=>url.hostname === domain) || remotePatterns.some((p)=>matchRemotePattern(p, url));
|
||||
}
|
||||
|
||||
//# sourceMappingURL=match-remote-pattern.js.map
|
||||
Reference in New Issue
Block a user