Net Possibility Multiplier
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    grpc-web-clientpublic

    grpc-web-client

    Library for making gRPC-Web requests from a browser

    This library is intended for both JavaScript and TypeScript usage from either a browser or Node.js.

    Note: This only works if the server supports gRPC-Web

    A Golang gRPC-Web middleware and a Golang-based gRPC-Web proxy are available here.

    Please see the full gRPC-Web README for known limitations.

    Installation

    grpc-web-client has peer dependencies of google-protobuf and @types/google-protobuf.

    npm install google-protobuf @types/google-protobuf grpc-web-client --save

    Example Project

    There is an example project available here

    Usage Overview

    import {grpc} from "grpc-web-client";
     
    // Import code-generated data structures.
    import {BookService} from "./generated/proto/examplecom/library/book_service_pb_service";
    import {GetBookRequest} from "./generated/proto/examplecom/library/book_service_pb";
     
    const getBookRequest = new GetBookRequest();
    getBookRequest.setIsbn(60929871);
    grpc.unary(BookService.GetBook, {
      request: getBookRequest,
      host: host,
      onEnd: res => {
        const { status, statusMessage, headers, message, trailers } = res;
        if (status === grpc.Code.OK && message) {
          console.log("all ok. got book: ", message.toObject());
        }
      }
    });
    • Requests can be aborted/cancelled before they complete:
    const request = grpc.unary(BookService.GetBook, { ... });
    request.cancel();

    Available Request Functions

    There are three functions for making gRPC requests:

    grpc.unary

    This is a convenience function for making requests that consist of a single request message and single response message. It can only be used with unary methods.

    rpc GetBook(GetBookRequest) returns (Book) {}

    grpc.invoke

    This is a convenience function for making requests that consist of a single request message and a stream of response messages (server-streaming). It can also be used with unary methods.

    rpc GetBook(GetBookRequest) returns (Book) {}
    rpc QueryBooks(QueryBooksRequest) returns (stream Book) {}

    grpc.client

    grpc.client returns a client. Dependant upon transport compatibility this client is capable of sending multiple request messages (client-streaming) and receiving multiple response messages (server-streaming). It can be used with any type of method, but will enforce limiting the sending of messages for unary methods.

    rpc GetBook(GetBookRequest) returns (Book) {}
    rpc QueryBooks(QueryBooksRequest) returns (stream Book) {}
    rpc LogReadPages(stream PageRead) returns (google.protobuf.Empty) {}
    rpc ListenForBooks(stream QueryBooksRequest) returns (stream Book) {}

    All Docs

    install

    npm i grpc-web-client

    Downloadsweekly downloads

    4,922

    version

    0.6.2

    license

    Apache-2.0

    last publish

    collaborators

    • avatar
    • avatar