UNPKG

2.83 kBTypeScriptView Raw
1/// <reference types="node" />
2import { CallCredentials } from "./call-credentials";
3import { Status } from "./constants";
4import { Deadline } from "./deadline";
5import { Metadata } from "./metadata";
6import { ServerSurfaceCall } from "./server-call";
7export interface CallStreamOptions {
8 deadline: Deadline;
9 flags: number;
10 host: string;
11 parentCall: ServerSurfaceCall | null;
12}
13export type PartialCallStreamOptions = Partial<CallStreamOptions>;
14export interface StatusObject {
15 code: Status;
16 details: string;
17 metadata: Metadata;
18}
19export type PartialStatusObject = Pick<StatusObject, 'code' | 'details'> & {
20 metadata: Metadata | null;
21};
22export declare const enum WriteFlags {
23 BufferHint = 1,
24 NoCompress = 2,
25 WriteThrough = 4
26}
27export interface WriteObject {
28 message: Buffer;
29 flags?: number;
30}
31export interface MetadataListener {
32 (metadata: Metadata, next: (metadata: Metadata) => void): void;
33}
34export interface MessageListener {
35 (message: any, next: (message: any) => void): void;
36}
37export interface StatusListener {
38 (status: StatusObject, next: (status: StatusObject) => void): void;
39}
40export interface FullListener {
41 onReceiveMetadata: MetadataListener;
42 onReceiveMessage: MessageListener;
43 onReceiveStatus: StatusListener;
44}
45export type Listener = Partial<FullListener>;
46/**
47 * An object with methods for handling the responses to a call.
48 */
49export interface InterceptingListener {
50 onReceiveMetadata(metadata: Metadata): void;
51 onReceiveMessage(message: any): void;
52 onReceiveStatus(status: StatusObject): void;
53}
54export declare function isInterceptingListener(listener: Listener | InterceptingListener): listener is InterceptingListener;
55export declare class InterceptingListenerImpl implements InterceptingListener {
56 private listener;
57 private nextListener;
58 private processingMetadata;
59 private hasPendingMessage;
60 private pendingMessage;
61 private processingMessage;
62 private pendingStatus;
63 constructor(listener: FullListener, nextListener: InterceptingListener);
64 private processPendingMessage;
65 private processPendingStatus;
66 onReceiveMetadata(metadata: Metadata): void;
67 onReceiveMessage(message: any): void;
68 onReceiveStatus(status: StatusObject): void;
69}
70export interface WriteCallback {
71 (error?: Error | null): void;
72}
73export interface MessageContext {
74 callback?: WriteCallback;
75 flags?: number;
76}
77export interface Call {
78 cancelWithStatus(status: Status, details: string): void;
79 getPeer(): string;
80 start(metadata: Metadata, listener: InterceptingListener): void;
81 sendMessageWithContext(context: MessageContext, message: Buffer): void;
82 startRead(): void;
83 halfClose(): void;
84 getCallNumber(): number;
85 setCredentials(credentials: CallCredentials): void;
86}