aboutsummaryrefslogtreecommitdiffstats
path: root/src/environment.ts
diff options
context:
space:
mode:
authorLibravatar Vijay A <vraravam@users.noreply.github.com>2021-10-01 21:51:55 +0530
committerLibravatar Vijay A <vraravam@users.noreply.github.com>2021-10-01 21:51:55 +0530
commit204a80708e6e0a2189de16438a3eb4b57ef84987 (patch)
treea8fa3afb58dbfec67bced4281837d33fd4e71413 /src/environment.ts
parentrefactor: move 'asarRecipesPath' into 'asar-helpers' (diff)
downloadferdium-app-204a80708e6e0a2189de16438a3eb4b57ef84987.tar.gz
ferdium-app-204a80708e6e0a2189de16438a3eb4b57ef84987.tar.zst
ferdium-app-204a80708e6e0a2189de16438a3eb4b57ef84987.zip
refactor: split 'environment' into 'environment-remote' with only the remote module dependency
(might be a pre-requisite for the electron v14 upgrade)
Diffstat (limited to 'src/environment.ts')
-rw-r--r--src/environment.ts91
1 files changed, 1 insertions, 90 deletions
diff --git a/src/environment.ts b/src/environment.ts
index 9478f803c..99002367f 100644
--- a/src/environment.ts
+++ b/src/environment.ts
@@ -1,69 +1,21 @@
1import os from 'os'; 1import os from 'os';
2import { join } from 'path';
3
4import { api as electronApi } from 'electron-util';
5 2
6import { DEFAULT_ACCENT_COLOR } from '@meetfranz/theme'; 3import { DEFAULT_ACCENT_COLOR } from '@meetfranz/theme';
7 4
8import osName from 'os-name';
9import { 5import {
10 LIVE_FERDI_API, 6 LIVE_FERDI_API,
11 DEV_FRANZ_API,
12 LOCAL_API,
13 LOCAL_API_WEBSITE,
14 DEV_API_FRANZ_WEBSITE,
15 LIVE_API_FERDI_WEBSITE,
16 LIVE_WS_API,
17 LOCAL_WS_API,
18 DEV_WS_API,
19 LOCAL_TODOS_FRONTEND_URL,
20 PRODUCTION_TODOS_FRONTEND_URL,
21 DEFAULT_TODO_SERVICE, 7 DEFAULT_TODO_SERVICE,
22 SEARCH_ENGINE_DDG, 8 SEARCH_ENGINE_DDG,
23 iconSizeBias, 9 iconSizeBias,
24} from './config'; 10} from './config';
25 11
26// @ts-expect-error Cannot find module './buildInfo.json' or its corresponding type declarations.
27import * as buildInfo from './buildInfo.json';
28
29export const isMac = process.platform === 'darwin'; 12export const isMac = process.platform === 'darwin';
30export const isWindows = process.platform === 'win32'; 13export const isWindows = process.platform === 'win32';
31export const isLinux = process.platform === 'linux'; 14export const isLinux = process.platform === 'linux';
32 15
33export const { app } = electronApi;
34export const ferdiVersion = app.getVersion();
35export const electronVersion = process.versions.electron; 16export const electronVersion = process.versions.electron;
36export const chromeVersion = process.versions.chrome; 17export const chromeVersion = process.versions.chrome;
37export const nodeVersion = process.versions.node; 18export const nodeVersion = process.versions.node;
38export const ferdiLocale = app.getLocale();
39
40// Set app directory before loading user modules
41if (process.env.FERDI_APPDATA_DIR != null) {
42 app.setPath('appData', process.env.FERDI_APPDATA_DIR);
43 app.setPath('userData', app.getPath('appData'));
44} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) {
45 app.setPath('appData', join(process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`));
46 app.setPath('userData', join(app.getPath('appData'), `${app.name}AppData`));
47} else if (isWindows && process.env.APPDATA != null) {
48 app.setPath('appData', process.env.APPDATA);
49 app.setPath('userData', join(app.getPath('appData'), app.name));
50}
51
52export const isDevMode = process.env.ELECTRON_IS_DEV !== undefined ? Number.parseInt(process.env.ELECTRON_IS_DEV, 10) === 1 : !app.isPackaged;
53if (isDevMode) {
54 app.setPath('userData', join(app.getPath('appData'), `${app.name}Dev`));
55}
56
57export function userDataPath(...segments: string[]) {
58 return join(app.getPath('userData'), ...[segments].flat());
59}
60
61export function userDataRecipesPath(...segments: any[]) {
62 return userDataPath('recipes', ...[segments].flat());
63}
64
65export const useLiveAPI = process.env.USE_LIVE_API;
66const useLocalAPI = process.env.USE_LOCAL_API;
67 19
68export const osPlatform = os.platform(); 20export const osPlatform = os.platform();
69export const osArch = os.arch(); 21export const osArch = os.arch();
@@ -96,33 +48,6 @@ export const addNewServiceShortcutKey = (isAccelerator = true) =>
96export const settingsShortcutKey = (isAccelerator = true) => 48export const settingsShortcutKey = (isAccelerator = true) =>
97 `${cmdOrCtrlShortcutKey(isAccelerator)}+${isMac ? ',' : 'P'}`; 49 `${cmdOrCtrlShortcutKey(isAccelerator)}+${isMac ? ',' : 'P'}`;
98 50
99let api: string;
100let wsApi: string;
101let web: string;
102let todos: string;
103if (!isDevMode || (isDevMode && useLiveAPI)) {
104 api = LIVE_FERDI_API;
105 wsApi = LIVE_WS_API;
106 web = LIVE_API_FERDI_WEBSITE;
107 todos = PRODUCTION_TODOS_FRONTEND_URL;
108} else if (isDevMode && useLocalAPI) {
109 api = LOCAL_API;
110 wsApi = LOCAL_WS_API;
111 web = LOCAL_API_WEBSITE;
112 todos = LOCAL_TODOS_FRONTEND_URL;
113} else {
114 api = DEV_FRANZ_API;
115 wsApi = DEV_WS_API;
116 web = DEV_API_FRANZ_WEBSITE;
117 todos = PRODUCTION_TODOS_FRONTEND_URL;
118}
119
120export const API = api;
121export const API_VERSION = 'v1';
122export const WS_API = wsApi;
123export const WEBSITE = web;
124export const TODOS_FRONTEND = todos;
125
126export const DEFAULT_APP_SETTINGS = { 51export const DEFAULT_APP_SETTINGS = {
127 autoLaunchInBackground: false, 52 autoLaunchInBackground: false,
128 runInBackground: true, 53 runInBackground: true,
@@ -140,7 +65,7 @@ export const DEFAULT_APP_SETTINGS = {
140 showDragArea: false, 65 showDragArea: false,
141 enableSpellchecking: true, 66 enableSpellchecking: true,
142 spellcheckerLanguage: 'en-us', 67 spellcheckerLanguage: 'en-us',
143 darkMode: isMac && electronApi.nativeTheme.shouldUseDarkColors, 68 darkMode: false,
144 splitMode: false, 69 splitMode: false,
145 locale: '', 70 locale: '',
146 fallbackLocale: 'en-US', 71 fallbackLocale: 'en-US',
@@ -178,17 +103,3 @@ export const DEFAULT_APP_SETTINGS = {
178 alwaysShowWorkspaces: false, 103 alwaysShowWorkspaces: false,
179 liftSingleInstanceLock: false, 104 liftSingleInstanceLock: false,
180}; 105};
181
182export function aboutAppDetails() {
183 return [
184 `Version: ${ferdiVersion}`,
185 `Electron: ${electronVersion}`,
186 `Chrome: ${chromeVersion}`,
187 `Node.js: ${nodeVersion}`,
188 `Platform: ${osName()}`,
189 `Arch: ${osArch}`,
190 `Build date: ${new Date(Number(buildInfo.timestamp))}`,
191 `Git SHA: ${buildInfo.gitHashShort}`,
192 `Git branch: ${buildInfo.gitBranch}`,
193 ].join('\n');
194}