vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
27 lines (25 loc) • 3.16 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
const routeToURL = (route, baseURL, fileName = "index.rsc") => {
let url = !route || route === "" ? "/" : route;
const shouldRemoveBaseURL = baseURL !== "" && url.startsWith(baseURL);
if (shouldRemoveBaseURL) {
url = url.slice(baseURL.length);
}
const shouldRemoveFileName = url.endsWith(fileName);
if (shouldRemoveFileName) {
url = url.slice(0, -fileName.length);
}
if (url.startsWith("/") && baseURL.endsWith("/")) {
url = url.slice(1);
}
if (!url.endsWith("/")) {
url = `${url}/`;
}
return `${url}`;
};
export { routeToURL };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVUb1VSTC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3V0aWxzL3JvdXRlVG9VUkwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaW1wbGlmaWVzIHRoZSByb3V0ZSBzdHJpbmcgdG8gYSBzdHJpbmcgdG8gY2FuIGJlIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBiYXNlIFVSTC5cbiAqIFxuICogUGFzcyB0aGUgY29uZmlndXJlZCBiYXNlVVJMIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgcm91dGUuXG4gKiBcbiAqIEBwYXJhbSByb3V0ZSAtIFRoZSByb3V0ZSB0byBjb252ZXJ0IHRvIGEgVVJMLlxuICogQHBhcmFtIGJhc2VVUkwgLSBUaGUgYmFzZSBVUkwgdG8gdXNlLlxuICogQHBhcmFtIGZpbGVOYW1lIC0gVGhlIGZpbGUgbmFtZSB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgVVJMLlxuICovXG5leHBvcnQgY29uc3Qgcm91dGVUb1VSTCA9IChcbiAgcm91dGU6IHN0cmluZyxcbiAgYmFzZVVSTDogc3RyaW5nLFxuICBmaWxlTmFtZTogc3RyaW5nID0gXCJpbmRleC5yc2NcIlxuKSA9PiB7XG4gIGxldCB1cmwgPSAhcm91dGUgfHwgcm91dGUgPT09IFwiXCIgPyBcIi9cIiA6IHJvdXRlO1xuICBjb25zdCBzaG91bGRSZW1vdmVCYXNlVVJMID1cbiAgICBiYXNlVVJMICE9PSBcIlwiICYmIHVybC5zdGFydHNXaXRoKGJhc2VVUkwpO1xuICBpZiAoc2hvdWxkUmVtb3ZlQmFzZVVSTCkge1xuICAgIHVybCA9IHVybC5zbGljZShiYXNlVVJMLmxlbmd0aCk7XG4gIH1cbiAgY29uc3Qgc2hvdWxkUmVtb3ZlRmlsZU5hbWUgPSB1cmwuZW5kc1dpdGgoZmlsZU5hbWUpO1xuICBpZiAoc2hvdWxkUmVtb3ZlRmlsZU5hbWUpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMCwgLWZpbGVOYW1lLmxlbmd0aCk7XG4gIH1cbiAgaWYodXJsLnN0YXJ0c1dpdGgoJy8nKSAmJiBiYXNlVVJMLmVuZHNXaXRoKCcvJykpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSk7XG4gIH1cbiAgaWYoIXVybC5lbmRzV2l0aCgnLycpKSB7XG4gICAgdXJsID0gYCR7dXJsfS9gO1xuICB9XG4gIHJldHVybiBgJHt1cmx9YDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVTyxNQUFNLFVBQWEsR0FBQSxDQUN4QixLQUNBLEVBQUEsT0FBQSxFQUNBLFdBQW1CLFdBQ2hCLEtBQUE7QUFDSCxFQUFBLElBQUksR0FBTSxHQUFBLENBQUMsS0FBUyxJQUFBLEtBQUEsS0FBVSxLQUFLLEdBQU0sR0FBQSxLQUFBO0FBQ3pDLEVBQUEsTUFBTSxtQkFDSixHQUFBLE9BQUEsS0FBWSxFQUFNLElBQUEsR0FBQSxDQUFJLFdBQVcsT0FBTyxDQUFBO0FBQzFDLEVBQUEsSUFBSSxtQkFBcUIsRUFBQTtBQUN2QixJQUFNLEdBQUEsR0FBQSxHQUFBLENBQUksS0FBTSxDQUFBLE9BQUEsQ0FBUSxNQUFNLENBQUE7QUFBQTtBQUVoQyxFQUFNLE1BQUEsb0JBQUEsR0FBdUIsR0FBSSxDQUFBLFFBQUEsQ0FBUyxRQUFRLENBQUE7QUFDbEQsRUFBQSxJQUFJLG9CQUFzQixFQUFBO0FBQ3hCLElBQUEsR0FBQSxHQUFNLEdBQUksQ0FBQSxLQUFBLENBQU0sQ0FBRyxFQUFBLENBQUMsU0FBUyxNQUFNLENBQUE7QUFBQTtBQUVyQyxFQUFBLElBQUcsSUFBSSxVQUFXLENBQUEsR0FBRyxLQUFLLE9BQVEsQ0FBQSxRQUFBLENBQVMsR0FBRyxDQUFHLEVBQUE7QUFDL0MsSUFBTSxHQUFBLEdBQUEsR0FBQSxDQUFJLE1BQU0sQ0FBQyxDQUFBO0FBQUE7QUFFbkIsRUFBQSxJQUFHLENBQUMsR0FBQSxDQUFJLFFBQVMsQ0FBQSxHQUFHLENBQUcsRUFBQTtBQUNyQixJQUFBLEdBQUEsR0FBTSxHQUFHLEdBQUcsQ0FBQSxDQUFBLENBQUE7QUFBQTtBQUVkLEVBQUEsT0FBTyxHQUFHLEdBQUcsQ0FBQSxDQUFBO0FBQ2Y7Ozs7In0=