Skip to content
Provides a simple way to invoke nest.js service between the renderer process (web page) and the main process
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
.eslintrc.js
.gitignore
.npmignore
.prettierrc
README.md
index.d.ts
index.js
index.ts.js
package-lock.json
package.json
tsconfig.json
tslint.json

README.md

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

$ npm i --save electron-nest-rpc

Quick Start

Main Process

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.create(ApplicationModule);
    NestRPC.register(nestContext);
    
    window.loadURL(formatUrl({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file',
        slashes: true
    }));
}

bootstrap();

Renderer Process

import * as React from 'react';
import { nestRPC, RPCException } from 'electron-nest-rpc';
import { UserService } from './services/UserService';

export class TestPage extends React.Component<any> {
    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 <ul>
            {users.map(user => <li key={user.id}>{user.name}</li>)}
        </ul>;
    }
}

Stay in touch

License

Nest is MIT licensed.

You can’t perform that action at this time.