cables_dev/cables_electron/src/utils/helper_util.js
- import { SharedHelperUtil, utilProvider } from "cables-shared-api";
- import path from "path";
- import { fileURLToPath, pathToFileURL } from "url";
- import cables from "../cables.js";
- import settings from "../electron/electron_settings.js";
-
- class HelperUtil extends SharedHelperUtil
- {
- constructor(provider)
- {
- super(provider);
- }
-
- fileURLToPath(url, convertRelativeToProject = false)
- {
- if (!url || url === "0") return "";
- if (url.includes("://") && !url.startsWith("file://"))
- {
- return "";
- }
-
- let fileUrl = decodeURI(url);
- let filePath = fileUrl;
-
- const uiDistPath = cables.getUiDistPath();
- filePath = filePath.replace("file://" + uiDistPath, "");
- if (convertRelativeToProject && !filePath.startsWith("file:") && !path.isAbsolute(filePath))
- {
- filePath = path.join(cables.getAssetPath(), filePath);
- try
- {
- fileUrl = pathToFileURL(filePath);
- }
- catch (e)
- {
- this._log.error("failed to convert to project path", url, filePath, e);
- return "";
- }
- }
- try
- {
- return fileURLToPath(fileUrl);
- }
- catch (e)
- {
- this._log.info("failed to create path from url", convertRelativeToProject, fileUrl, url, e);
- return "";
- }
- }
-
- pathToFileURL(thePath, convertRelativeToProject = false)
- {
- if (thePath && thePath.startsWith("file:")) return thePath;
- if (convertRelativeToProject && !path.isAbsolute(thePath))
- {
- return pathToFileURL(path.join(cables.getAssetPath(), thePath)).href;
- }
- else
- {
- return thePath ? pathToFileURL(thePath).href : null;
- }
- }
-
- isLocalAssetPath(thePath)
- {
- const currentProjectDir = settings.getCurrentProjectDir();
- return (currentProjectDir && thePath.startsWith(currentProjectDir));
- }
- }
- export default new HelperUtil(utilProvider);