cables_dev/cables_electron/src/cables.js
- // hallo1234
- import { utilProvider, Cables } from "cables-shared-api";
- import { app } from "electron";
- import path from "path";
- import fs from "fs";
- import mkdirp from "mkdirp";
- import { fileURLToPath } from "url";
- import settings from "./electron/electron_settings.js";
-
- class CablesElectron extends Cables
- {
- constructor(provider, dirName, writableDirName, configLocation)
- {
- super(provider, dirName, writableDirName, configLocation);
- this._config.isPackaged = app.isPackaged;
- this._config.uiIndexHtml = path.join(this.getUiDistPath(), "index.html");
- if (writableDirName && !fs.existsSync(path.join(writableDirName, "/ops"))) mkdirp.sync(path.join(writableDirName, "/ops"));
- }
-
- isStandalone()
- {
- return true;
- }
-
- getCommunityUrl()
- {
- return this._config.communityUrl;
- }
-
- isPackaged()
- {
- return this._config.isPackaged;
- }
-
- sendErrorReports()
- {
- return this._config.isPackaged || this._config.forceSendErrorReports;
- }
-
- getStandaloneDistPath()
- {
- if (this._config.path.standaloneDist)
- {
- return path.join(this._dirname, this._config.path.standaloneDist);
- }
- return path.join(this.getApiPath(), "dist");
- }
-
- getAssetPath()
- {
- const currentProjectDir = settings.getCurrentProjectDir();
- let assetPath = "";
- if (!currentProjectDir)
- {
- assetPath = path.join(this._writeableDirName, "assets/");
- }
- else
- {
- assetPath = path.join(currentProjectDir);
- }
- if (!fs.existsSync(assetPath)) mkdirp.sync(assetPath);
- return assetPath;
- }
-
- getAssetLibraryPath()
- {
- if (!this._config.path.assets) path.join(this.getPublicPath(), "assets/library/");
- return this._config.path.assets.startsWith("/") ? this._config.path.assets : path.join(this._dirname, this._config.path.assets, "library/");
- }
-
- getExportAssetTargetPath()
- {
- return "";
- }
-
- getGenPath()
- {
- const genPath = path.join(this._writeableDirName, "gen/");
- if (!fs.existsSync(genPath)) mkdirp.sync(genPath);
- return genPath;
- }
-
- getOpDocsCachePath()
- {
- const cachePath = path.join(this.getGenPath(), "opdocs_collections/");
- if (!fs.existsSync(cachePath)) mkdirp.sync(cachePath);
- return cachePath;
- }
-
- getUserOpsPath()
- {
- if (!settings.getCurrentProjectDir()) return path.join(this.getOpsPath(), "/", this.USER_OPS_SUBDIR);
- return path.join(settings.getCurrentProjectDir(), "/ops/", this.USER_OPS_SUBDIR);
- }
-
- getTeamOpsPath()
- {
- if (!settings.getCurrentProjectDir()) return path.join(this.getOpsPath(), "/", this.TEAM_OPS_SUBDIR);
- return path.join(settings.getCurrentProjectDir(), "/ops/", this.TEAM_OPS_SUBDIR);
- }
-
- getPatchOpsPath()
- {
- if (!settings.getCurrentProjectDir()) return path.join(this.getOpsPath(), "/", this.PATCH_OPS_SUBDIR);
- return path.join(settings.getCurrentProjectDir(), "/ops/", this.PATCH_OPS_SUBDIR);
- }
-
- getProjectOpsPath(create = false)
- {
- if (!settings.getCurrentProjectDir()) return null;
- const opsPath = path.join(settings.getCurrentProjectDir(), "/ops/");
- if (create && !fs.existsSync(opsPath)) mkdirp.sync(opsPath);
- return opsPath;
- }
-
- getOsOpsDir()
- {
- return path.join(app.getPath("userData"), "ops/");
- }
-
- _createDirectories()
- {
- if (!fs.existsSync(this.getGenPath())) mkdirp.sync(this.getGenPath());
- if (!fs.existsSync(this.getOpDocsCachePath())) mkdirp.sync(this.getOpDocsCachePath());
- if (!fs.existsSync(this.getOpDocsFile()))
- {
- if (!fs.existsSync(this.getOpDocsFile())) fs.writeFileSync(this.getOpDocsFile(), JSON.stringify({ "generated": Date.now(), "opDocs": [] }));
- }
- if (!fs.existsSync(this.getOpLookupFile())) fs.writeFileSync(this.getOpLookupFile(), JSON.stringify({ "names": {}, "ids": {} }));
- }
- }
-
- const metaUrl = new URL(".", import.meta.url);
- const __dirname = fileURLToPath(metaUrl.href);
- const customConfig = process.env.npm_config_apiconfig;
- let configLocation = null;
- if (customConfig)
- {
- configLocation = "../cables_env_" + process.env.npm_config_apiconfig + ".json";
- configLocation = path.join(__dirname, configLocation);
- if (!fs.existsSync(configLocation))
- {
- console.error("custom config set to ", configLocation, "but file does not exists, do you need to run `npm run build`?");
- process.exit(1);
- }
- }
- export default new CablesElectron(utilProvider, __dirname, app.getPath("userData"), configLocation);