| 123456789101112131415161718192021222324 |
- import path from "path"
- import { abbreviateHome } from "../runtime"
- import { useLocation } from "./location"
- import { useTuiPaths } from "./runtime"
- export function usePathFormatter() {
- const paths = useTuiPaths()
- const location = useLocation()
- return {
- path: () => location()?.directory || paths.cwd,
- format: (input?: string) => formatPath(input, location()?.directory || paths.cwd, paths.home),
- }
- }
- function formatPath(input: string | undefined, base: string, home: string) {
- if (typeof input !== "string" || !input) return ""
- const absolute = path.isAbsolute(input) ? input : path.resolve(base, input)
- const relative = path.relative(base, absolute)
- if (!relative) return "."
- if (relative !== ".." && !relative.startsWith(".." + path.sep)) return relative
- return abbreviateHome(absolute, home)
- }
|