aboutsummaryrefslogtreecommitdiffstats
path: root/src/environment.js
diff options
context:
space:
mode:
authorLibravatar Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com>2021-08-08 00:01:37 +0000
committerLibravatar GitHub <noreply@github.com>2021-08-08 05:31:37 +0530
commit97d51a7763b14c92ee71ff9a012311dd9498d803 (patch)
treebd36005031ecb1148f27aa541e7a92a5e3aa4c0c /src/environment.js
parent5.6.1-nightly.17 [skip ci] (diff)
downloadferdium-app-97d51a7763b14c92ee71ff9a012311dd9498d803.tar.gz
ferdium-app-97d51a7763b14c92ee71ff9a012311dd9498d803.tar.zst
ferdium-app-97d51a7763b14c92ee71ff9a012311dd9498d803.zip
refactor: path-references refactoring and using 'import' instead of 'require' (#1752)
* refactor references to 'userData' and 'appData' directories to move hardcoding into single location * convert to es6 for lower memory usage as per https://codesource.io/the-difference-between-import-and-require-in-javascript/
Diffstat (limited to 'src/environment.js')
-rw-r--r--src/environment.js25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/environment.js b/src/environment.js
index 7b560acb6..7267f93a6 100644
--- a/src/environment.js
+++ b/src/environment.js
@@ -1,10 +1,11 @@
1import os from 'os'; 1import os from 'os';
2import path from 'path'; 2import { join } from 'path';
3 3
4import { is, api as electronApi } from 'electron-util'; 4import { is, api as electronApi } from 'electron-util';
5 5
6import { DEFAULT_ACCENT_COLOR } from '@meetfranz/theme'; 6import { DEFAULT_ACCENT_COLOR } from '@meetfranz/theme';
7 7
8import osName from 'os-name';
8import { 9import {
9 LIVE_FERDI_API, 10 LIVE_FERDI_API,
10 DEV_FRANZ_API, 11 DEV_FRANZ_API,
@@ -25,8 +26,6 @@ import {
25import { asarPath } from './helpers/asar-helpers'; 26import { asarPath } from './helpers/asar-helpers';
26import * as buildInfo from './buildInfo.json'; // eslint-disable-line import/no-unresolved 27import * as buildInfo from './buildInfo.json'; // eslint-disable-line import/no-unresolved
27 28
28const osName = require('os-name');
29
30export const { app } = electronApi; 29export const { app } = electronApi;
31export const ferdiVersion = app.getVersion(); 30export const ferdiVersion = app.getVersion();
32export const electronVersion = process.versions.electron; 31export const electronVersion = process.versions.electron;
@@ -36,24 +35,32 @@ export const nodeVersion = process.versions.node;
36// Set app directory before loading user modules 35// Set app directory before loading user modules
37if (process.env.FERDI_APPDATA_DIR != null) { 36if (process.env.FERDI_APPDATA_DIR != null) {
38 app.setPath('appData', process.env.FERDI_APPDATA_DIR); 37 app.setPath('appData', process.env.FERDI_APPDATA_DIR);
39 app.setPath('userData', path.join(app.getPath('appData'))); 38 app.setPath('userData', join(app.getPath('appData')));
40} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { 39} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) {
41 app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`); 40 app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`);
42 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}AppData`)); 41 app.setPath('userData', join(app.getPath('appData'), `${app.name}AppData`));
43} else if (is.windows) { 42} else if (is.windows) {
44 app.setPath('appData', process.env.APPDATA); 43 app.setPath('appData', process.env.APPDATA);
45 app.setPath('userData', path.join(app.getPath('appData'), app.name)); 44 app.setPath('userData', join(app.getPath('appData'), app.name));
46} 45}
47 46
48export const isDevMode = is.development; 47export const isDevMode = is.development;
49if (isDevMode) { 48if (isDevMode) {
50 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}Dev`)); 49 app.setPath('userData', join(app.getPath('appData'), `${app.name}Dev`));
51} 50}
52 51
53export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config'); 52export function userDataPath(...segments) {
53 return join(app.getPath('userData'), ...([segments].flat()));
54}
55
56export function userDataRecipesPath(...segments) {
57 return userDataPath('recipes', ...([segments].flat()));
58}
54 59
55// Replacing app.asar is not beautiful but unfortunately necessary 60// Replacing app.asar is not beautiful but unfortunately necessary
56export const RECIPES_PATH = asarPath(path.join(__dirname, 'recipes')); 61export function asarRecipesPath(...segments) {
62 return join(asarPath(join(__dirname, 'recipes')), ...([segments].flat()));
63}
57 64
58export const useLiveAPI = process.env.USE_LIVE_API; 65export const useLiveAPI = process.env.USE_LIVE_API;
59const useLocalAPI = process.env.USE_LOCAL_API; 66const useLocalAPI = process.env.USE_LOCAL_API;