feat: optimize electron macos header style (#1774)

Co-authored-by: himself65 <himself65@outlook.com>
This commit is contained in:
Peng Xiao
2023-04-03 03:01:22 +08:00
committed by GitHub
parent fa150a93a0
commit e0eecffb2f
31 changed files with 635 additions and 169 deletions

View File

@@ -0,0 +1,16 @@
interface Window {
/**
* After analyzing the `exposeInMainWorld` calls,
* `packages/preload/exposedInMainWorld.d.ts` file will be generated.
* It contains all interfaces.
* `packages/preload/exposedInMainWorld.d.ts` file is required for TS is `renderer`
*
* @see https://github.com/cawa-93/dts-for-context-bridge
*/
readonly apis: {
workspaceSync: (id: string) => Promise<any>;
onThemeChange: (theme: string) => Promise<any>;
onSidebarVisibilityChange: (visible: boolean) => Promise<any>;
};
readonly appInfo: { electron: boolean; isMacOS: boolean };
}

View File

@@ -4,10 +4,7 @@
import { contextBridge, ipcRenderer } from 'electron';
import { sha256sum } from './sha256sum';
// Expose version number to renderer
contextBridge.exposeInMainWorld('yerba', { version: 0.1 });
import { isMacOS } from '../../utils';
/**
* The "Main World" is the JavaScript context that your main renderer code runs in.
@@ -25,17 +22,17 @@ contextBridge.exposeInMainWorld('yerba', { version: 0.1 });
* @see https://github.com/cawa-93/dts-for-context-bridge
*/
/**
* Safe expose node.js API
* @example
* window.nodeCrypto('data')
*/
contextBridge.exposeInMainWorld('nodeCrypto', { sha256sum });
contextBridge.exposeInMainWorld('apis', {
workspaceSync: (id: string) => ipcRenderer.invoke('workspaceSync', id),
workspaceSync: (id: string) => ipcRenderer.invoke('octo:workspace-sync', id),
// ui
onThemeChange: (theme: string) =>
ipcRenderer.invoke('ui:theme-change', theme),
onSidebarVisibilityChange: (visible: boolean) =>
ipcRenderer.invoke('ui:sidebar-visibility-change', visible),
});
contextBridge.exposeInMainWorld('appInfo', {
electron: 1,
electron: true,
isMacOS: isMacOS(),
});

View File

@@ -1,6 +0,0 @@
import type { BinaryLike } from 'crypto';
import { createHash } from 'crypto';
export function sha256sum(data: BinaryLike) {
return createHash('sha256').update(data).digest('hex');
}