/* eslint-disable @typescript-eslint/ban-types */ /** * Provide API from main services to GUI (for example, preference window), and tiddlywiki * This file should be required by BrowserView's preload script to work */ import { createProxy } from 'electron-ipc-cat/client'; import { AsyncifyProxy } from 'electron-ipc-cat/common'; import { AuthenticationServiceIPCDescriptor, IAuthenticationService } from '@services/auth/interface'; import { ContextServiceIPCDescriptor, IContextService } from '@services/context/interface'; import { GitServiceIPCDescriptor, IGitService } from '@services/git/interface'; import { ILanguageModelService, LanguageModelServiceIPCDescriptor } from '@services/languageModel/interface'; import { IMenuService, MenuServiceIPCDescriptor } from '@services/menu/interface'; import { INativeService, NativeServiceIPCDescriptor } from '@services/native/interface'; import { INotificationService, NotificationServiceIPCDescriptor } from '@services/notifications/interface'; import { IPagesService, PagesServiceIPCDescriptor } from '@services/pages/interface'; import { IPreferenceService, PreferenceServiceIPCDescriptor } from '@services/preferences/interface'; import { ISyncService, SyncServiceIPCDescriptor } from '@services/sync/interface'; import { ISystemPreferenceService, SystemPreferenceServiceIPCDescriptor } from '@services/systemPreferences/interface'; import { IThemeService, ThemeServiceIPCDescriptor } from '@services/theme/interface'; import { IUpdaterService, UpdaterServiceIPCDescriptor } from '@services/updater/interface'; import { IViewService, ViewServiceIPCDescriptor } from '@services/view/interface'; import { IWikiService, WikiServiceIPCDescriptor } from '@services/wiki/interface'; import { IWikiGitWorkspaceService, WikiGitWorkspaceServiceIPCDescriptor } from '@services/wikiGitWorkspace/interface'; import { IWindowService, WindowServiceIPCDescriptor } from '@services/windows/interface'; import { IWorkspaceService, WorkspaceServiceIPCDescriptor } from '@services/workspaces/interface'; import { IWorkspaceViewService, WorkspaceViewServiceIPCDescriptor } from '@services/workspacesView/interface'; export const auth = createProxy(AuthenticationServiceIPCDescriptor); export const context = createProxy(ContextServiceIPCDescriptor); export const git = createProxy(GitServiceIPCDescriptor); export const languageModel = createProxy(LanguageModelServiceIPCDescriptor); export const menu = createProxy(MenuServiceIPCDescriptor); export const native = createProxy(NativeServiceIPCDescriptor); export const notification = createProxy(NotificationServiceIPCDescriptor); export const pages = createProxy(PagesServiceIPCDescriptor); export const preference = createProxy(PreferenceServiceIPCDescriptor); export const sync = createProxy(SyncServiceIPCDescriptor); export const systemPreference = createProxy(SystemPreferenceServiceIPCDescriptor); export const theme = createProxy(ThemeServiceIPCDescriptor); export const updater = createProxy(UpdaterServiceIPCDescriptor); export const view = createProxy>(ViewServiceIPCDescriptor); export const wiki = createProxy(WikiServiceIPCDescriptor); export const wikiGitWorkspace = createProxy(WikiGitWorkspaceServiceIPCDescriptor); export const window = createProxy(WindowServiceIPCDescriptor); export const workspace = createProxy>(WorkspaceServiceIPCDescriptor); export const workspaceView = createProxy(WorkspaceViewServiceIPCDescriptor); export const descriptors = { auth: AuthenticationServiceIPCDescriptor, context: ContextServiceIPCDescriptor, git: GitServiceIPCDescriptor, languageModel: LanguageModelServiceIPCDescriptor, menu: MenuServiceIPCDescriptor, native: NativeServiceIPCDescriptor, notification: NotificationServiceIPCDescriptor, pages: PagesServiceIPCDescriptor, preference: PreferenceServiceIPCDescriptor, sync: SyncServiceIPCDescriptor, systemPreference: SystemPreferenceServiceIPCDescriptor, theme: ThemeServiceIPCDescriptor, updater: UpdaterServiceIPCDescriptor, view: ViewServiceIPCDescriptor, wiki: WikiServiceIPCDescriptor, wikiGitWorkspace: WikiGitWorkspaceServiceIPCDescriptor, window: WindowServiceIPCDescriptor, workspace: WorkspaceServiceIPCDescriptor, workspaceView: WorkspaceViewServiceIPCDescriptor, };