Add support for css @import rules

This commit is contained in:
YourAdHere 2024-06-25 20:49:48 -07:00 committed by GitHub
parent 2e962ee1dc
commit 4825712cba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,7 +1,11 @@
import { encodeUrl } from "./url" import { encodeUrl } from "./url";
export function rewriteCss(css: string, origin?: URL) { export function rewriteCss(css: string, origin?: URL) {
css = css.replace(/(?<=url\("?'?)[^"'][\S]*[^"'](?="?'?\);?)/g, (match) => encodeUrl(match, origin)); css = css.replace(/(?<=url\("?'?)[^"'][\S]*[^"'](?="?'?\);?)/g, (match) => encodeUrl(match, origin));
//painful regex simulator
css = css.replace(/@import\s+(['"])?([^'"\);]+)\1?\s*(?:;|$)/g, (match, quote, url) => {
return `@import ${quote || ""}${encodeUrl(url.trim(), origin)}${quote || ""};`;
});
return css; return css;
}
}