one
Version:
One is a new React Framework that makes Vite serve both native and web.
52 lines (51 loc) • 2.66 kB
JavaScript
import { matchDynamicName, matchGroupName } from "../router/matchers.native.js";
import { getParamName } from "./_shared.native.js";
function getPathWithConventionsCollapsed(param) {
var {
pattern,
route,
params,
preserveGroups,
preserveDynamicRoutes,
shouldEncodeURISegment = !0,
initialRouteName
} = param,
segments = pattern.split("/");
return segments.map(function (p, i) {
var name = getParamName(p);
if (p.startsWith("*")) {
var _route_name;
return preserveDynamicRoutes ? name === "not-found" ? "+not-found" : `[...${name}]` : params[name] ? Array.isArray(params[name]) ? params[name].join("/") : params[name] : route.name.startsWith("[") && route.name.endsWith("]") ? "" : i === 0 ? route : p === "*not-found" ? "" : (_route_name = route.name) === null || _route_name === void 0 ? void 0 : _route_name.split("/").slice(i + 1).join("/");
}
if (p.startsWith(":")) {
if (preserveDynamicRoutes) return `[${name}]`;
var value = params[name];
if (value === void 0 && p.endsWith("?")) return;
var _ref;
return (_ref = shouldEncodeURISegment ? encodeURISegment(value) : value) !== null && _ref !== void 0 ? _ref : "undefined";
}
return !preserveGroups && matchGroupName(p) != null ? segments.length - 1 === i && initialRouteName ? segmentMatchesConvention(initialRouteName) ? "" : shouldEncodeURISegment ? encodeURIComponentPreservingBrackets(initialRouteName) : initialRouteName : "" : shouldEncodeURISegment ? encodeURIComponentPreservingBrackets(p) : p;
}).map(function (v) {
return v ?? "";
}).join("/");
}
function encodeURIComponentPreservingBrackets(str) {
return encodeURIComponent(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
}
function appendBaseUrl(path) {
var baseUrl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.env.EXPO_BASE_URL;
return process.env.NODE_ENV !== "development" && baseUrl ? `/${baseUrl.replace(/^\/+/, "").replace(/\/$/, "")}${path}` : path;
}
function segmentMatchesConvention(segment) {
return segment === "index" || matchDynamicName(segment) != null || matchGroupName(segment) != null;
}
function encodeURISegment(str) {
var {
preserveBrackets = !1
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
return str = String(str).replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g, function (char) {
return encodeURIComponent(char);
}), preserveBrackets && (str = str.replace(/%5B/g, "[").replace(/%5D/g, "]")), str;
}
export { appendBaseUrl, getPathWithConventionsCollapsed };
//# sourceMappingURL=getPathFromState-mods.native.js.map