one
Version:
One is a new React Framework that makes Vite serve both native and web.
65 lines (64 loc) • 2.64 kB
JavaScript
import { stripBaseUrl } from "../fork/getStateFromPath-mods.native.js";
function stripPathSuffix(path) {
var queryIndex = path.indexOf("?");
var hashIndex = path.indexOf("#");
var end = path.length;
if (queryIndex >= 0) end = Math.min(end, queryIndex);
if (hashIndex >= 0) end = Math.min(end, hashIndex);
return path.slice(0, end);
}
function stripTrailingSlash(pathname) {
return pathname.length > 1 && pathname.endsWith("/") ? pathname.slice(0, -1) : pathname;
}
function normalizeRoutePathname(pathname) {
return stripTrailingSlash(stripBaseUrl(stripPathSuffix(pathname)));
}
function hasLostDynamicSegment(path) {
return stripPathSuffix(path).split("/").includes("undefined");
}
function getSafeWindowPathname() {
if (typeof window === "undefined" || !window.location || typeof window.location.pathname !== "string") {
return void 0;
}
return window.location.pathname;
}
function getSafeWindowPath() {
var pathname = getSafeWindowPathname();
if (pathname === void 0) return void 0;
return pathname + (window.location.search || "");
}
function getPathWithRecoveredDynamicSegment(paths) {
var fallbackPath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getSafeWindowPath();
var _iteratorNormalCompletion = true,
_didIteratorError = false,
_iteratorError = void 0;
try {
for (var _iterator = paths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var path = _step.value;
if (path !== void 0 && !hasLostDynamicSegment(path)) {
return path;
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return fallbackPath;
}
function getPathnameWithRecoveredDynamicSegment(pathname) {
var fallbackPath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getSafeWindowPath();
var _getPathWithRecoveredDynamicSegment;
return normalizeRoutePathname((_getPathWithRecoveredDynamicSegment = getPathWithRecoveredDynamicSegment([pathname], fallbackPath)) !== null && _getPathWithRecoveredDynamicSegment !== void 0 ? _getPathWithRecoveredDynamicSegment : pathname);
}
export { getPathWithRecoveredDynamicSegment, getPathnameWithRecoveredDynamicSegment, getSafeWindowPath, getSafeWindowPathname, hasLostDynamicSegment, normalizeRoutePathname, stripTrailingSlash };
//# sourceMappingURL=path.native.js.map