vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
50 lines (47 loc) • 1.33 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import React__default from 'react';
import { join } from 'node:path';
function CssCollector({
children,
cssFiles,
moduleBaseURL,
route = "/"
}) {
const depth = route.split("/").filter(Boolean).length;
const prefix = depth > 0 ? "../".repeat(depth) : "./";
const base = typeof moduleBaseURL === "string" && moduleBaseURL !== "" ? moduleBaseURL : prefix;
const elements = cssFiles.map((file) => {
if (typeof file === "object" && !React__default.isValidElement(file)) {
return null;
}
if (typeof file === "string" && file.endsWith(".css")) {
let url = file;
if (file.startsWith("http") || file.startsWith("data:")) {
url = file;
} else if (file.startsWith("/")) {
url = base + file.slice(1);
} else if (!file.startsWith("./") && !file.startsWith("../")) {
url = join(base, file);
}
return React__default.createElement("link", {
key: file,
rel: "stylesheet",
href: url,
precedence: "high"
});
}
return null;
}).filter(Boolean);
return React__default.createElement(
React__default.Fragment,
null,
...elements,
children
);
}
export { CssCollector };
//# sourceMappingURL=css-collector.js.map