From ae5219310ee12b17469cefa4fdee3caf4c57e98d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn?= Date: Fri, 6 Oct 2017 19:50:50 +0200 Subject: [PATCH] Align with js-core package --- packages/grpc-native-core/index.d.ts | 123 ++++++++++++++++++--------- 1 file changed, 85 insertions(+), 38 deletions(-) diff --git a/packages/grpc-native-core/index.d.ts b/packages/grpc-native-core/index.d.ts index f2c014d2..4f30f8ae 100644 --- a/packages/grpc-native-core/index.d.ts +++ b/packages/grpc-native-core/index.d.ts @@ -1,5 +1,7 @@ declare module "grpc" { + /// import { Message, Service } from "protobufjs"; + import { SecureContext } from "tls"; /** * Load a ProtoBuf.js object as a gRPC object. @@ -282,6 +284,8 @@ declare module "grpc" { */ request: any; + private constructor(); + /** * Get the endpoint this call/stream is connected to. * @return The URI of the endpoint @@ -315,6 +319,8 @@ declare module "grpc" { */ metadata: Metadata; + private constructor(); + /** * Get the endpoint this call/stream is connected to. * @return The URI of the endpoint @@ -353,6 +359,8 @@ declare module "grpc" { */ request: any; + private constructor(); + /** * Get the endpoint this call/stream is connected to. * @return The URI of the endpoint @@ -376,6 +384,8 @@ declare module "grpc" { * with duplex streaming. */ export class ServerDuplexStream { + private constructor(); + /** * Get the endpoint this call/stream is connected to. * @return The URI of the endpoint @@ -409,62 +419,57 @@ declare module "grpc" { */ type sendUnaryData = (error: ServiceError | null, value: any, trailer?: Metadata, flags?: number) => void; + /** + * A class for storing metadata. Keys are normalized to lowercase ASCII. + */ export class Metadata { /** - * Class for storing metadata. Keys are normalized to lowercase ASCII. - * ``` - * var metadata = new metadata_module.Metadata(); - * metadata.set('key1', 'value1'); - * metadata.add('key1', 'value2'); - * metadata.get('key1') // returns ['value1', 'value2'] - * ``` - */ - constructor(); - - /** - * Sets the given value for the given key, replacing any other values associated - * with that key. Normalizes the key. - * @param key The key to set + * Sets the given value for the given key by replacing any other values + * associated with that key. Normalizes the key. + * @param key The key to whose value should be set. * @param value The value to set. Must be a buffer if and only - * if the normalized key ends with '-bin' + * if the normalized key ends with '-bin'. */ - set(key: string, value: string | Buffer): void; + set(key: string, value: MetadataValue): void; /** - * Adds the given value for the given key. Normalizes the key. - * @param key The key to add to. + * Adds the given value for the given key by appending to a list of previous + * values associated with that key. Normalizes the key. + * @param key The key for which a new value should be appended. * @param value The value to add. Must be a buffer if and only - * if the normalized key ends with '-bin' + * if the normalized key ends with '-bin'. */ - add(key: string, value: string | Buffer): void; + add(key: string, value: MetadataValue): void; /** - * Remove the given key and any associated values. Normalizes the key. - * @param key The key to remove + * Removes the given key and any associated values. Normalizes the key. + * @param key The key whose values should be removed. */ remove(key: string): void; /** * Gets a list of all values associated with the key. Normalizes the key. - * @param key The key to get - * @return The values associated with that key + * @param key The key whose value should be retrieved. + * @return A list of values associated with the given key. */ - get(key: string): Array; + get(key: string): MetadataValue[]; /** - * Get a map of each key to a single associated value. This reflects the most - * common way that people will want to see metadata. - * @return A key/value mapping of the metadata + * Gets a plain object mapping each key to the first value associated with it. + * This reflects the most common way that people will want to see metadata. + * @return A key/value mapping of the metadata. */ - getMap(): { [index: string]: string | Buffer }; + getMap(): { [key: string]: MetadataValue }; /** - * Clone the metadata object. - * @return {Metadata} The new cloned object + * Clones the metadata object. + * @return The newly cloned object. */ clone(): Metadata; } + export type MetadataValue = string | Buffer; + /** * Represents the status of a completed request. If `code` is * `grpc.status.OK`, then the request has completed successfully. @@ -492,15 +497,15 @@ declare module "grpc" { * `details` in `StatusObject`, and `code` and `metadata` are the * same as in that object. */ - export class ServiceError extends Error { + export interface ServiceError extends Error { /** * The error code, a key of {@link grpc.status} that is not `grpc.status.OK` */ - code: status; + code?: status; /** * Trailing metadata sent with the status, if applicable */ - metadata: Metadata; + metadata?: Metadata; } /** @@ -828,13 +833,47 @@ declare module "grpc" { * This cannot be constructed directly. Instead, instances of this class should * be created using the factory functions in `grpc.credentials` */ - export class ChannelCredentials {} + export interface ChannelCredentials { + /** + * Returns a copy of this object with the included set of per-call credentials + * expanded to include callCredentials. + * @param callCredentials A CallCredentials object to associate with this + * instance. + */ + compose(callCredentials: CallCredentials): ChannelCredentials; + + /** + * Gets the set of per-call credentials associated with this instance. + */ + getCallCredentials(): CallCredentials; + + /** + * Gets a SecureContext object generated from input parameters if this + * instance was created with createSsl, or null if this instance was created + * with createInsecure. + */ + getSecureContext(): SecureContext | null; + } /** * This cannot be constructed directly. Instead, instances of this class should * be created using the factory functions in `grpc.credentials` */ - export class CallCredentials {} + export interface CallCredentials { + /** + * Asynchronously generates a new Metadata object. + * @param options Options used in generating the Metadata object. + */ + generateMetadata(options: object): Promise; + + /** + * Creates a new CallCredentials object from properties of both this and + * another CallCredentials object. This object's metadata generator will be + * called first. + * @param callCredentials The other CallCredentials object. + */ + compose(callCredentials: CallCredentials): CallCredentials; + } /** * Google credential from https://github.com/google/google-auth-library-nodejs lib. @@ -887,7 +926,7 @@ declare module "grpc" { * A generic gRPC client. Primarily useful as a base class for generated clients * @param address Server address to connect to * @param credentials Credentials to use to connect to the server - * @param {Object} options Options to apply to channel creation + * @param options Options to apply to channel creation */ constructor(address: string, credentials: ChannelCredentials, options?: object) @@ -1050,6 +1089,8 @@ declare module "grpc" { * An EventEmitter. Used for unary calls. */ export class ClientUnaryCall { + private constructor(); + /** * Cancel the ongoing call. Results in the call ending with a CANCELLED status, * unless it has already ended with some other status. @@ -1068,6 +1109,8 @@ declare module "grpc" { * from the server side. */ export class ClientReadableStream { + private constructor(); + /** * Cancel the ongoing call. Results in the call ending with a CANCELLED status, * unless it has already ended with some other status. @@ -1086,6 +1129,8 @@ declare module "grpc" { * the client side. */ export class ClientWritableStream { + private constructor(); + /** * Write a message to the request stream. If serializing the argument fails, * the call will be cancelled and the stream will end with an error. @@ -1115,6 +1160,8 @@ declare module "grpc" { * duplex streaming. */ export class ClientDuplexStream { + private constructor(); + /** * Write a message to the request stream. If serializing the argument fails, * the call will be cancelled and the stream will end with an error. @@ -1144,7 +1191,7 @@ declare module "grpc" { * @param error The error, if the call failed * @param value The response value, if the call succeeded */ - export type requestCallback = (error: Error | null, value: any) => void; + export type requestCallback = (error: ServiceError | null, value: any) => void; /** * Return the underlying channel object for the specified client