@bizhermit/nextron
Version:
nextjs + electron application
155 lines (136 loc) • 3.99 kB
Markdown
# Nextron
Give to Electron and Next.js framework.
---
## Usage
please use starter kit: [@bizhermit/starter](https://www.npmjs.com/package/@bizhermit/starter)
### Install
```bash
npm i @bizhermit/nextron
```
### Example
```ts
// ./src-nextron/index.ts
import execute from "@bizhermit/nextron";
execute({/* props */});
```
### Props
execute arg (struct object) parameters.
- **rootDirname?: string**
nextjs root directory.
default: `"./src"`
- **menubar?: boolean**
display menubar.
default: `false`
- **openDevTools?: boolean**
open development tool window.
default: `false`
- **dev?: Struct**
effect and overwrite when develop mode.
- **port?: number**
port number.
default: `8000`
- **menubar?: boolean**
display menubar when dev mode.
default: `true`
- **openDevTools?: boolean**
open development tool window.
default: `true`
- **width?: number**
window width (pt).
default: `1280`
- **height?: number**
window height (pt).
default: `720`
- **minWidth?: number**
window min-width (pt).
default: `undefined`
- **minHeight?: number**
window min-height (pt).
default: `undefined`
- **maxWidth?: number**
window max-width (pt).
default: `undefined`
- **maxHeight?: number**
window max-height (pt).
default: `undefined`
- **resizable?: boolean**
allow window resize.
default: `true`
- **useContentSize?: boolean**
height and width is content (exclude header and menubar) size or window size.
default: `false` (window)
- **fullscreen?: boolean**
boot fullscreen mode.
default: `false`
- **fullscreenable?: boolean**
allow fullscreen mode.
default: `true`
- **minimizable?: boolean**
allow minimize and show button at header.
default: `true`
- **maximizable?: boolean**
allow maximize and show button at header.
default: `true`
- **closable?: boolean**
show close button at header.
default: `true`
- **position?: { x: number; y: number; } | "center" | "left-top" | "right-bottom"**
first window position for monitor.
default: `"center"`
- **movable?: boolean**
allow move window.
default: `true`
- **opacity?: number**
window opacity. 0 is invisible.
default: `1`
- **focusable?: boolean**
allow focus at window. if false, cannot control.
default: `true`
- **alwaysOnTop?: boolean**
window is indicated just before the constancy.
default: `false`
- **skipTaskbar?: boolean**
an icon is shown to a taskbar at the time of an application icon start.
default: `false`
- **title?: string**
header title.
default: `""`
- **frame?: boolean**
show frame. if false, close and min/max button, title is not display.
default: `true`
- **hasShadow?: boolean**
show window shadow.
default: `true`
- **layoutColor?: string("light" | "dark")**
layout color.
default: `undefined` (depend on a theme of os)
- **layoutDesign?: string**
layout design.
default: `"material"`
- **defaultConfig?: Config**
config file initialize parameters when not generated at ./resources/config.json.
default: `undefined`
---
### Main Process Accessor
use accessor when renderer process access to main(window) process.
```ts
import nextronAccessor, { useNextron } from "@bizhermit/nextron/dist/accessor"
// renderer process
const Component = () => {
const nextron = useNextron();
const click = () => {
nextron.setSize({ width: 300, height: 300, animate: true });
nextron.fetch("hello", {}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
});
};
return <button onClick={click}>set size</button>;
};
// main process
const func = () => {
const nextron = nextronAccessor();
nextron.setSize({ width: 300, height: 300, animate: true });
};
```