UNPKG

1.19 kBTypeScriptView Raw
1/// <reference types="node" />
2import { StatusObject, WriteObject } from './call-interface';
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. All async filters can be
7 * rejected. The rejection error must be a StatusObject, and a rejection will
8 * cause the call to end with that status.
9 */
10export interface Filter {
11 sendMetadata(metadata: Promise<Metadata>): Promise<Metadata>;
12 receiveMetadata(metadata: Metadata): Metadata;
13 sendMessage(message: Promise<WriteObject>): Promise<WriteObject>;
14 receiveMessage(message: Promise<Buffer>): Promise<Buffer>;
15 receiveTrailers(status: StatusObject): StatusObject;
16}
17export declare abstract class BaseFilter implements Filter {
18 sendMetadata(metadata: Promise<Metadata>): Promise<Metadata>;
19 receiveMetadata(metadata: Metadata): Metadata;
20 sendMessage(message: Promise<WriteObject>): Promise<WriteObject>;
21 receiveMessage(message: Promise<Buffer>): Promise<Buffer>;
22 receiveTrailers(status: StatusObject): StatusObject;
23}
24export interface FilterFactory<T extends Filter> {
25 createFilter(): T;
26}