UNPKG

1.06 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}
15export declare abstract class BaseFilter implements Filter {
16 sendMetadata(metadata: Promise<Metadata>): Promise<Metadata>;
17 receiveMetadata(metadata: Metadata): Metadata;
18 sendMessage(message: Promise<WriteObject>): Promise<WriteObject>;
19 receiveMessage(message: Promise<Buffer>): Promise<Buffer>;
20 receiveTrailers(status: StatusObject): StatusObject;
21}
22export interface FilterFactory<T extends Filter> {
23 createFilter(callStream: Call): T;
24}