open-index/open-npm huggingface dataset:
npm package: @quiteer/electron-ipc
Description: 基于electron , 提供了一些 独立无副作用的 ipc 事件相关操作
Author: quiteer
Latest version: 2.0.4

# @quiteer/electron-ipc


> 基于electron , 提供了一些 独立无副作用的 ipc 事件相关操作

## 安装

- 获取项目代码

```bash
npm i @quiteer/electron-ipc
```
```bash
yarn add @quiteer/electron-ipc
```
```bash
pnpm add @quiteer/electron-ipc
```

## 使用

### 在主进程中初始化ipc预设
> init即可 无需多余操作

```js
import { Ipc } from '@quiteer/electron-ipc'

app.whenReady().then(() => {
  Ipc.init()
})
```

### 渲染进程中使用
> 引用包内预定义的事件枚举  按需取用

```js
import { EventKeys, IpcWindowOptions } from '@quiteer/electron-ipc/web'

const test = () => {
  // 窗口最大化
  window.$ipc.send(EventKeys.WindowOptionsKey, IpcWindowOptions.MAXIMIZE)

  setTimeout(() => {
    // 取消最大化
    window.$ipc.send(EventKeys.WindowOptionsKey, IpcWindowOptions.UNMAXIMIZE)
  }, 1000)
}
```

> 配合  '@quiteer/electron-preload' 使用获得代码提示

```ts
// global.d.ts
interface Window {
  $ipc: import('@quiteer/electron-preload').PreloadIpc & import('@quiteer/electron-ipc/web').ExpandPreloadIpc
}

// other.ts
window.$ipc.send('__window_options__', 'destroy')
window.$ipc.invoke('__file_options__', 'join', '/', '/experiment')
```
npm package: @quiteer/electron-preload
Description: 基于electron , 提供预加载功能脚本
Author: quiteer
Latest version: 0.0.10

# @quiteer/electron-preload


> 基于electron , 提供预加载功能脚本

## 安装

```bash
npm i @quiteer/electron-preload
```
```bash
yarn add @quiteer/electron-preload
```
```bash
pnpm add @quiteer/electron-preload
```


## 使用

> 在主进程中引入预加载脚本

```js
import preload from '@quiteer/electron-preload'

const win = new BrowserWindow({
  width: 800,
  height: 600
})
```

### 暴露的api

分别暴露了以下api , 具体使用方法可参照官方 api 文档使用

- ipcRenderer
  - send
  - sendSync
  - invoke
  - on
  - once
  - removeAllListeners

- clipboard
  - readText
  - writeText
  - readHTML
  - writeHTML
  - readImage
  - writeImage
  - readRTF
  - writeRTF
  - readBookmark
  - writeBookmark
  - readFindText
  - writeFindText
  - clear
  - availableFormats
  - has
  - read
  - readBuffer
  - writeBuffer
  - write

- webFrame
  -  setZoomFactor
  -  getZoomFactor
  -  setZoomLevel
  -  getZoomLevel
  -  insertText
  -  executeJavaScript
  -  executeJavaScriptInIsolatedWorld
  -  setIsolatedWorldInfo
  -  getResourceUsage
  -  clearCache
  -  getFrameForSelector
  -  firstChild
  -  nextSibling
  -  opener
  -  parent
  -  routingId
  -  top


### 渲染进程中使用

```js
console.log('window.$ipc :>> ', window.$ipc)
console.log('window.$clipboard :>> ', window.$clipboard)
console.log('window.$webFrame :>> ', window.$webFrame)
```

#### 获取类型提示

全局类型声明
```ts
interface Window {
  $ipc: import('@quiteer/electron-preload').PreloadIpc
  $clipboard: import('@quiteer/electron-preload').PreLoadPath
  $webFrame: import('@quiteer/electron-preload').PreloadWebFrame
}
```