diff --git a/app/renderer/js/utils/config-util.ts b/app/common/config-util.ts similarity index 100% rename from app/renderer/js/utils/config-util.ts rename to app/common/config-util.ts diff --git a/app/renderer/js/utils/default-util.ts b/app/common/default-util.ts similarity index 100% rename from app/renderer/js/utils/default-util.ts rename to app/common/default-util.ts diff --git a/app/renderer/js/utils/dnd-util.ts b/app/common/dnd-util.ts similarity index 100% rename from app/renderer/js/utils/dnd-util.ts rename to app/common/dnd-util.ts diff --git a/app/renderer/js/utils/enterprise-util.ts b/app/common/enterprise-util.ts similarity index 100% rename from app/renderer/js/utils/enterprise-util.ts rename to app/common/enterprise-util.ts diff --git a/app/renderer/js/utils/logger-util.ts b/app/common/logger-util.ts similarity index 100% rename from app/renderer/js/utils/logger-util.ts rename to app/common/logger-util.ts diff --git a/app/resources/messages.ts b/app/common/messages.ts similarity index 100% rename from app/resources/messages.ts rename to app/common/messages.ts diff --git a/app/renderer/js/utils/sentry-util.ts b/app/common/sentry-util.ts similarity index 100% rename from app/renderer/js/utils/sentry-util.ts rename to app/common/sentry-util.ts diff --git a/app/renderer/js/utils/translation-util.ts b/app/common/translation-util.ts similarity index 87% rename from app/renderer/js/utils/translation-util.ts rename to app/common/translation-util.ts index de14c058..55e046bb 100644 --- a/app/renderer/js/utils/translation-util.ts +++ b/app/common/translation-util.ts @@ -5,7 +5,7 @@ import i18n from 'i18n'; import * as ConfigUtil from './config-util'; i18n.configure({ - directory: path.join(__dirname, '../../../translations/'), + directory: path.join(__dirname, '../translations/'), updateFiles: false }); diff --git a/app/common/types.ts b/app/common/types.ts new file mode 100644 index 00000000..98a1e863 --- /dev/null +++ b/app/common/types.ts @@ -0,0 +1,12 @@ +export interface ServerConf { + url: string; + alias?: string; + icon?: string; +} + +export interface TabData { + role: string; + name: string; + index: number; + webviewName: string; +} diff --git a/app/main/autoupdater.ts b/app/main/autoupdater.ts index 5890aae6..e86fab6f 100644 --- a/app/main/autoupdater.ts +++ b/app/main/autoupdater.ts @@ -5,7 +5,7 @@ import log from 'electron-log'; import type {UpdateDownloadedEvent, UpdateInfo} from 'electron-updater'; import {autoUpdater} from 'electron-updater'; -import * as ConfigUtil from '../renderer/js/utils/config-util'; +import * as ConfigUtil from '../common/config-util'; import {linuxUpdateNotification} from './linuxupdater'; // Required only in case of linux diff --git a/app/renderer/js/pages/preference/badge-settings.ts b/app/main/badge-settings.ts similarity index 95% rename from app/renderer/js/pages/preference/badge-settings.ts rename to app/main/badge-settings.ts index ebbd1a1a..efa2ac00 100644 --- a/app/renderer/js/pages/preference/badge-settings.ts +++ b/app/main/badge-settings.ts @@ -1,6 +1,6 @@ import electron, {app} from 'electron'; -import * as ConfigUtil from '../../utils/config-util'; +import * as ConfigUtil from '../common/config-util'; function showBadgeCount(messageCount: number, mainWindow: electron.BrowserWindow): void { if (process.platform === 'win32') { diff --git a/app/main/index.ts b/app/main/index.ts index 23757f11..781d1300 100644 --- a/app/main/index.ts +++ b/app/main/index.ts @@ -5,13 +5,13 @@ import path from 'path'; import windowStateKeeper from 'electron-window-state'; -import * as BadgeSettings from '../renderer/js/pages/preference/badge-settings'; -import * as ConfigUtil from '../renderer/js/utils/config-util'; -import * as ProxyUtil from '../renderer/js/utils/proxy-util'; -import {sentryInit} from '../renderer/js/utils/sentry-util'; +import * as ConfigUtil from '../common/config-util'; +import {sentryInit} from '../common/sentry-util'; import {appUpdater} from './autoupdater'; +import * as BadgeSettings from './badge-settings'; import * as AppMenu from './menu'; +import * as ProxyUtil from './proxy-util'; import {_getServerSettings, _saveServerIcon, _isOnline} from './request'; import {setAutoLaunch} from './startup'; diff --git a/app/renderer/js/utils/linux-update-util.ts b/app/main/linux-update-util.ts similarity index 83% rename from app/renderer/js/utils/linux-update-util.ts rename to app/main/linux-update-util.ts index 6a14e316..ee217c80 100644 --- a/app/renderer/js/utils/linux-update-util.ts +++ b/app/main/linux-update-util.ts @@ -1,22 +1,16 @@ -import electron from 'electron'; +import {app, dialog} from 'electron'; import fs from 'fs'; import path from 'path'; import {JsonDB} from 'node-json-db'; -import Logger from './logger-util'; - -const remote = - process.type === 'renderer' ? electron.remote : electron; +import Logger from '../common/logger-util'; const logger = new Logger({ file: 'linux-update-util.log', timestamp: true }); -/* To make the util runnable in both main and renderer process */ -const {dialog, app} = remote; - let db: JsonDB; reloadDB(); diff --git a/app/main/linuxupdater.ts b/app/main/linuxupdater.ts index dd2b96de..32f1e23b 100644 --- a/app/main/linuxupdater.ts +++ b/app/main/linuxupdater.ts @@ -3,10 +3,10 @@ import {app, Notification, net} from 'electron'; import getStream from 'get-stream'; import * as semver from 'semver'; -import * as ConfigUtil from '../renderer/js/utils/config-util'; -import * as LinuxUpdateUtil from '../renderer/js/utils/linux-update-util'; -import Logger from '../renderer/js/utils/logger-util'; +import * as ConfigUtil from '../common/config-util'; +import Logger from '../common/logger-util'; +import * as LinuxUpdateUtil from './linux-update-util'; import {fetchResponse} from './request'; const logger = new Logger({ diff --git a/app/main/menu.ts b/app/main/menu.ts index 134304dd..d5ef4d22 100644 --- a/app/main/menu.ts +++ b/app/main/menu.ts @@ -2,10 +2,10 @@ import {app, shell, BrowserWindow, Menu} from 'electron'; import AdmZip from 'adm-zip'; -import type {TabData} from '../renderer/js/main'; -import * as ConfigUtil from '../renderer/js/utils/config-util'; -import * as DNDUtil from '../renderer/js/utils/dnd-util'; -import * as t from '../renderer/js/utils/translation-util'; +import * as ConfigUtil from '../common/config-util'; +import * as DNDUtil from '../common/dnd-util'; +import * as t from '../common/translation-util'; +import type {TabData} from '../common/types'; import {appUpdater} from './autoupdater'; diff --git a/app/renderer/js/utils/proxy-util.ts b/app/main/proxy-util.ts similarity index 97% rename from app/renderer/js/utils/proxy-util.ts rename to app/main/proxy-util.ts index ecc97dd6..2279f05e 100644 --- a/app/renderer/js/utils/proxy-util.ts +++ b/app/main/proxy-util.ts @@ -1,4 +1,4 @@ -import * as ConfigUtil from './config-util'; +import * as ConfigUtil from '../common/config-util'; export interface ProxyRule { hostname?: string; diff --git a/app/main/request.ts b/app/main/request.ts index f3ae8627..8e9580a0 100644 --- a/app/main/request.ts +++ b/app/main/request.ts @@ -7,9 +7,9 @@ import util from 'util'; import getStream from 'get-stream'; -import type {ServerConf} from '../renderer/js/utils/domain-util'; -import Logger from '../renderer/js/utils/logger-util'; -import * as Messages from '../resources/messages'; +import Logger from '../common/logger-util'; +import * as Messages from '../common/messages'; +import type {ServerConf} from '../common/types'; export async function fetchResponse(request: ClientRequest): Promise { return new Promise((resolve, reject) => { diff --git a/app/main/startup.ts b/app/main/startup.ts index afa3f01e..1e29b205 100644 --- a/app/main/startup.ts +++ b/app/main/startup.ts @@ -2,7 +2,7 @@ import {app} from 'electron'; import AutoLaunch from 'auto-launch'; -import * as ConfigUtil from '../renderer/js/utils/config-util'; +import * as ConfigUtil from '../common/config-util'; export const setAutoLaunch = async (AutoLaunchValue: boolean): Promise => { // Don't run this in development diff --git a/app/renderer/js/components/context-menu.ts b/app/renderer/js/components/context-menu.ts index 307e1128..c8ad1b0e 100644 --- a/app/renderer/js/components/context-menu.ts +++ b/app/renderer/js/components/context-menu.ts @@ -1,7 +1,7 @@ import type {ContextMenuParams} from 'electron'; import {remote} from 'electron'; -import * as t from '../utils/translation-util'; +import * as t from '../../../common/translation-util'; const {clipboard, Menu} = remote; diff --git a/app/renderer/js/components/handle-external-link.ts b/app/renderer/js/components/handle-external-link.ts index 9691eeb7..97233d00 100644 --- a/app/renderer/js/components/handle-external-link.ts +++ b/app/renderer/js/components/handle-external-link.ts @@ -1,6 +1,6 @@ import {ipcRenderer, remote} from 'electron'; -import * as ConfigUtil from '../utils/config-util'; +import * as ConfigUtil from '../../../common/config-util'; import * as LinkUtil from '../utils/link-util'; import type WebView from './webview'; diff --git a/app/renderer/js/components/webview.ts b/app/renderer/js/components/webview.ts index d9157ba1..991a3e69 100644 --- a/app/renderer/js/components/webview.ts +++ b/app/renderer/js/components/webview.ts @@ -4,7 +4,7 @@ import path from 'path'; import {htmlEscape} from 'escape-goat'; -import * as ConfigUtil from '../utils/config-util'; +import * as ConfigUtil from '../../../common/config-util'; import * as SystemUtil from '../utils/system-util'; import BaseComponent from './base'; diff --git a/app/renderer/js/main.ts b/app/renderer/js/main.ts index 8a643b3e..07c527d3 100644 --- a/app/renderer/js/main.ts +++ b/app/renderer/js/main.ts @@ -1,19 +1,20 @@ import {ipcRenderer, remote, clipboard} from 'electron'; import path from 'path'; -import * as Messages from '../../resources/messages'; +import * as ConfigUtil from '../../common/config-util'; +import * as DNDUtil from '../../common/dnd-util'; +import type {DNDSettings} from '../../common/dnd-util'; +import * as EnterpriseUtil from '../../common/enterprise-util'; +import Logger from '../../common/logger-util'; +import * as Messages from '../../common/messages'; +import type {ServerConf, TabData} from '../../common/types'; import FunctionalTab from './components/functional-tab'; import ServerTab from './components/server-tab'; import WebView from './components/webview'; import {feedbackHolder} from './feedback'; -import * as ConfigUtil from './utils/config-util'; -import * as DNDUtil from './utils/dnd-util'; -import type {DNDSettings} from './utils/dnd-util'; import * as DomainUtil from './utils/domain-util'; -import * as EnterpriseUtil from './utils/enterprise-util'; import * as LinkUtil from './utils/link-util'; -import Logger from './utils/logger-util'; import ReconnectUtil from './utils/reconnect-util'; // eslint-disable-next-line import/no-unassigned-import @@ -59,13 +60,6 @@ const logger = new Logger({ const rendererDirectory = path.resolve(__dirname, '..'); type ServerOrFunctionalTab = ServerTab | FunctionalTab; -export interface TabData { - role: string; - name: string; - index: number; - webviewName: string; -} - class ServerManagerView { $addServerButton: HTMLButtonElement; $tabsContainer: Element; @@ -345,7 +339,7 @@ class ServerManagerView { } } - initServer(server: DomainUtil.ServerConf, index: number): void { + initServer(server: ServerConf, index: number): void { const tabIndex = this.getTabIndex(); this.tabs.push(new ServerTab({ role: 'server', diff --git a/app/renderer/js/notification/default-notification.ts b/app/renderer/js/notification/default-notification.ts index 098f3d92..4bfdbe5d 100644 --- a/app/renderer/js/notification/default-notification.ts +++ b/app/renderer/js/notification/default-notification.ts @@ -1,6 +1,6 @@ import {ipcRenderer} from 'electron'; -import * as ConfigUtil from '../utils/config-util'; +import * as ConfigUtil from '../../../common/config-util'; import {focusCurrentServer} from './helpers'; diff --git a/app/renderer/js/pages/preference/connected-org-section.ts b/app/renderer/js/pages/preference/connected-org-section.ts index bf59e40d..d9a0b47b 100644 --- a/app/renderer/js/pages/preference/connected-org-section.ts +++ b/app/renderer/js/pages/preference/connected-org-section.ts @@ -2,8 +2,8 @@ import {ipcRenderer} from 'electron'; import {htmlEscape} from 'escape-goat'; +import * as t from '../../../../common/translation-util'; import * as DomainUtil from '../../utils/domain-util'; -import * as t from '../../utils/translation-util'; import BaseSection from './base-section'; import FindAccounts from './find-accounts'; diff --git a/app/renderer/js/pages/preference/find-accounts.ts b/app/renderer/js/pages/preference/find-accounts.ts index 2c01914d..d2b1ef17 100644 --- a/app/renderer/js/pages/preference/find-accounts.ts +++ b/app/renderer/js/pages/preference/find-accounts.ts @@ -1,8 +1,8 @@ import {htmlEscape} from 'escape-goat'; +import * as t from '../../../../common/translation-util'; import BaseComponent from '../../components/base'; import * as LinkUtil from '../../utils/link-util'; -import * as t from '../../utils/translation-util'; interface FindAccountsProps { $root: Element; diff --git a/app/renderer/js/pages/preference/general-section.ts b/app/renderer/js/pages/preference/general-section.ts index 5bb7ac39..95a52815 100644 --- a/app/renderer/js/pages/preference/general-section.ts +++ b/app/renderer/js/pages/preference/general-section.ts @@ -7,10 +7,10 @@ import Tagify from '@yaireo/tagify'; import {htmlEscape} from 'escape-goat'; import ISO6391 from 'iso-639-1'; +import * as ConfigUtil from '../../../../common/config-util'; +import * as EnterpriseUtil from '../../../../common/enterprise-util'; +import * as t from '../../../../common/translation-util'; import supportedLocales from '../../../../translations/supported-locales.json'; -import * as ConfigUtil from '../../utils/config-util'; -import * as EnterpriseUtil from '../../utils/enterprise-util'; -import * as t from '../../utils/translation-util'; import BaseSection from './base-section'; diff --git a/app/renderer/js/pages/preference/nav.ts b/app/renderer/js/pages/preference/nav.ts index caf5f6dc..5412e739 100644 --- a/app/renderer/js/pages/preference/nav.ts +++ b/app/renderer/js/pages/preference/nav.ts @@ -1,7 +1,7 @@ import {htmlEscape} from 'escape-goat'; +import * as t from '../../../../common/translation-util'; import BaseComponent from '../../components/base'; -import * as t from '../../utils/translation-util'; interface PreferenceNavProps { $root: Element; diff --git a/app/renderer/js/pages/preference/network-section.ts b/app/renderer/js/pages/preference/network-section.ts index e5b4ab55..5466e1ac 100644 --- a/app/renderer/js/pages/preference/network-section.ts +++ b/app/renderer/js/pages/preference/network-section.ts @@ -2,8 +2,8 @@ import {ipcRenderer} from 'electron'; import {htmlEscape} from 'escape-goat'; -import * as ConfigUtil from '../../utils/config-util'; -import * as t from '../../utils/translation-util'; +import * as ConfigUtil from '../../../../common/config-util'; +import * as t from '../../../../common/translation-util'; import BaseSection from './base-section'; diff --git a/app/renderer/js/pages/preference/new-server-form.ts b/app/renderer/js/pages/preference/new-server-form.ts index 844605f5..a1819612 100644 --- a/app/renderer/js/pages/preference/new-server-form.ts +++ b/app/renderer/js/pages/preference/new-server-form.ts @@ -2,10 +2,10 @@ import {ipcRenderer, remote} from 'electron'; import {htmlEscape} from 'escape-goat'; +import * as t from '../../../../common/translation-util'; import BaseComponent from '../../components/base'; import * as DomainUtil from '../../utils/domain-util'; import * as LinkUtil from '../../utils/link-util'; -import * as t from '../../utils/translation-util'; const {dialog} = remote; diff --git a/app/renderer/js/pages/preference/preference.ts b/app/renderer/js/pages/preference/preference.ts index 1bbff3dd..25765136 100644 --- a/app/renderer/js/pages/preference/preference.ts +++ b/app/renderer/js/pages/preference/preference.ts @@ -1,7 +1,7 @@ import {ipcRenderer} from 'electron'; +import type {DNDSettings} from '../../../../common/dnd-util'; import BaseComponent from '../../components/base'; -import type {DNDSettings} from '../../utils/dnd-util'; import ConnectedOrgSection from './connected-org-section'; import GeneralSection from './general-section'; diff --git a/app/renderer/js/pages/preference/server-info-form.ts b/app/renderer/js/pages/preference/server-info-form.ts index d7dcc816..d56ea116 100644 --- a/app/renderer/js/pages/preference/server-info-form.ts +++ b/app/renderer/js/pages/preference/server-info-form.ts @@ -2,16 +2,17 @@ import {remote, ipcRenderer} from 'electron'; import {htmlEscape} from 'escape-goat'; -import * as Messages from '../../../../resources/messages'; +import * as Messages from '../../../../common/messages'; +import * as t from '../../../../common/translation-util'; +import type {ServerConf} from '../../../../common/types'; import BaseComponent from '../../components/base'; import * as DomainUtil from '../../utils/domain-util'; -import * as t from '../../utils/translation-util'; const {dialog} = remote; interface ServerInfoFormProps { $root: Element; - server: DomainUtil.ServerConf; + server: ServerConf; index: number; onChange: () => void; } diff --git a/app/renderer/js/pages/preference/servers-section.ts b/app/renderer/js/pages/preference/servers-section.ts index a8dd6ecc..e2a3f032 100644 --- a/app/renderer/js/pages/preference/servers-section.ts +++ b/app/renderer/js/pages/preference/servers-section.ts @@ -1,6 +1,6 @@ import {htmlEscape} from 'escape-goat'; -import * as t from '../../utils/translation-util'; +import * as t from '../../../../common/translation-util'; import BaseSection from './base-section'; import NewServerForm from './new-server-form'; diff --git a/app/renderer/js/pages/preference/shortcuts-section.ts b/app/renderer/js/pages/preference/shortcuts-section.ts index 9e910d66..55a99487 100644 --- a/app/renderer/js/pages/preference/shortcuts-section.ts +++ b/app/renderer/js/pages/preference/shortcuts-section.ts @@ -1,7 +1,7 @@ import {htmlEscape} from 'escape-goat'; +import * as t from '../../../../common/translation-util'; import * as LinkUtil from '../../utils/link-util'; -import * as t from '../../utils/translation-util'; import BaseSection from './base-section'; diff --git a/app/renderer/js/tray.ts b/app/renderer/js/tray.ts index 87a2bbec..a684214c 100644 --- a/app/renderer/js/tray.ts +++ b/app/renderer/js/tray.ts @@ -2,7 +2,7 @@ import type {WebviewTag, NativeImage} from 'electron'; import {ipcRenderer, remote} from 'electron'; import path from 'path'; -import * as ConfigUtil from './utils/config-util'; +import * as ConfigUtil from '../../common/config-util'; const {Tray, Menu, nativeImage, BrowserWindow} = remote; diff --git a/app/renderer/js/utils/domain-util.ts b/app/renderer/js/utils/domain-util.ts index 0896ae34..50168b4f 100644 --- a/app/renderer/js/utils/domain-util.ts +++ b/app/renderer/js/utils/domain-util.ts @@ -4,19 +4,13 @@ import path from 'path'; import {JsonDB} from 'node-json-db'; -import * as Messages from '../../../resources/messages'; - -import * as EnterpriseUtil from './enterprise-util'; -import Logger from './logger-util'; +import * as EnterpriseUtil from '../../../common/enterprise-util'; +import Logger from '../../../common/logger-util'; +import * as Messages from '../../../common/messages'; +import type {ServerConf} from '../../../common/types'; const {app, dialog} = remote; -export interface ServerConf { - url: string; - alias?: string; - icon?: string; -} - const logger = new Logger({ file: 'domain-util.log', timestamp: true diff --git a/app/renderer/js/utils/reconnect-util.ts b/app/renderer/js/utils/reconnect-util.ts index b80f6ce9..fc5bfc4f 100644 --- a/app/renderer/js/utils/reconnect-util.ts +++ b/app/renderer/js/utils/reconnect-util.ts @@ -3,10 +3,9 @@ import {ipcRenderer} from 'electron'; import * as backoff from 'backoff'; import {htmlEscape} from 'escape-goat'; +import Logger from '../../../common/logger-util'; import type WebView from '../components/webview'; -import Logger from './logger-util'; - const logger = new Logger({ file: 'domain-util.log', timestamp: true