mirror of https://github.com/grpc/grpc-node.git
Add loadPackageDefinition and interceptor APIs to .d.ts file
This commit is contained in:
parent
48853903b7
commit
85c154c507
|
@ -78,6 +78,13 @@ declare module "grpc" {
|
||||||
*/
|
*/
|
||||||
export function load<T = GrpcObject>(filename: Filename, format?: "proto" | "json", options?: LoadOptions): T;
|
export function load<T = GrpcObject>(filename: Filename, format?: "proto" | "json", options?: LoadOptions): T;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load a gRPC package definition as a gRPC object hierarchy
|
||||||
|
* @param packageDef The package definition object
|
||||||
|
* @return The resulting gRPC object
|
||||||
|
*/
|
||||||
|
export function loadPackageDefinition(packageDefinition: PackageDefinition): GrpcObject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A filename
|
* A filename
|
||||||
*/
|
*/
|
||||||
|
@ -235,12 +242,18 @@ declare module "grpc" {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object that completely defines a service.
|
* An object that completely defines a service.
|
||||||
* @typedef {Object.<string, grpc~MethodDefinition>} grpc~ServiceDefinition
|
|
||||||
*/
|
*/
|
||||||
export type ServiceDefinition<ImplementationType> = {
|
export type ServiceDefinition<ImplementationType> = {
|
||||||
readonly [I in keyof ImplementationType]: MethodDefinition<any, any>;
|
readonly [I in keyof ImplementationType]: MethodDefinition<any, any>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An object that defines a package containing multiple services
|
||||||
|
*/
|
||||||
|
export type PackageDefinition = {
|
||||||
|
readonly [fullyQualifiedName: string]: ServiceDefinition<any>;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object that completely defines a service method signature.
|
* An object that completely defines a service method signature.
|
||||||
*/
|
*/
|
||||||
|
@ -1259,4 +1272,197 @@ declare module "grpc" {
|
||||||
* @param clientObj The client to close
|
* @param clientObj The client to close
|
||||||
*/
|
*/
|
||||||
export function closeClient(clientObj: Client): void;
|
export function closeClient(clientObj: Client): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A builder for gRPC status objects
|
||||||
|
*/
|
||||||
|
export class StatusBuilder {
|
||||||
|
constructor()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a status code to the builder
|
||||||
|
* @param code The status code
|
||||||
|
*/
|
||||||
|
withCode(code: number): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds details to the builder
|
||||||
|
* @param details A status message
|
||||||
|
*/
|
||||||
|
withDetails(details: string): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds metadata to the builder
|
||||||
|
* @param metadata The gRPC status metadata
|
||||||
|
*/
|
||||||
|
withMetadata(metadata: Metadata): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the status object
|
||||||
|
* @return A gRPC status
|
||||||
|
*/
|
||||||
|
build(): StatusObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MetadataListener = (metadata: Metadata, next: function) => void;
|
||||||
|
|
||||||
|
export type MessageListener = (message: any, next: function) => void;
|
||||||
|
|
||||||
|
export type StatusListener = (status: StatusObject, next: function) => void;
|
||||||
|
|
||||||
|
export interface Listener {
|
||||||
|
onReceiveMetadata?: MetadataListener;
|
||||||
|
onReceiveMessage?: MessageListener;
|
||||||
|
onReceiveStatus?: StatusListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A builder for listener interceptors
|
||||||
|
*/
|
||||||
|
export class ListenerBuilder {
|
||||||
|
constructor();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds onReceiveMetadata method to the builder
|
||||||
|
* @param onReceiveMetadata A listener method for receiving metadata
|
||||||
|
*/
|
||||||
|
withOnReceiveMetadata(onReceiveMetadata: MetadataListener): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds onReceiveMessage method to the builder
|
||||||
|
* @param onReceiveMessage A listener method for receiving message
|
||||||
|
*/
|
||||||
|
withOnReceiveMessage(onReceiveMessage: MessageListener): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds onReceiveStatus method to the builder
|
||||||
|
* @param onReceiveStatus A listener method for receiving status
|
||||||
|
*/
|
||||||
|
withOnReceiveStatus(onReceiveStatus: StatusListener): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the call listener
|
||||||
|
*/
|
||||||
|
build(): Listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MetadataRequester = (metadata: Metadata, listener: Listener, next: function) => void;
|
||||||
|
|
||||||
|
export type MessageRequester = (message: any, next: function) => void;
|
||||||
|
|
||||||
|
export type CloseRequester = (next: function) => void;
|
||||||
|
|
||||||
|
export type CancelRequester = (next: function) => void;
|
||||||
|
|
||||||
|
export type GetPeerRequester = (next: function) => string;
|
||||||
|
|
||||||
|
export interface Requester {
|
||||||
|
start?: MetadataRequester;
|
||||||
|
sendMessage?: MessageRequester;
|
||||||
|
halfClose?: CloseRequester;
|
||||||
|
cancel?: CancelRequester;
|
||||||
|
getPeer?: GetPeerRequester;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A builder for the outbound methods of an interceptor
|
||||||
|
*/
|
||||||
|
export class RequesterBuilder {
|
||||||
|
constructor();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a metadata requester to the builder
|
||||||
|
* @param start A requester method for handling metadata
|
||||||
|
*/
|
||||||
|
withStart(start: MetadataRequester): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a message requester to the builder.
|
||||||
|
* @param sendMessage A requester method for handling
|
||||||
|
* messages.
|
||||||
|
*/
|
||||||
|
withSendMessage(sendMessage: MessageRequester): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a close requester to the builder.
|
||||||
|
* @param halfClose A requester method for handling client
|
||||||
|
* close.
|
||||||
|
*/
|
||||||
|
withHalfClose(halfClose: CloseRequester): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a cancel requester to the builder.
|
||||||
|
* @param cancel A requester method for handling `cancel`
|
||||||
|
*/
|
||||||
|
withCancel(cancel: CancelRequester): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the requester's interceptor methods.
|
||||||
|
*/
|
||||||
|
build(): Requester;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A chainable gRPC call proxy which will delegate to an optional requester
|
||||||
|
* object. By default, interceptor methods will chain to nextCall. If a
|
||||||
|
* requester is provided which implements an interceptor method, that
|
||||||
|
* requester method will be executed as part of the chain.
|
||||||
|
* operations.
|
||||||
|
*/
|
||||||
|
export class InterceptingCall {
|
||||||
|
/**
|
||||||
|
* @param next_Call The next call in the chain
|
||||||
|
* @param requester Interceptor methods to handle request
|
||||||
|
*/
|
||||||
|
constructor(nextCall: InterceptingCall|null, requester?: Requester);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts a call through the outbound interceptor chain and adds an element to
|
||||||
|
* the reciprocal inbound listener chain.
|
||||||
|
*/
|
||||||
|
start(metadata: Metadata, listener: Listener): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pass a message through the interceptor chain.
|
||||||
|
*/
|
||||||
|
sendMessage(message: any): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a close operation through the interceptor chain
|
||||||
|
*/
|
||||||
|
halfClose(): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a cancel operation through the interceptor chain
|
||||||
|
*/
|
||||||
|
cancel(): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a cancelWithStatus operation through the interceptor chain.
|
||||||
|
* @param status
|
||||||
|
* @param message
|
||||||
|
*/
|
||||||
|
cancelWithStatus(status: StatusObject, message: string): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pass a getPeer call down to the base gRPC call (should not be intercepted)
|
||||||
|
*/
|
||||||
|
getPeer(): object;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For streaming calls, we need to transparently pass the stream's context
|
||||||
|
* through the interceptor chain. Passes the context between InterceptingCalls
|
||||||
|
* but hides it from any requester implementations.
|
||||||
|
* @param context Carries objects needed for streaming operations.
|
||||||
|
* @param message The message to send.
|
||||||
|
*/
|
||||||
|
sendMessageWithContext(context: object, message: any): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For receiving streaming messages, we need to seed the base interceptor with
|
||||||
|
* the streaming context to create a RECV_MESSAGE batch.
|
||||||
|
* @param context Carries objects needed for streaming operations
|
||||||
|
*/
|
||||||
|
recvMessageWithContext(context: object): void;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue