diff --git a/packages/grpc-js/src/client.ts b/packages/grpc-js/src/client.ts index 5081e2bf..83f07c4e 100644 --- a/packages/grpc-js/src/client.ts +++ b/packages/grpc-js/src/client.ts @@ -35,7 +35,8 @@ export interface UnaryCallback { export interface CallOptions { deadline?: Deadline; host?: string; - parent?: Call; + /* There should be a parent option here that will accept a server call, + * but the server is not yet implemented so it makes no sense to have it */ propagate_flags?: number; credentials?: CallCredentials; } @@ -188,8 +189,7 @@ export class Client { this.checkOptionalUnaryResponseArguments( metadata, options, callback)); const call: Call = this[kChannel].createCall( - method, options.deadline, options.host, options.parent, - options.propagate_flags); + method, options.deadline, options.host, null, options.propagate_flags); if (options.credentials) { call.setCredentials(options.credentials); } @@ -230,8 +230,7 @@ export class Client { this.checkOptionalUnaryResponseArguments( metadata, options, callback)); const call: Call = this[kChannel].createCall( - method, options.deadline, options.host, options.parent, - options.propagate_flags); + method, options.deadline, options.host, null, options.propagate_flags); if (options.credentials) { call.setCredentials(options.credentials); } @@ -279,8 +278,7 @@ export class Client { options?: CallOptions): ClientReadableStream { ({metadata, options} = this.checkMetadataAndOptions(metadata, options)); const call: Call = this[kChannel].createCall( - method, options.deadline, options.host, options.parent, - options.propagate_flags); + method, options.deadline, options.host, null, options.propagate_flags); if (options.credentials) { call.setCredentials(options.credentials); } @@ -307,8 +305,7 @@ export class Client { options?: CallOptions): ClientDuplexStream { ({metadata, options} = this.checkMetadataAndOptions(metadata, options)); const call: Call = this[kChannel].createCall( - method, options.deadline, options.host, options.parent, - options.propagate_flags); + method, options.deadline, options.host, null, options.propagate_flags); if (options.credentials) { call.setCredentials(options.credentials); } diff --git a/packages/grpc-js/src/index.ts b/packages/grpc-js/src/index.ts index 08ba139a..a55ced9a 100644 --- a/packages/grpc-js/src/index.ts +++ b/packages/grpc-js/src/index.ts @@ -17,13 +17,15 @@ import * as semver from 'semver'; +import {ClientDuplexStream, ClientReadableStream, ClientUnaryCall, ClientWritableStream} from './call'; import {CallCredentials} from './call-credentials'; -import {Channel} from './channel'; +import {Deadline, StatusObject} from './call-stream'; +import {Channel, ConnectivityState, Http2Channel} from './channel'; import {ChannelCredentials} from './channel-credentials'; -import {Client} from './client'; +import {CallOptions, Client} from './client'; import {LogVerbosity, Status} from './constants'; import * as logging from './logging'; -import {loadPackageDefinition, makeClientConstructor} from './make-client'; +import {Deserialize, loadPackageDefinition, makeClientConstructor, Serialize} from './make-client'; import {Metadata} from './metadata'; import {StatusBuilder} from './status-builder'; @@ -138,7 +140,8 @@ export {Metadata}; export { LogVerbosity as logVerbosity, - Status as status + Status as status, + ConnectivityState as connectivityState // TODO: Other constants as well }; @@ -149,7 +152,7 @@ export { loadPackageDefinition, makeClientConstructor, makeClientConstructor as makeGenericClientConstructor, - Channel + Http2Channel as Channel }; /** @@ -163,6 +166,40 @@ export const waitForClientReady = callback: (error?: Error) => void) => client.waitForReady(deadline, callback); +/* Interfaces */ + +export { + ChannelCredentials, + CallCredentials, + Deadline, + Serialize as serialize, + Deserialize as deserialize, + ClientUnaryCall, + ClientReadableStream, + ClientWritableStream, + ClientDuplexStream, + CallOptions, + StatusObject +}; + +/* tslint:disable:no-any */ +export type Call = ClientUnaryCall|ClientReadableStream| + ClientWritableStream|ClientDuplexStream; +/* tslint:enable:no-any */ + +export type MetadataListener = (metadata: Metadata, next: Function) => void; + +// tslint:disable-next-line:no-any +export type MessageListener = (message: any, next: Function) => void; + +export type StatusListener = (status: StatusObject, next: Function) => void; + +export interface Listener { + onReceiveMetadata?: MetadataListener; + onReceiveMessage?: MessageListener; + onReceiveStatus?: StatusListener; +} + /**** Unimplemented function stubs ****/ /* tslint:disable:no-any variable-name */