UNPKG

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