/** * Cross-platform path utilities for the renderer process. * * The renderer has no access to Node's `path` module, and session data * may originate from any OS, so all helpers handle both `/` and `\`. */const SEP_RE = /[\\/]/;/** * Returns the last segment of a path (the file or directory name). * Equivalent to `path.basename()` but handles both separators. */export function getBaseName(filePath: string): string { const parts = filePath.split(SEP_RE); return parts[parts.length - 1] || '';}/** * Returns the first meaningful segment of a path. * Leading empty segments (from absolute paths like `/foo`) are skipped. */export function getFirstSegment(filePath: string): string { const parts = filePath.split(SEP_RE).filter(Boolean); return parts[0] ?? '';}/** * Splits a path into non-empty segments. */export function splitPathSegments(filePath: string): string[] { return filePath.split(SEP_RE).filter(Boolean);}/** * Returns true if the string contains a path separator (`/` or `\`). */export function hasPathSeparator(filePath: string): boolean { return SEP_RE.test(filePath);}/** * Returns true if the path starts with `./`, `.\`, `../`, or `..\`. */export function isRelativePath(filePath: string): boolean { return /^\.\.?[\\/]/.test(filePath);}
/**
* Cross-platform path utilities for the renderer process.
*
* The renderer has no access to Node's `path` module, and session data
* may originate from any OS, so all helpers handle both `/` and `\`.
*/
const SEP_RE = /[\\/]/;
/**
* Returns the last segment of a path (the file or directory name).
* Equivalent to `path.basename()` but handles both separators.
*/
export function getBaseName(filePath: string): string {
const parts = filePath.split(SEP_RE);
return parts[parts.length - 1] || '';
}
/**
* Returns the first meaningful segment of a path.
* Leading empty segments (from absolute paths like `/foo`) are skipped.
*/
export function getFirstSegment(filePath: string): string {
const parts = filePath.split(SEP_RE).filter(Boolean);
return parts[0] ?? '';
}
/**
* Splits a path into non-empty segments.
*/
export function splitPathSegments(filePath: string): string[] {
return filePath.split(SEP_RE).filter(Boolean);
}
/**
* Returns true if the string contains a path separator (`/` or `\`).
*/
export function hasPathSeparator(filePath: string): boolean {
return SEP_RE.test(filePath);
}
/**
* Returns true if the path starts with `./`, `.\`, `../`, or `..\`.
*/
export function isRelativePath(filePath: string): boolean {
return /^\.\.?[\\/]/.test(filePath);
}