[!NOTE]
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 or me personally.
Thank you for your understanding and support.
unplugin-auto-expose
Plugins for automatic exposeInMainWorld
. Easily export your exposed api from preload
to renderer
.
Example
// preload.ts
export const foo = 'foo string'
// Equivalent
electron.contextBridge.exposeInMainWorld('__electron_preload_foo', 'foo string')
// renderer.ts
import {foo} from '#preload'
// Equivalent
const foo = window.__electron_preload_foo
Supports all export declaration
// 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.
// preload/vite.config.ts
import {preload} from 'unplugin-auto-expose';
export default defineConfig({
plugins: [
preload.vite()
]
})
// renderer/vite.config.ts
import {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.
// tsconfig.json`:
{
"compilerOptions": {
"paths": {
"#preload": [
"/path/to/preload"
]
}
}
}