Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cawa-93/unplugin-auto-expose
Plugins for automatic exposeInMainWorld everything you exported from preload and easily importing exposed api in renderer
https://github.com/cawa-93/unplugin-auto-expose
electron electron-plugin rollup-plugin vite-plugin
Last synced: about 2 months ago
JSON representation
Plugins for automatic exposeInMainWorld everything you exported from preload and easily importing exposed api in renderer
- Host: GitHub
- URL: https://github.com/cawa-93/unplugin-auto-expose
- Owner: cawa-93
- License: mit
- Created: 2022-06-09T10:47:13.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-23T00:04:31.000Z (9 months ago)
- Last Synced: 2024-05-23T01:25:44.095Z (9 months ago)
- Topics: electron, electron-plugin, rollup-plugin, vite-plugin
- Language: TypeScript
- Homepage: https://npmjs.com/package/unplugin-auto-expose
- Size: 1.29 MB
- Stars: 38
- Watchers: 3
- Forks: 8
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
> [!Important]
> This project is mainrained by **developer from Ukraine** πΊπ¦
>
> Due to the ongoing war resulting from Russia's full-scale invasion of Ukraine, I currently lack the time for the full development of this open-source project. My primary focus is on ensuring the well-being of myself and my family. I'll prioritize and review all new contributions as soon as possible.
>
> If you can, please consider [supporting Ukraine](https://stand-with-ukraine.pp.ua/) or [me personally](https://www.buymeacoffee.com/kozack).
>
> Thank you for your understanding and support.> [!CAUTION]
> This plugin is deprecated.
>
> The plugin should be replaced by native module resulution features. You can find the reference here: https://github.com/cawa-93/vite-electron-builder/pull/1018
---# unplugin-auto-expose
Plugins for automatic `exposeInMainWorld`. Easily export your exposed api from `preload` to `renderer`.
## Example
```ts
// preload.ts
export const foo = 'foo string'
// Equivalent
electron.contextBridge.exposeInMainWorld('__electron_preload_foo', 'foo string')
```
```ts
// renderer.ts
import {foo} from '#preload'
// Equivalent
const foo = window.__electron_preload_foo
```## Supports all export declaration
```ts
// Export named declaration
export const prop = 1
export function method() {}// Named Re-export
export {prop} from 'file'
export {prop as propAlias} from 'file'// Export all declaration
export * from 'file'
export * as props from 'file'// Default exports
export default 'foo'
```## Configuration
This package contains two plugins: one for preload and one for renderer builds.
```ts
// preload/vite.config.tsimport {preload} from 'unplugin-auto-expose';
export default defineConfig({
plugins: [
preload.vite()
]
})
```
```ts
// renderer/vite.config.tsimport {renderer} from 'unplugin-auto-expose';
export default defineConfig({
plugins: [
renderer.vite({
preloadEntry: '/absolute/path/to/preload.ts'
})
]
})
```
## TypeScript
To configure the TypeScript, add a path to your renderer.```json5
// tsconfig.json`:
{
"compilerOptions": {
"paths": {
"#preload": [
"/path/to/preload"
]
}
}
}```