UNPKG

1.11 kBTypeScriptView Raw
1/// <reference types="node" />
2import { Call, StatusObject, WriteObject } from './call-stream';
3import { Metadata } from './metadata';
4/**
5 * Filter classes represent related per-call logic and state that is primarily
6 * used to modify incoming and outgoing data
7 */
8export interface Filter {
9 sendMetadata(metadata: Promise<Metadata>): Promise<Metadata>;
10 receiveMetadata(metadata: Metadata): Metadata;
11 sendMessage(message: Promise<WriteObject>): Promise<WriteObject>;
12 receiveMessage(message: Promise<Buffer>): Promise<Buffer>;
13 receiveTrailers(status: StatusObject): StatusObject;
14 refresh(): void;
15}
16export declare abstract class BaseFilter implements Filter {
17 sendMetadata(metadata: Promise<Metadata>): Promise<Metadata>;
18 receiveMetadata(metadata: Metadata): Metadata;
19 sendMessage(message: Promise<WriteObject>): Promise<WriteObject>;
20 receiveMessage(message: Promise<Buffer>): Promise<Buffer>;
21 receiveTrailers(status: StatusObject): StatusObject;
22 refresh(): void;
23}
24export interface FilterFactory<T extends Filter> {
25 createFilter(callStream: Call): T;
26}