UNPKG

fumadocs-core

Version:

The React.js library for building a documentation website

60 lines (58 loc) 1.54 kB
import { n as __exportAll } from "./chunk-B-ezknvj.js"; //#region src/source/path.ts var path_exports = /* @__PURE__ */ __exportAll({ basename: () => basename, dirname: () => dirname, extname: () => extname, joinPath: () => joinPath, slash: () => slash, splitPath: () => splitPath }); function basename(path, ext) { const idx = path.lastIndexOf("/"); return path.substring(idx === -1 ? 0 : idx + 1, ext ? path.length - ext.length : path.length); } function extname(path) { const dotIdx = path.lastIndexOf("."); if (dotIdx !== -1) return path.substring(dotIdx); return ""; } function dirname(path) { return path.split("/").slice(0, -1).join("/"); } /** * Split path into segments, trailing/leading slashes are removed */ function splitPath(path) { return path.split("/").filter((p) => p.length > 0); } /** * Resolve paths, slashes within the path will be ignored * @param paths - Paths to join * @example * ``` * ['a','b'] // 'a/b' * ['/a'] // 'a' * ['a', '/b'] // 'a/b' * ['a', '../b/c'] // 'b/c' * ``` */ function joinPath(...paths) { const out = []; const parsed = paths.flatMap(splitPath); for (const seg of parsed) switch (seg) { case "..": out.pop(); break; case ".": break; default: out.push(seg); } return out.join("/"); } function slash(path) { if (path.startsWith("\\\\?\\")) return path; return path.replaceAll("\\", "/"); } //#endregion export { path_exports as a, joinPath as i, dirname as n, slash as o, extname as r, splitPath as s, basename as t }; //# sourceMappingURL=path-DHIjrDBP.js.map