diff options
Diffstat (limited to 'src/environment-remote.ts')
-rw-r--r-- | src/environment-remote.ts | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/environment-remote.ts b/src/environment-remote.ts new file mode 100644 index 000000000..1ff019c5f --- /dev/null +++ b/src/environment-remote.ts | |||
@@ -0,0 +1,93 @@ | |||
1 | import { join } from 'path'; | ||
2 | import osName from 'os-name'; | ||
3 | import { api as electronApi } from 'electron-util'; | ||
4 | import { | ||
5 | LIVE_FERDI_API, | ||
6 | DEV_FRANZ_API, | ||
7 | LOCAL_API, | ||
8 | LOCAL_API_WEBSITE, | ||
9 | DEV_API_FRANZ_WEBSITE, | ||
10 | LIVE_API_FERDI_WEBSITE, | ||
11 | LIVE_WS_API, | ||
12 | LOCAL_WS_API, | ||
13 | DEV_WS_API, | ||
14 | LOCAL_TODOS_FRONTEND_URL, | ||
15 | PRODUCTION_TODOS_FRONTEND_URL, | ||
16 | } from './config'; | ||
17 | import { chromeVersion, electronVersion, isWindows, nodeVersion, osArch } from './environment'; | ||
18 | |||
19 | // @ts-expect-error Cannot find module './buildInfo.json' or its corresponding type declarations. | ||
20 | import * as buildInfo from './buildInfo.json'; | ||
21 | |||
22 | export const { app } = electronApi; | ||
23 | export const ferdiVersion = app.getVersion(); | ||
24 | export const ferdiLocale = app.getLocale(); | ||
25 | |||
26 | // Set app directory before loading user modules | ||
27 | if (process.env.FERDI_APPDATA_DIR != null) { | ||
28 | app.setPath('appData', process.env.FERDI_APPDATA_DIR); | ||
29 | app.setPath('userData', app.getPath('appData')); | ||
30 | } else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { | ||
31 | app.setPath('appData', join(process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`)); | ||
32 | app.setPath('userData', join(app.getPath('appData'), `${app.name}AppData`)); | ||
33 | } else if (isWindows && process.env.APPDATA != null) { | ||
34 | app.setPath('appData', process.env.APPDATA); | ||
35 | app.setPath('userData', join(app.getPath('appData'), app.name)); | ||
36 | } | ||
37 | |||
38 | export const isDevMode = process.env.ELECTRON_IS_DEV !== undefined ? Number.parseInt(process.env.ELECTRON_IS_DEV, 10) === 1 : !app.isPackaged; | ||
39 | if (isDevMode) { | ||
40 | app.setPath('userData', join(app.getPath('appData'), `${app.name}Dev`)); | ||
41 | } | ||
42 | |||
43 | export function userDataPath(...segments: string[]) { | ||
44 | return join(app.getPath('userData'), ...[segments].flat()); | ||
45 | } | ||
46 | |||
47 | export function userDataRecipesPath(...segments: any[]) { | ||
48 | return userDataPath('recipes', ...[segments].flat()); | ||
49 | } | ||
50 | |||
51 | const useLocalAPI = process.env.USE_LOCAL_API; | ||
52 | export const useLiveAPI = process.env.USE_LIVE_API; | ||
53 | |||
54 | let api: string; | ||
55 | let wsApi: string; | ||
56 | let web: string; | ||
57 | let todos: string; | ||
58 | if (!isDevMode || (isDevMode && useLiveAPI)) { | ||
59 | api = LIVE_FERDI_API; | ||
60 | wsApi = LIVE_WS_API; | ||
61 | web = LIVE_API_FERDI_WEBSITE; | ||
62 | todos = PRODUCTION_TODOS_FRONTEND_URL; | ||
63 | } else if (isDevMode && useLocalAPI) { | ||
64 | api = LOCAL_API; | ||
65 | wsApi = LOCAL_WS_API; | ||
66 | web = LOCAL_API_WEBSITE; | ||
67 | todos = LOCAL_TODOS_FRONTEND_URL; | ||
68 | } else { | ||
69 | api = DEV_FRANZ_API; | ||
70 | wsApi = DEV_WS_API; | ||
71 | web = DEV_API_FRANZ_WEBSITE; | ||
72 | todos = PRODUCTION_TODOS_FRONTEND_URL; | ||
73 | } | ||
74 | |||
75 | export const API = api; | ||
76 | export const API_VERSION = 'v1'; | ||
77 | export const WS_API = wsApi; | ||
78 | export const WEBSITE = web; | ||
79 | export const TODOS_FRONTEND = todos; | ||
80 | |||
81 | export function aboutAppDetails() { | ||
82 | return [ | ||
83 | `Version: ${ferdiVersion}`, | ||
84 | `Electron: ${electronVersion}`, | ||
85 | `Chrome: ${chromeVersion}`, | ||
86 | `Node.js: ${nodeVersion}`, | ||
87 | `Platform: ${osName()}`, | ||
88 | `Arch: ${osArch}`, | ||
89 | `Build date: ${new Date(Number(buildInfo.timestamp))}`, | ||
90 | `Git SHA: ${buildInfo.gitHashShort}`, | ||
91 | `Git branch: ${buildInfo.gitBranch}`, | ||
92 | ].join('\n'); | ||
93 | } | ||