Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

grpc-ts-health-check

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

grpc-ts-health-check

An implementation of gRPC health checks, written in typescript.

  • 3.1.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.6K
decreased by-11.72%
Maintainers
1
Weekly downloads
 
Created
Source

gRPC Health Check

License Current Version npm

An implementation of gRPC health checks, written in typescript.

It is assumed that you are using the @grpc/grpc-js library.

Installation

yarn add grpc-ts-health-check

Install the @grpc/grpc-js library:

yarn add @grpc/grpc-js

Dependencies

  • Google Protobuf: Protocol Buffers - Google's data interchange format.
  • gRPC Boom: A zero dependency library to help create gRPC-friendly error objects.

Usage

import * as grpc from '@grpc/grpc-js';
import * as protoLoader from '@grpc/proto-loader';
import path from 'path';

import { HealthClient } from '../dist/proto/grpc/health/v1/Health';
import { HealthCheckResponse__Output } from '../dist/proto/grpc/health/v1/HealthCheckResponse';
import { ProtoGrpcType } from '../dist/proto/health';

export class HealthGrpcClient {
  private readonly client: HealthClient;

  constructor({ host, port }: { host: string; port: number }) {
    const packageDefinition = protoLoader.loadSync(path.resolve('../dist/proto/health.proto'), {
      arrays: true,
      keepCase: true,
      longs: String,
      enums: String,
      objects: true,
      defaults: true,
    });
    const proto = grpc.loadPackageDefinition(packageDefinition) as unknown as ProtoGrpcType;
    this.client = new proto.grpc.health.v1.Health(
      `${host}:${port}`,
      grpc.ChannelCredentials.createInsecure(),
    );
  }

  checkStatus(): Promise<HealthCheckResponse__Output> {
    return new Promise((resolve, reject) => {
      this.client.check(
        { service: 'example' },
        (error?: grpc.ServiceError | null, result?: HealthCheckResponse__Output): void => {
          if (error) {
            reject(error);
          }
          resolve(result || ({} as HealthCheckResponse__Output));
        },
      );
    });
  }

  watchStatus(): grpc.ClientReadableStream<HealthCheckResponse__Output> {
    return this.client.watch({ service: 'example' });
  }
}

Methods

Below is a list of available methods:

check(request, callback)

Checks the status of the service once.

  • request - the HealthCheckRequest object.
  • callback (optional) - the callback method.
watch(request)

Set the initial status of the service and continues to watch for any changes.

  • request - the HealthCheckRequest object.

License

MIT License

Contributing

Contributions are encouraged, please see further details below:

Pull Requests

Here are some basic rules to follow to ensure timely addition of your request:

  1. Match coding style (braces, spacing, etc.).
  2. If it is a feature, bugfix, or anything please only change the minimum amount of code required to satisfy the change.
  3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge.
  4. Pull requests must be made against the main branch. Any other branch (unless specified by the maintainers) will get rejected.
  5. Check for existing issues first, before filing a new issue.

Keywords

FAQs

Package last updated on 26 May 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc