UNPKG

@restorecommerce/chassis-srv

Version:
48 lines (47 loc) 1.41 kB
import { Logger } from 'winston'; import type { Server as GRPCServer, ServiceImplementation } from 'nice-grpc'; import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions'; import { WithRequestID } from './middlewares'; /** * Name of the transport */ export declare const NAME = "grpc"; export interface BindConfig<Service extends CompatServiceDefinition> { service: Service; implementation: ServiceImplementation<Service>; } /** * Server transport provider. * @class */ export declare class Server { config: any; logger: Logger; server: GRPCServer<WithRequestID>; name: string; isBound: boolean; /** * Server is a gRPC transport provider for serving. * * @param {Object} config Configuration object. * Requires properties: addr * Optional properties: credentials.ssl.certs * @param {Logger} logger Logger. */ constructor(config: any, logger: Logger); /** * bind maps the service to gRPC methods and binds the address. * * @param {BindConfig} config Service bind config. */ bind(config: BindConfig<any>): void; /** * start launches the gRPC server and provides the service endpoints. */ start(): Promise<void>; /** * end stops the gRPC server and no longer provides the service endpoints. */ end(): Promise<any>; } export { Server as grpcServer };