123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /// <reference types="node" />
- import { ChannelCredentials } from './channel-credentials';
- import { ChannelOptions } from './channel-options';
- import { Client } from './client';
- import { UntypedServiceImplementation } from './server';
- export interface Serialize<T> {
- (value: T): Buffer;
- }
- export interface Deserialize<T> {
- (bytes: Buffer): T;
- }
- export interface ClientMethodDefinition<RequestType, ResponseType> {
- path: string;
- requestStream: boolean;
- responseStream: boolean;
- requestSerialize: Serialize<RequestType>;
- responseDeserialize: Deserialize<ResponseType>;
- originalName?: string;
- }
- export interface ServerMethodDefinition<RequestType, ResponseType> {
- path: string;
- requestStream: boolean;
- responseStream: boolean;
- responseSerialize: Serialize<ResponseType>;
- requestDeserialize: Deserialize<RequestType>;
- originalName?: string;
- }
- export interface MethodDefinition<RequestType, ResponseType> extends ClientMethodDefinition<RequestType, ResponseType>, ServerMethodDefinition<RequestType, ResponseType> {
- }
- export type ServiceDefinition<ImplementationType = UntypedServiceImplementation> = {
- readonly [index in keyof ImplementationType]: MethodDefinition<any, any>;
- };
- export interface ProtobufTypeDefinition {
- format: string;
- type: object;
- fileDescriptorProtos: Buffer[];
- }
- export interface PackageDefinition {
- [index: string]: ServiceDefinition | ProtobufTypeDefinition;
- }
- export interface ServiceClient extends Client {
- [methodName: string]: Function;
- }
- export interface ServiceClientConstructor {
- new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): ServiceClient;
- service: ServiceDefinition;
- serviceName: string;
- }
- /**
- * Creates a constructor for a client with the given methods, as specified in
- * the methods argument. The resulting class will have an instance method for
- * each method in the service, which is a partial application of one of the
- * [Client]{@link grpc.Client} request methods, depending on `requestSerialize`
- * and `responseSerialize`, with the `method`, `serialize`, and `deserialize`
- * arguments predefined.
- * @param methods An object mapping method names to
- * method attributes
- * @param serviceName The fully qualified name of the service
- * @param classOptions An options object.
- * @return New client constructor, which is a subclass of
- * {@link grpc.Client}, and has the same arguments as that constructor.
- */
- export declare function makeClientConstructor(methods: ServiceDefinition, serviceName: string, classOptions?: {}): ServiceClientConstructor;
- export interface GrpcObject {
- [index: string]: GrpcObject | ServiceClientConstructor | ProtobufTypeDefinition;
- }
- /**
- * Load a gRPC package definition as a gRPC object hierarchy.
- * @param packageDef The package definition object.
- * @return The resulting gRPC object.
- */
- export declare function loadPackageDefinition(packageDef: PackageDefinition): GrpcObject;
|