grpc-man
TypeScript icon, indicating that this package has built-in type declarations

1.8.0 • Public • Published

grpc-man

中文简体

A client to call gRPC server methods on the fly.

The name is inspired by post-man.

996.icu LICENSE Build Status NPM version npm download semantic-release Git commit with emojis! FOSSA Status

Quality gate

Usage

This package provides a lightweight gRPC client implementation, which can be used to verify your gRPC service is working as expected or not.

I am using it heavily for testing code, and recommend you to use it too.

Installation

# Globally
npm install -g grpc-man

# Only in project and for testing purpose
npm install --save-dev grpc-man

Use in javascript project

import GrpcClient from 'grpc-man/lib/Client';

async function main() {
  const client = new GrpcClient('<yourhost>:<your port>', __dirname + 'your.proto');

  await client.grpc.youpackage.YourService.yourMethod(arg);
}

Use in testing

If your project provides services through gRPC, then you can use grpc-man to do the automatic testing against your gRPC services.

with mocha

The proto file used for testing is here

import assert = require('assert');
import GrpcClient from 'grpc-man/lib/Client';

describe('grpc', () => {
  it('greets', async () => {
    const client = new Client('0.0.0.0:8890', __dirname + '/./proto/helloworld.proto');

    const res = await client.grpc.helloworld.Greeter.sayHello({ name: 'name' });
    assert.deepEqual(res, { message: 'Hello name' });
  });
});

If you are using jest testing framework, then you can refer to the testing code for this package itself

Use in command line

grpc-man <endpoint> <protoFilePath>

# for example:
grpc-man localhost:8080 /path/to/proto_file

Run it locally

npm start <endpoint> <protoFilePath>

# for example:
npm start localhost:8080 /path/to/proto_file

Run client in development mode

npm run client

License

FOSSA Status

Readme

Keywords

Package Sidebar

Install

npm i grpc-man

Weekly Downloads

57

Version

1.8.0

License

ISC

Unpacked Size

47.1 kB

Total Files

25

Last publish

Collaborators

  • jeff-tian