Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miaowing/electron-nest-rpc
Provides a simple way to invoke nest.js service between the renderer process (web page) and the main process
https://github.com/miaowing/electron-nest-rpc
Last synced: 18 days ago
JSON representation
Provides a simple way to invoke nest.js service between the renderer process (web page) and the main process
- Host: GitHub
- URL: https://github.com/miaowing/electron-nest-rpc
- Owner: miaowing
- Created: 2018-11-28T10:53:45.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-10T15:25:17.000Z (about 2 years ago)
- Last Synced: 2024-10-12T12:34:50.416Z (about 1 month ago)
- Language: TypeScript
- Size: 241 KB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Description
The electron-nest-rpc module provides a simple way to invoke nest service between the renderer process (web page) and the main process.
## Installation
```bash
$ npm i --save electron-nest-rpc
```## Examples
https://github.com/miaowing/electron-nest-rpc-example
https://github.com/miaowing/dolphin
## Quick Start
#### Main Process
```typescript
import { ApplicationModule } from "./app.module";
import { BrowserWindow } from 'electron';
import { NestFactory } from "@nestjs/core";
import { NestRPC } from 'electron-nest-rpc';
import * as path from 'path';async function bootstrap() {
const window = new BrowserWindow({
show: true,
width: 966,
height: 647,
minWidth: 966,
minHeight: 647,
titleBarStyle: 'hidden',
});
const nestContext = await NestFactory.createApplicationContext(ApplicationModule);
NestRPC.register(nestContext);
window.loadURL(formatUrl({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file',
slashes: true
}));
}bootstrap();
```#### Renderer Process
```typescript jsx
import * as React from 'react';
import { nestRPC, RPCException } from 'electron-nest-rpc';
import { UserService } from './services/UserService';export class TestPage extends React.Component {
private readonly userService: UserService = nestRPC(UserService);
private state = {users: []};
constructor(props: any) {
super(props);
}
async componentDidMount() {
try {
const users = await this.userService.getUsers();
this.setState({users});
} catch (e: RPCException) {
console.log(e.message);
}
}
render() {
const users = this.state.users;
return
- {user.name} )}
{users.map(user =>
}
}
```
## Stay in touch
- Author - [Miaowing](https://github.com/miaowing)
## License
Nest is [MIT licensed](LICENSE).