UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

52 lines (51 loc) 2.66 kB
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