From ee3de0d55e53f4d227ea97317d7a845c2c6896d2 Mon Sep 17 00:00:00 2001 From: Kevin Greene <30637378+kevin-greene-ck@users.noreply.github.com> Date: Fri, 13 Oct 2017 14:54:32 -0700 Subject: [PATCH] [thrift] Update with an interface for struct-like classes (#20536) * Additionally, mark Transport constructor args as optional --- types/thrift/index.d.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/types/thrift/index.d.ts b/types/thrift/index.d.ts index 69d546e901..e5c62102ae 100644 --- a/types/thrift/index.d.ts +++ b/types/thrift/index.d.ts @@ -50,6 +50,11 @@ export interface TStruct { fname: string; } +export interface TStructLike { + read(input: TProtocol): void; + write(output: TProtocol): void; +} + export interface TTransport { commitPosition(): void; rollbackPosition(): void; @@ -115,6 +120,10 @@ export interface TProtocol { skip(type: Thrift.Type): void; } +export interface HttpHeaders { + [name: string]: number | string | string[] | undefined; +} + export interface SeqId2Service { [seqid: number]: string; } @@ -158,7 +167,7 @@ export class XHRConnection extends NodeJS.EventEmitter { recv_buf: string; transport: TTransport; protocol: TProtocol; - headers: http.OutgoingHttpHeaders; + headers: HttpHeaders; constructor(host: string, port: number, options?: ConnectOptions); getXmlHttpRequestObject(): XMLHttpRequest; flush(): void; @@ -176,7 +185,7 @@ export interface WSOptions { host: string; port: number; path: string; - headers: http.OutgoingHttpHeaders; + headers: HttpHeaders; } export class WSConnection extends NodeJS.EventEmitter { @@ -224,7 +233,7 @@ export interface ServiceOptions { export interface ServerOptions extends ServiceOptions { cors?: string[]; files?: string; - headers?: http.IncomingHttpHeaders; + headers?: HttpHeaders; services?: ServiceMap; tls?: tls.TlsOptions; } @@ -233,7 +242,7 @@ export interface ConnectOptions { transport?: TTransportConstructor; protocol?: TProtocolConstructor; path?: string; - headers?: http.OutgoingHttpHeaders; + headers?: HttpHeaders; https?: boolean; debug?: boolean; max_attempts?: number; @@ -247,7 +256,7 @@ export interface WSConnectOptions { transport?: TTransportConstructor; protocol?: TProtocolConstructor; path?: string; - headers?: http.OutgoingHttpHeaders; + headers?: HttpHeaders; secure?: boolean; wsOptions?: WSOptions; } @@ -311,7 +320,7 @@ export function createServer( export function createWebServer(options: WebServerOptions): http.Server | tls.Server; export class TBufferedTransport implements TTransport { - constructor(buffer: Buffer | undefined, callback: TTransportCallback); + constructor(buffer?: Buffer, callback?: TTransportCallback); static receiver(callback: (trans: TBufferedTransport, seqid: number) => void, seqid: number): (data: Buffer) => void; commitPosition(): void; rollbackPosition(): void; @@ -331,7 +340,7 @@ export class TBufferedTransport implements TTransport { } export class TFramedTransport implements TTransport { - constructor(buffer: Buffer | undefined, callback: TTransportCallback); + constructor(buffer?: Buffer, callback?: TTransportCallback); static receiver(callback: (trans: TFramedTransport, seqid: number) => void, seqid: number): (data: Buffer) => void; commitPosition(): void; rollbackPosition(): void; @@ -351,7 +360,7 @@ export class TFramedTransport implements TTransport { } export interface TTransportConstructor { - new (buffer: Buffer | undefined, callback: TTransportCallback): TTransport; + new (buffer?: Buffer, callback?: TTransportCallback): TTransport; } export class TBinaryProtocol implements TProtocol {