40 lines
2.4 KiB
TypeScript
40 lines
2.4 KiB
TypeScript
import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
getAccounts: () => ipcRenderer.invoke('get-accounts'),
|
|
addAccount: (account: { identifier: string }) => ipcRenderer.invoke('add-account', account),
|
|
updateAccount: (id: string, data: any) => ipcRenderer.invoke('update-account', id, data),
|
|
deleteAccount: (id: string) => ipcRenderer.invoke('delete-account', id),
|
|
switchAccount: (loginName: string) => ipcRenderer.invoke('switch-account', loginName),
|
|
shareAccountWithUser: (steamId: string, targetSteamId: string) => ipcRenderer.invoke('share-account-with-user', steamId, targetSteamId),
|
|
revokeAccountAccess: (steamId: string, targetSteamId: string) => ipcRenderer.invoke('revoke-account-access', steamId, targetSteamId),
|
|
revokeAllAccountAccess: (steamId: string) => ipcRenderer.invoke('revoke-all-account-access', steamId),
|
|
openExternal: (url: string) => ipcRenderer.invoke('open-external', url),
|
|
openSteamAppLogin: () => ipcRenderer.invoke('open-steam-app-login'),
|
|
openSteamLogin: (steamId: string) => ipcRenderer.invoke('open-steam-login', steamId),
|
|
|
|
// Server Config & Auth
|
|
getServerConfig: () => ipcRenderer.invoke('get-server-config'),
|
|
updateServerConfig: (config: any) => ipcRenderer.invoke('update-server-config', config),
|
|
loginToServer: () => ipcRenderer.invoke('login-to-server'),
|
|
getServerUserInfo: () => ipcRenderer.invoke('get-server-user-info'),
|
|
syncNow: () => ipcRenderer.invoke('sync-now'),
|
|
scrapeAccount: (steamId: string) => ipcRenderer.invoke('scrape-account', steamId),
|
|
getCommunityAccounts: () => ipcRenderer.invoke('get-community-accounts'),
|
|
getServerUsers: () => ipcRenderer.invoke('get-server-users'),
|
|
|
|
// Admin API
|
|
adminGetStats: () => ipcRenderer.invoke('admin-get-stats'),
|
|
adminGetUsers: () => ipcRenderer.invoke('admin-get-users'),
|
|
adminDeleteUser: (userId: string) => ipcRenderer.invoke('admin-delete-user', userId),
|
|
adminGetAccounts: () => ipcRenderer.invoke('admin-get-accounts'),
|
|
adminRemoveAccount: (steamId: string) => ipcRenderer.invoke('admin-remove-account', steamId),
|
|
|
|
onAccountsUpdated: (callback: (accounts: any[]) => void) => {
|
|
const subscription = (_event: IpcRendererEvent, accounts: any[]) => callback(accounts);
|
|
ipcRenderer.on('accounts-updated', subscription);
|
|
return () => ipcRenderer.removeListener('accounts-updated', subscription);
|
|
},
|
|
platform: process.platform
|
|
});
|