grpc-ts-health-check v3.1.3
gRPC Health Check
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-checkInstall the @grpc/grpc-js library:
yarn add @grpc/grpc-jsDependencies
- 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- HealthCheckRequestobject.
- callback(optional) - the callback method.
watch(request)
Set the initial status of the service and continues to watch for any changes.
- request- the- HealthCheckRequestobject.
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:
- Match coding style (braces, spacing, etc.).
- If it is a feature, bugfix, or anything please only change the minimum amount of code required to satisfy the change.
- Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge.
- Pull requests must be made against the mainbranch. Any other branch (unless specified by the maintainers) will get rejected.
- Check for existing issues first, before filing a new issue.
2 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago