Files
11cafe-comfyui-workspace-ma…/ui/src/utils/OsPathUtils.ts
T
2024-06-20 10:56:35 +08:00

40 lines
1.1 KiB
TypeScript

import type { Workflow } from "../types/dbTypes";
export const serverInfo: {
os: "Windows" | "Linux" | "Darwin" | "Java" | null;
} = {
os: null,
};
export const getPathSep = () => (serverInfo.os === "Windows" ? "\\" : "/");
export function joinRelPath(...segments: string[]) {
const rel = segments.filter((segment) => segment !== "").join("/");
return sanitizeRelPath(rel);
}
export function sanitizeRelPath(path: string) {
const segments = path
.split("/")
.filter((segment) => segment !== "")
.join("/");
// Replace backslashes with forward slashes to handle Windows paths
let sanitizedPath = segments.replace(/\\/g, "/");
// Remove leading slashes to ensure the path is treated as relative
sanitizedPath = sanitizedPath.replace(/^\/+/, "");
if (serverInfo.os === "Windows") {
sanitizedPath = segments.replace(/\//g, "\\");
}
return sanitizedPath;
}
export function getWorkflowRelPath(workflow: Workflow) {
return joinRelPath(workflow.parentFolderID ?? "", workflow.name + ".json");
}
export function getFolderRelPath(folder: { id: string }) {
return folder.id;
}